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 --