Reusing the Jms resources such as sessions, producers is a good practice but
not for consumers.
Reusing consumers can bring in message stuck problem and you can take a look at
http://activemq.apache.org/what-is-the-prefetch-limit-for.html
You can use activemq-pool to them handily.
At 2013-04-22
I would say you can profile any other java application and the profiler will
give you the suspect classes that may leak memory in.
As messages come and go, there are many instances in the heap and this seems
reasonable.
If your application leaks memory I will possibly believe.
We have run ActiveM