On Tue, Jun 11, 2013 at 03:55:29PM -0400, Christian Posta wrote:
> So it looks like its working as expected. In both cases (producer flow
> control on or off) you won't reach your memory limits because the pending
> cursor is spooling to disk. So looks sane to me.


Ah, brilliant. So my misunderstanding was that I thought Flow Control would
kick in with the per-queue memory limit rather than paying attention to the
temporary storage!

Thanks very much for your replies.

> On Tuesday, June 11, 2013, Jesus Roncero wrote:
> 
> > Hi,
> >
> > Any extra info on this?
> >
> > Regards
> >
> >
> > On Fri, Jun 7, 2013 at 12:11 PM, Jesus Roncero <je...@we7.com<javascript:;>>
> > wrote:
> >
> > > On Thu, Jun 06, 2013 at 08:34:03AM -0700, Christian Posta wrote:
> > > > When you have producer flow control enabled, your producers should
> > block
> > > > when you've reached the memory limits (50mb). If you can write a unit
> > > test
> > > > that shows otherwise, I would gladly take a look.
> > >
> > > Hi Christian,
> > >
> > > again thanks for your help.
> > >
> > > I have been testing it a bit with different settings, and I'm sort of
> > > getting
> > > the same behaviour.
> > >
> > > I have two different test configurations:
> > >
> > > 1) Flow control enabled (by default) on all queues and topics. 50 Mb
> > memory
> > > Limit, and no cursors. Temp storage set to 500 Mb.
> > > http://pastebin.com/Ma7b4B6V
> > >
> > > 2) Flow control disabled and cursors set to use files and temporary
> > > storage.
> > > Again, memory is 50Mb per queue, Temp storage set to 500 Mb.
> > > http://pastebin.com/3t9p2NqX
> > >
> > > 3) a simple producer writen in python, based on stomp.py:
> > > http://pastebin.com/1Uge3mvC
> > >
> > > Basically, with these configs, I'm seeing the same behaviour, the
> > producer
> > > starts inserting messages, on around the 36 Mb mark, it starts using the
> > > temporary file storage, and then it pauses on the 483 message, saying the
> > > temp storate is full. 36, being ~ 70% of 50.
> > >
> > > Always with a log like:
> > > [2013-06-07 12:07:23,975] INFO ActiveMQ Transport:
> > tcp:///10.0.9.124:40507org.apache.activemq.broker.region.Queue -
> > > Usage(default:temp:queue://testqueue:temp) percentUsage=96%,
> > > usage=536510464, limit=524288000,
> > > percentUsageMinDelta=1%;Parent:Usage(default:temp) percentUsage=102%,
> > > usage=536510464, limit=524288000, percentUsageMinDelta=1%: Temp Store is
> > > Full (96% of 524288000). Stopping producer
> > > (ID:mneme-54444-1370603136982-2:1:-1:1) to prevent flooding
> > > queue://testqueue. See
> > > http://activemq.apache.org/producer-flow-control.html for more info
> > > (blocking for: 91s)
> > >
> > >
> > > So, anyway, what I'm trying to do is to have a sane config that at least
> > is
> > > not going to explode, with both flow control enabled and flow control
> > > disabled. If temporary usage via the cursors is supposed to work
> > > like this, then it's all good. It might also be that I'm not really
> > > understanding how this is supposed to work, in that case feel free to
> > RTFM
> > > me
> > > ;-).
> > >
> > > I don't know if this is what you want as a unit test, but let me know
> > > otherwise, and I'll procure whatever is necessary.
> > >
> > > Thanks again with your help.
> > >
> > > --
> > > JRF
> > >
> >
> >
> >
> > --
> > Jesús Roncero
> >
> 
> 
> -- 
> *Christian Posta*
> http://www.christianposta.com/blog
> twitter: @christianposta

-- 

Reply via email to