You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by dnn <Da...@ngc.com> on 2010/04/19 19:37:58 UTC

Suspended Transaction not making it to a DLQ?

I am currently working on the error handling for my application.  I have set
up a DLQ so that when my app throws an exception, the XA transaction will
rollback everything and let ActiveMQ redeliver the message to try again. 
After 6 failures, ActiveMQ will move the message to a DLQ.  I have noticed
that it works as expected when all the work is done inside a single XA
transaction.  However, if I start & commit a new XA transaction (method
annotated with the Spring TRANSACTION_REQUIRES_NEW), then throw the
exception, the message is rolled back successfully, but never gets moved to
the DLQ and ends up in an infinite loop!

I am using ActiveMQ 5.3.1, Camel 2.2.0, Spring 2.5.6, and Bitronix 1.3.3. 
My Camel route is roughly:

<from uri="jms:queue:start1"/>
<transacted/>
<to uri="aProcessorAnnotatedWIth_TRANSACTION_REQUIRES_NEW"/>
<to uri="aProcessorThatThrowsAnException"/>
<to uri="jms:queue:end1"/>

With the "aProcessorAnnotatedWIth_TRANSACTION_REQUIRES_NEW" processor, the
message never hits the DLQ and my app spins indefinitely.  If I comment it
out, the message makes it to the DLQ as expected.

Has anyone ever seen an error like this?

Thanks,
Dan Nawrocki

-- 
View this message in context: http://old.nabble.com/Suspended-Transaction-not-making-it-to-a-DLQ--tp28287721p28287721.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.