We are running a Karaf 2.2.7 server with camel 2.8.4 routes that moves
message from an ActiveMQ 5.6.0 standalone instance to a WebsphereMQ server
and vice versa. After running for around 2 weeks Karaf starts throwing Out
of Memory Error and has to be restarted. The routes are pretty simple and
only have about 8 total:
from("activemq:ORDER_ENTRY").id("Order
Entry")..bean(Order.class,"process").to(WEBSPHERE +":S2S.CLXPTB.ORDERS");
// connection code
ActiveMQComponent amq = new ActiveMQComponent();
amq.setTransacted(true);
amq.setBrokerURL(Environment.getProperty("amqBrokerURL") );
amq.setUserName(Environment.getProperty("amqUsername") );
amq.setPassword(Environment.getProperty("amqPassword") );
this.getContext().addComponent("activemq", amq);
java params: -server -Xmx786M -Xms256M -XX:+UseG1GC -XX:MaxPermSize=128m
I was able to get a heapdump and analyze it using mat. It points to 3
org.apache.activemq.pool.PooledSession objects that are each consuming 30%
or more of the space. When I drill down into it there seems to be an
overwhelming number of references to PooledConnection and
CopyOnWriteArrayList objects that continues to grow over time. I checked
the web for this issue and found that a bunch of similar memory leaks were
fix when going for AMQ 5.5.1 to AMQ 5.6.0. Could it still have a memory
leak or maybe the way camel calls the pool could cause it?
--
View this message in context:
http://camel.465427.n5.nabble.com/Memory-Leak-tp5714782.html
Sent from the Camel - Users mailing list archive at Nabble.com.