I was noticing today that if I run servicemix for a while (without sending
any requests to it), it would eventually run out of heap space.  I hadn't
had that problem in a long time and after looking at jconsole running with
different activemq clustering configurations, it looks like activemq may be
leaking memory if you use this network connector configuration, when neither
of the hosts specified have been started yet:

<amq:networkConnector uri="static://(tcp://host1:61616,tcp://host2:61616)"/>

It seems like it takes around 30 minutes or so... basically, it will just
keep churning through memory (probably 1 mb/sec) and then that memory will
get garbage collected.  After a while, not all the memory gets garbage
collected, even if you tell it to garbage collect in jconsole.

If I change back to multicast, it appears as though the problem goes away
and it chews through memory slower (I'm not sure if the issue would still
happen or not).  Basically, we don't have multicast enabled on the network
where I test out our software, so I started using the network connector with
the hosts specified.  Would I just be better off using an external activemq
instance?  If so, what's the best way to make your jms SU's that are
deployed all use the same activemq instance?  I know you configure it in
servicemix.conf (I think is the file), but the jms su's get configured
separately for what activemq server they should connect to.

Has anyone ran across this issue or have a good way of handling it?  Thanks
for any help!

Ryan

Reply via email to