Hello,

I'm having some troubles using redelivery plugin and XA transactions. I'm using 
a spring listener-container and JtaTransactionManager in an application server. 
I'm using ActiveMQ 5.8.0.

When the listener receives the message, we write it into a database and send a 
response message during the transaction. In order to test the rollback of the 
transaction, we throw an exception before the end of transaction.

When using client redelivery (jms.redeliveryPolicy.maximumRedeliveries=3), 
everything works as expected: the response message is not sent and the message 
is not persisted.

But when using broker redelivery plugin, the behavior is different. After the 
redelivery delay, the message is sent again but the XA is not working anymore 
on the messaging side: the response message is sent anyway. So after sending 1 
message,  I end up with 1 message in my dead letter queue (expected), an empty 
database (expected), and various duplicate message responses (should be 0).

This is my configuration of the redelivery plugin :
<plugins>
   <redeliveryPlugin fallbackToDeadLetter="true" 
sendToDlqIfMaxRetriesExceeded="true">
     <redeliveryPolicyMap>
       <redeliveryPolicyMap>
         <defaultEntry>
           <redeliveryPolicy maximumRedeliveries="6" redeliveryDelay="10000" />
         </defaultEntry>
       </redeliveryPolicyMap>
     </redeliveryPolicyMap>
   </redeliveryPlugin>
</plugins>

Has anyone experienced similar problems ? Am I missing something about broker 
redelivery ?

Thank you,
Guillaume

_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations 
confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce 
message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages 
electroniques etant susceptibles d'alteration,
France Telecom - Orange decline toute responsabilite si ce message a ete 
altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged 
information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete 
this message and its attachments.
As emails may be altered, France Telecom - Orange is not liable for messages 
that have been modified, changed or falsified.
Thank you.

Reply via email to