Hello,
In my test app I'm starting, stopping and removing many SQL routes (about
100 every two minutes).
I'm spawning manually only four of these - rest are created in queue (every
finished route start next one).
Now it looks similar to this:
route.process(new Processor() {
Thread stop;
@Override
public void process(final Exchange exchange) throws Exception {
if(stop==null){
stop = new Thread(){
@Override
public void run() {
try{
camelCtx.stopRoute(exchange.getFromRouteId());
camelCtx.removeRoute(exchange.getFromRouteId());
if(needToAddNextRoute)
camelCtx.addRoutes(createNextRoute(exchange));
}catch(final Exception e){
log.debug("Cannot stop route");
}
}
};
}
stop.start();
}
});
Yes, it's taken from this tutorial:
http://camel.apache.org/how-can-i-stop-a-route-from-a-route.html
The problem is that after 30-40 minutes it runs out of memory (250mb).
Heap dump shows that 90% of memory is occupied by instance of
org.apache.camel.processor.interceptor.BacklogTracer
but... it is not set anywhere in my app. Due to this doc
http://camel.apache.org/backlogtracer.html
it should be disabled by default.
Do you have any clues what can produce this bug?
M.
--
View this message in context:
http://camel.465427.n5.nabble.com/BacklogTracer-memory-leak-tp5744561.html
Sent from the Camel - Users mailing list archive at Nabble.com.