what is your application actually doing?
A message system will hold on messages on the memory. If you don't consume them they will stay on the server... you just have to consume messages.
If you are properly consuming messages you have to provide us a bit more information. So far your message sounds like:
- I have a problem, help me, and you need to do all the debug to first discover what's the issue and find the solution.
So.. that's impossible fo us to help you any further.
To deal with heavy load we seperated heavy weight operations to separate JMV(batch). we have a Batch Request JMS queue which listenes to the incoming requests for processing heavy operations. HornetQ clustering is enabled on both these JVMs. The OOM error is noticed on the
the batch JVM. All of the producers use JmsTemplate and message listeners use the DefaultMessageListenerContainer.
you really need to provide us with something solid, an example if possible. One thing i will say tho is that if you are using spring jms template make sure it is using caching connection factory as you may be opening lots of sessions for each send.
first thing: you should move to the latest 2.2 release: There were a couple of fixed on clustering.
Second thing: you didn't give us any indication if you are acking messages or not. Look at the management operations for the sizes of the queues.
Thanks for the quick reply. on 1) moving to latest 2.2 release. Will move to the latest 2.2 release today and let you know how it goes.
on 2) acking messages - the auto acking is set to true on the JMS template. I am going to enable logging and will come to you with any findings.