Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Cannot Reproduce
-
5.6.0
-
None
-
None
-
Java 1.6.0_35
Mac OSX 10.7.5
Description
Expected: throttled messages when tempStorage reaches 100%
Actual: broker hangs and no longer delivers messages and cannot be cleanly shutdown
Configuration:
- /conf/activemq.xml (attached) configuration: memoryUsage: 200MB, storeUsage: 1GB, tempUsage: 400MB
- test configuration (/example/build.xml): max (# of messages): 65000, messageSize: 10000 -> total message size: 65000 * 10000 bytes = 650 MB
Result:
- burst of 65000 messages to queue, initially loads into memory but quickly gets dumped to tempStorage (12% memoryUsage)
- messages persisted in database
- producer throttling does NOT occur, potentially b/c memoryUsage is at 0% in this peak/burst scenario when activmq stops responding
- activemq process hangs at 104% tempUsage, 0% memoryUsage, and can't be shutdown without force kill
commands from standard release examples:
Start amq:
/bin$ ./activemq console
start producer:
ant producer -Ddurable=true -DsleepTime=0
(Bug experienced with higher sleep times also.)
if you want to use consumers:
ant consumer -Durl=tcp://localhost:61616?jms.prefetchPolicy.queuePrefetch=1
- watch memory and disk usage in jconsole
http://tmielke.blogspot.com/2011/02/observations-on-activemqs-temp-storage.html
workarounds:
1) no tempUsage storage at all
\conf\activemq.xml -> <tempUsage limit="0 mb"/>
2) try to hide tempUsage
\conf\activemq.xml -> <tempUsage limit="4 gb"/> -> 4 gb being much, much larger than uninterrupted usage will fill