Finally while trying to reproduce the defect in testcase , I was able to nail down the problem, it would have been a easier fix if were not using new technologies, and old time classic code reviews would have helped
Lets say we have route using Spring Route Builder from("timer://foo?fixedRate=true&period=60000") .to("bean:testService?method=checkExchange") .to("jms:queue:test1"); from("jms:queue:test1") .setHeader(Exchange.FILE_NAME, constant("received.xml")) .to("file:target/data/"); Service testService, method checkExchange opens a org.apache.commons.dbcp.BasicDataSource based connection using Type 4 db2 driver and uses CallableStatement to call a stored procedure opening connection and callable statement each run. The code will stop timer after any unspecified number of runs, depending on free connections available and all routes become inoperative. The fix was indeed to close the connection and callable statement in finally block, a big miss but never predicted this will get all camel routes to standstill. Wondering why the separate thread approach worked for me, when all other timers failed, well this was something I had intentionally coded for reusing the Connection so it worked!! -- View this message in context: http://camel.465427.n5.nabble.com/Timers-stop-firing-after-certain-unpredictable-interval-tp3370457p3372178.html Sent from the Camel - Users mailing list archive at Nabble.com.