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 <ncolo...@octo.com> 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: cib...@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to