Hi Claus, Thank you for your answer and the quick fix! This is exactly what I needed :)
Best regards, Nicolas 2013/1/12 Claus Ibsen-2 [via Camel] < ml-node+s465427n5725448...@n5.nabble.com> > Hi > > I have logged a ticket to let the route id be accessible for end users > https://issues.apache.org/jira/browse/CAMEL-5959 > > > On Fri, Jan 11, 2013 at 7:44 PM, ncolomer <[hidden > email]<http://user/SendEmail.jtp?type=node&node=5725448&i=0>> > wrote: > > > Hi Camel community, > > > > I am facing a problem using the Camel's deadLetterChannel. > > > > I have several Routes that process messages and delegate to a > Route-scoped > > errorHandler when something bad happen (HTTP endpoint timeout for > instance). > > > > What I try to achieve is to implement a generic Route as > deadLetterChannel > > to handle all kind of Route failure and act accordingly (actually, > persist > > object on the filesystem and send an email). > > > > The problem is that filename and mail subject are different, depending > on > > the Route the failure was triggered from. I need to implement some logic > to > > retrieve the failure context (i.e. from which Route it was triggered) > and > > set some headers accordingly. > > > > Is there a possibility to retrieve failed Route (instance / ID or URI) > via > > the Exchange object (Processor) ? If it's not the case, can we set > headers > > in the Route specific errorHandler that will be used in the generic > > deadLetterChannel (worse as Route depends on caller) ? Do you see a > better > > way ? > > > > My Java code currently looks like that : > > > > MyRoute route definition : > > > > from(MyRoute.URI).routeId(MyRoute.ID) > > > > > .errorHandler(deadLetterChannel(DeadLetterRoute.URI).useOriginalMessage() > > > > > .maximumRedeliveries(maximumRedeliveries).redeliveryDelay(redeliveryDelay) > > .log(MyRoute.FAILURE).logHandled(true) > > > .retriesExhaustedLogLevel(LoggingLevel.ERROR).logStackTrace(true) > > > > .retryAttemptedLogLevel(LoggingLevel.WARN).logRetryStackTrace(false)) > > // ... Route's stuff ... > > > > DeadLetterRoute route definition : > > > > from(DeadLetterRoute.URI).routeId(DeadLetterRoute.ID) > > .process(new DeadLetterProcessor()) // Retrieves failed route and > set > > headers accordingly > > .setHeader("from", simple("${properties:mail.from}")) > > .setHeader("to", simple("${properties:mail.to}")) > > .to("file:{{error.directory}}") > > .to("smtp:{{mail.server.url}}"); > > > > > > Thanks in advance for your help, > > Nicolas > > > > > > > > -- > > View this message in context: > http://camel.465427.n5.nabble.com/Retrieve-failed-Route-from-deadLetterChannel-tp5725420.html > > Sent from the Camel - Users mailing list archive at Nabble.com. > > > > -- > Claus Ibsen > ----------------- > Red Hat, Inc. > FuseSource is now part of Red Hat > Email: [hidden email]<http://user/SendEmail.jtp?type=node&node=5725448&i=1> > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://camel.465427.n5.nabble.com/Retrieve-failed-Route-from-deadLetterChannel-tp5725420p5725448.html > To unsubscribe from Retrieve failed Route from deadLetterChannel ?, click > here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5725420&code=bmNvbG9tZXJAb2N0by5jb218NTcyNTQyMHw5MDU2MzAzMjc=> > . > NAML<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > -- View this message in context: http://camel.465427.n5.nabble.com/Retrieve-failed-Route-from-deadLetterChannel-tp5725420p5725462.html Sent from the Camel - Users mailing list archive at Nabble.com.