I am using transacted mode. But if I stop Camel during redelivery while the queue on B is down the message gets removed from the queue and is gone when I restart.
To simulate an error I have a dummy consumer that throws an exception, but the problem is the same if I have a remote queue that is shut down. This is my Camel route (some beans left out for clarity): [...] <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration"> <property name="connectionFactory" ref="poolConnectionFactory"/> <property name="transactionManager" ref="jmsTransactionManager"/> <property name="transacted" value="true"/> <property name="concurrentConsumers" value="1"/> </bean> <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager"> <property name="connectionFactory" ref="poolConnectionFactory" /> </bean> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="configuration" ref="jmsConfig"/> </bean> <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> <errorHandler id="camelErrorHandler"> <redeliveryPolicy maximumRedeliveries="-1" /> </errorHandler> <onException> <exception>java.lang.Exception</exception> <rollback markRollbackOnly="true" /> </onException> <route errorHandlerRef="camelErrorHandler" shutdownRunningTask="CompleteCurrentTaskOnly"> <from uri="activemq:queue:events" /> <transacted ref="PROPAGATION_REQUIRED"/> <to uri="bean:dummyConsumer?method=onMessage(${body})"/> </route> </camelContext> [...] When shutting down I get the log below. The log basically says that it is waiting for an in-flight message left, then when it times out it forces a shutdown. -------------------------------------- 2012-08-23 15:19:47,132 INFO org.apache.camel.impl.DefaultShutdownStrategy - Waiting as there are still 1 inflight and pending exchanges to complete, timeout in 1 seconds. 2012-08-23 15:19:47,661 DEBUG org.apache.camel.processor.SendProcessor - >>>> Endpoint[bean://dummyConsumer?method=onMessage($%7Bbody%7D)] Exchange[JmsMessage[JmsMessageID: ID:tjock-xxl-41399-1345727978381-1:1:1:1:1]] --- DUMMY CONSUMER, message: message 1345727978573 2012-08-23 15:19:47,663 DEBUG org.apache.camel.processor.DefaultErrorHandler - Failed delivery for (MessageId: ID:tjock-xxl-41399-1345727978381-1:1:1:1:1 on ExchangeId: ID-tjock-xxl-57097-1345727966790-0-1). On delivery attempt: 9 caught: java.lang.RuntimeException: test error 2012-08-23 15:19:47,663 DEBUG org.apache.camel.processor.DefaultErrorHandler - Redelivery delay calculated as 1000 2012-08-23 15:19:47,663 DEBUG org.apache.camel.processor.RedeliveryPolicy - Sleeping for: 1000 millis until attempting redelivery 2012-08-23 15:19:48,130 WARN org.apache.camel.impl.DefaultShutdownStrategy - Timeout occurred. Now forcing the routes to be shutdown now. 2012-08-23 15:19:48,130 WARN org.apache.camel.impl.DefaultShutdownStrategy - Interrupted while waiting during graceful shutdown, will force shutdown now. 2012-08-23 15:19:48,663 DEBUG org.apache.camel.processor.SendProcessor - >>>> Endpoint[bean://dummyConsumer?method=onMessage($%7Bbody%7D)] Exchange[JmsMessage[JmsMessageID: ID:tjock-xxl-41399-1345727978381-1:1:1:1:1]] --- DUMMY CONSUMER, message: message 1345727978573 2012-08-23 15:19:48,665 WARN org.apache.camel.spring.spi.TransactionErrorHandler - Transaction rollback (0x8996666) redelivered(false) for (MessageId: ID:tjock-xxl-41399-1345727978381-1:1:1:1:1 on ExchangeId: ID-tjock-xxl-57097-1345727966790-0-1) caught: java.lang.RuntimeException: test error 2012-08-23 15:19:48,666 DEBUG org.apache.activemq.ActiveMQSession - ID:tjock-xxl-46934-1345727966509-3:1:1 Transaction Rollback, txid:TX:ID:tjock-xxl-46934-1345727966509-3:1:1 2012-08-23 15:19:48,666 DEBUG org.apache.activemq.TransactionContext - Rollback: TX:ID:tjock-xxl-46934-1345727966509-3:1:1 syncCount: 2 2012-08-23 15:19:48,668 DEBUG org.apache.activemq.transaction.LocalTransaction - rollback: TX:ID:tjock-xxl-46934-1345727966509-3:1:1 syncCount: 2 2012-08-23 15:19:48,669 DEBUG org.apache.activemq.ActiveMQMessageConsumer - remove: ID:tjock-xxl-46934-1345727966509-3:1:1:12, lastDeliveredSequenceId:31 2012-08-23 15:19:48,669 DEBUG org.apache.activemq.ActiveMQSession - ID:tjock-xxl-46934-1345727966509-3:1:1 Transaction Rollback, txid:null 2012-08-23 15:19:48,669 DEBUG org.apache.activemq.broker.region.AbstractRegion - localhost removing consumer: ID:tjock-xxl-46934-1345727966509-3:1:1:12 for destination: queue://events 2012-08-23 15:19:48,670 DEBUG org.apache.camel.component.jms.JmsConsumer - Stopping consumer: Consumer[activemq://queue:events] 2012-08-23 15:19:48,670 DEBUG org.apache.camel.component.jms.JmsConsumer - Stopping consumer: Consumer[activemq://queue:events] 2012-08-23 15:19:48,670 INFO org.apache.camel.impl.DefaultShutdownStrategy - Graceful shutdown of 1 routes completed in 5 seconds /tw -- View this message in context: http://camel.465427.n5.nabble.com/shutting-down-Camel-in-flight-messages-gone-tp5717930p5717944.html Sent from the Camel - Users mailing list archive at Nabble.com.