We're running JBoss 3.2.2 on a Win2k server with Java 1.4.1_05 and are experiencing problems with our MessageCache.
We currently have a single manager posting requests to a request queue (typically "small" messages - few k) and one of many workers will pickup message, do some work and post the results back on the reply message. The reply messages tend to be about 500-750k in size.
What we're seeing if the server has been up for a couple of days is that when many messages are posted to the request queue then the MessageCache size grows to be 50Mb greater than the MaxMemoryMark and the server maxes out the CPU. Using the JMX console, if I increase the Max and HighMemoryMark values to be greater than the CurrentMemoryUsage value, then the queue recovers and the messages are posted properly. The CurrentMemoryMark then drops back to it's regular size.
Normally the Max and HighMemoryMark values are about 50-100Mb more than the CurrentMemoryMark.
The behaviour is quite odd - any suggestions on how to prevent it from happening ?