Thank you Rob for good information.

On Wed, Aug 24, 2016 at 10:45 AM, Rob Godfrey <[email protected]>
wrote:

> Hi Ram,
>
> So, firstly 0.28 is pretty old now - it was released at the beginning of
> June 2014... how the broker handles messages in memory has changed
> considerably since then.  Historically the broker simply used soft
> references to manage message memory consumption - that is when the JVM GC
> decided that there was insufficient heap memory to store all the message
> data, it will evict messages from memory - and the broker will then need to
> reload them from disk.  As such I don't think there are any settings in
> 0.28 which will affect when messages are flowed to disk (note the queue
> depth limit setting is merely a trigger for when warning messages are
> sent).  There are separate settings which activate producer flow control
> (rather than flow to disk) but I don't think this is what you were asking
> for.
>
> Later versions of the broker (in particular post v6) take a more pro-active
> approach to managing memory, in v6 and above you can set the context
> variable "broker.flowToDiskThreshold" which will cause the broker to start
> flowing messages to disk once the total memory required by enqueued
> messages breaches this threshold.  By default this value is set to 40% of
> the available direct memory (note v6 and above store the message data in
> direct rather than heap memory).  Individual queues will be assigned
> "target" sizes based on their current size so that queues flow to disk in a
> somewhat fair manner.
>
> Hope this helps,
> Rob
>
> On 24 August 2016 at 17:52, rammohan ganapavarapu <[email protected]
> >
> wrote:
>
> > Any idea? i also wanted to have those settings at global level of
> > virtualhost  as i create queues dynamically using client and i dont know
> > the queue name a head of time.
> >
> >
> > Thanks,
> > Ram
> >
> > On Tue, Aug 23, 2016 at 9:30 PM, rammohan ganapavarapu <
> > [email protected]> wrote:
> >
> > > Hi,
> > >
> > > I am using java broker 0.28 and would like to know how to configure a
> > > queue flow control in initial json config? for example i wanted to
> store
> > > 100MB of messages in memory and when it exceeds flow to disk. From
> docs i
> > > see xml version of config but wanted to see if we have any JSON format.
> > >
> > > Also if i don't define queue depth limit what is the default settings?
> it
> > > keep jvm heap size worth of messages in queue? what will happened if
> heap
> > > gets full does it flow those messages to disk and processes from disk?
> > >
> > > Finally how do i decide queue depth settings, based on available RAM or
> > > any other criteria?
> > >
> > > Thanks,
> > > RG
> > >
> > >
> >
>

Reply via email to