You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by rhuiser <ro...@gmail.com> on 2014/10/14 19:01:51 UTC

Camel transacted message rolled to DLQ, no DLQ_DELIVERY_FAILURE_CAUSE_PROPERTY property set

Hi,

Does anyone has seen the message property
DLQ_DELIVERY_FAILURE_CAUSE_PROPERTY set on the message moved to the DLQ when
using Camel in combination with a transacted?

So far, I have not...

I created some simple routes (one with Spring transaction manager, one with
ActiveMQ component), both with transaction enabled, no (specific) exception
handler in route:

[timer] --> [setBody: ${property.CamelTimerCounter}] --> [queue_in]

[queue_in] --> [processor: (if ${property.CamelTimerCounter} == 2, throw
Exception)] --> [queue_out]

Route works as expected, message is indeed rolled to DLQ after retries, but
the option "DLQ_DELIVERY_FAILURE_CAUSE_PROPERTY" was never set....

Any hints?

Thanks -- Robin




--
View this message in context: http://activemq.2283324.n4.nabble.com/Camel-transacted-message-rolled-to-DLQ-no-DLQ-DELIVERY-FAILURE-CAUSE-PROPERTY-property-set-tp4686389.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Camel transacted message rolled to DLQ, no DLQ_DELIVERY_FAILURE_CAUSE_PROPERTY property set

Posted by Gary Tully <ga...@gmail.com>.
that property is only set in the ActiveMQMessageConsumer, when onMessage
throws an exception.
The value is then set as the poisonCause of a message ack.
In camel, the broker dlq processing is bypassed b/c the exceptions are
trapped by spring.
peek at
https://github.com/apache/activemq/blob/d54e0d6ab590b6a6148a5e2629c45b95d3f40eb8/activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java#L1397
to get some insight into how it works in vanila activemq, ie: wher
md.getRollbackCause is used.
Maybe a custom exception handler in camel can do something similar.

On 14 October 2014 18:01, rhuiser <ro...@gmail.com> wrote:

> Hi,
>
> Does anyone has seen the message property
> DLQ_DELIVERY_FAILURE_CAUSE_PROPERTY set on the message moved to the DLQ
> when
> using Camel in combination with a transacted?
>
> So far, I have not...
>
> I created some simple routes (one with Spring transaction manager, one with
> ActiveMQ component), both with transaction enabled, no (specific) exception
> handler in route:
>
> [timer] --> [setBody: ${property.CamelTimerCounter}] --> [queue_in]
>
> [queue_in] --> [processor: (if ${property.CamelTimerCounter} == 2, throw
> Exception)] --> [queue_out]
>
> Route works as expected, message is indeed rolled to DLQ after retries, but
> the option "DLQ_DELIVERY_FAILURE_CAUSE_PROPERTY" was never set....
>
> Any hints?
>
> Thanks -- Robin
>
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/Camel-transacted-message-rolled-to-DLQ-no-DLQ-DELIVERY-FAILURE-CAUSE-PROPERTY-property-set-tp4686389.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>