So something like this should work?

        from("amq:inbound:queue")

                .errorHandler(deadLetterChannel("direct:failed:queue")
                        .maximumRedeliveries(5)
                        .redeliveryDelay(1000))

                 .to("http://server.url";)
                .end();


//log and send to DLQ
        from("direct:failed:queue")
                .wireTap("vm:dbLogDeliveryFailure")
                .to("amq:dead:queue")
                .end();


-Thanks

On Wed, Jul 2, 2014 at 9:35 PM, Willem Jiang <willem.ji...@gmail.com> wrote:

> Do you mean you want camel to call the WireTap processor before sending
> the message to DeadLetterChannle?
>
> DeadLetterChannel is supposed to send the exchange to a message queue, but
> you can setup a route which start point is “direct:start”. Then you can
> define another router to handle the exchange and you can add the WireTap in
> the new router.
>
>
>
> --
> Willem Jiang
>
> Red Hat, Inc.
> Web: http://www.redhat.com
> Blog: http://willemjiang.blogspot.com (English)
> http://jnn.iteye.com (Chinese)
> Twitter: willemjiang
> Weibo: 姜宁willem
>
>
>
> On July 3, 2014 at 6:19:57 AM, Manav Kher (icech...@gmail.com) wrote:
> > I have configured a RedeiveryPolicy on the error handler. Is there a way
> I
> > can call the WireTap processor once all delivery attempts have been made
> > the message is about to be sent to the DLC?
> >
> > from("vm:sentToDestination")
> > .errorHandler(deadLetterChannel("{{dlc.queue}}")
> > .retriesExhaustedLogLevel(LoggingLevel.DEBUG)
> > .logRetryStackTrace(false).asyncDelayedRedelivery()
> > .maximumRedeliveries(retryMaxCount)
> > .redeliveryDelay(retryDelay))
> >
> > .to("http://someURL";)
> >
> >
> > --
> > -M Kher
> >
>
>


-- 
-M Kher

Reply via email to