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:40507 
org.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

Reply via email to