Thanks for the information, I added all timeouts at my connection level. here is the connection code
TibjmsConnectionFactory tibjmsConnectionFactory = new TibjmsConnectionFactory(); tibjmsConnectionFactory.setServerUrl(""); tibjmsConnectionFactory.setUserName(""); tibjmsConnectionFactory.setUserPassword(""); tibjmsConnectionFactory.setReconnAttemptCount(30); tibjmsConnectionFactory.setReconnAttemptDelay(1000); tibjmsConnectionFactory.setReconnAttemptTimeout(1000); tibjmsConnectionFactory.setConnAttemptTimeout(100); SingleConnectionFactory singleConnectionFactory = new SingleConnectionFactory(); singleConnectionFactory.setTargetConnectionFactory(tibjmsConnectionFactory); TibcoConnectionExceptionListener tibcoConnectionExceptionListener = new TibcoConnectionExceptionListener(); singleConnectionFactory.setExceptionListener(tibcoConnectionExceptionListener); singleConnectionFactory.setReconnectOnException(reconnectOnException); cacheConnectionFactory = new CachingConnectionFactory(); cacheConnectionFactory.setTargetConnectionFactory(singleConnectionFactory); cacheConnectionFactory.setSessionCacheSize(50); and here is the publisher code producerTemplate.asyncCallback(queueName, exchange,synchronization); And I attached thread dump, when Tibco EMS down, all producer thread are blocked and those are not releasing then will get OOM issue ThreadDump.xlsx <http://camel.465427.n5.nabble.com/file/n5799189/ThreadDump.xlsx> -- View this message in context: http://camel.465427.n5.nabble.com/ProducerTemplate-thread-waits-indefinitely-when-messaging-system-Tibco-EMS-was-down-tp5798479p5799189.html Sent from the Camel - Users mailing list archive at Nabble.com.