Hi, I' m trying to audit failures to a table in database on every *retry* caused by an exception.
I have an exception handler that is invoked on exception (HttpOperationFailedException in my case). As expected, a retry is executed every 5 seconds, the * Exception from Exchange in the processor* CamelRestResponseProcessor (* route below*) is always *null *and the route *to("mybatis:insertProduct?statementType=Insert") * is invoked only ofter all the retries are done. Is it possible to log each failure before camel does a retry? My idea was to create custom object in the processor and feed it as input to mybatis. errorHandler(defaultErrorHandler().onRedelivery(new CamelRestResponseProcessor()).to("mybatis:insertProduct?statementType=Insert") .useOriginalMessage().maximumRedeliveries(5).redeliveryDelay(5000)); from("timer:foo?period=1000").process(new MessageProcessor()).to("http4://localhost:8080/cts-rest/cts/users") .bean( CamelBeanBinding.class,"invokeMethod7"); *PROCESSOR* public class CamelRestResponseProcessor implements Processor { private static final Logger logger = Logger.getLogger(CamelRestResponseProcessor.class); /** * */ public CamelRestResponseProcessor() { } @Override public void process(Exchange exchange) throws Exception { Message message = exchange.getIn(); logger.debug(" Headers" + message.getHeaders()); logger.debug(" Exception " +exchange.getException());* //ALWAYS null* } } *I could achieve it with doTry.. doCatch with the route below, but onException /onRedelivery doesn't seem to work inline with a route.* from("timer:foo?period=1000").process(new MessageProcessor()).doTry(). to("http4://localhost:8080/cts-rest/cts/users").doCatch(HttpOperationFailedException.class) .process(new CamelRestResponseProcessor()).to("mybatis:insertProduct?statementType=Insert").doFinally().end(); -- View this message in context: http://camel.465427.n5.nabble.com/Camel-Exception-Processing-onRedelivery-tp5752976.html Sent from the Camel - Users mailing list archive at Nabble.com.