I'm doing some loading testing and finding some bad behavior in ActiveMQ. Symptoms include the producer blocking and the JMX console displaying wild values like >100% for MemoryPercentUsage and negative amounts for QueueSize.
I've got a simple Java class that sends Persistent messages to a Queue. It's setup to "flood" the server, sending 40,000 as fast as it can.
I have an MDB running inside Resin 3.2.1 consuming these messages. I'm new to using Resin for this, so it may be contributing to the problem. Also, it appears to create 5 instances of the MDB all listening to the Queue.
First, I fire up the message flooder to start filling the Queue. Then, I fire up Resin and the MDB starts consuming the messages. The behavior I've seen is that when I restart Resin, the MemoryPercentUsage jumps to 280% and the producer gets blocked. The MDB is able to continue consuming message, but the Producer never unblocks. If I purge() the queue via the JMX console, it will free up the memory, but then the queue size goes negative as the MDB continues to consume hundreds of messages.
My main concern is with the producer getting blocked and never unblocking.
I'll attach a screenshot of the JMX console showing some of the symptoms