Thanks, this was really helpful. I noticed however that the delay only worked for the first retry, all subsequent retries would be handled immediately. I solved this by resetting the scheduledJobId back to null just before sending it back to the queue. My exception handler now looks like:
... .onException(Exception.class) .handled(true) .beanRef("dispatchRetryTagger") .choice() .when(header("dispatchRetryCount").isLessThan(3)) .setHeader("AMQ_SCHEDULED_DELAY", constant("4000")) .setHeader("scheduledJobId", constant(null)) .to("activemq:queue:myqueue") .otherwise() .removeHeader("AMQ_SCHEDULED_DELAY") .to("direct:dlq") .end() -- View this message in context: http://camel.465427.n5.nabble.com/Howto-use-delay-message-brokerage-in-a-Camel-Route-using-AMQ-SCHEDULED-DELAY-tp4282763p5114568.html Sent from the Camel - Users mailing list archive at Nabble.com.