You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Ra...@wellsfargo.com on 2010/09/17 02:37:11 UTC

[AXIS2] - Transaction rollback to backout requeue with IBM MQ is not working

Hello,

We have been struggling in setting up the jms transport with transaction rollback. This is what we are doing:

We have enabled JMS transportreceiver and JMS transportsender on axis2 (v1.4) to connect to IBM Websphere MQ v7.0.1.2. My application is deployed on Tomcat v6.0.28 and services.xml in my service aar file has following parameters set:

<parameter name="transport.jms.ConnectionFactory" locked="false"> LGRIDConnectionFactory</parameter>
<parameter name="transport.jms.Destination" locked="false">TEST</parameter>
<parameter name="transport.jms.SessionAcknowledgement" locked="false">SESSION_TRANSACTED</parameter>
<parameter name="transport.jms.SessionTransacted" locked="false">true</parameter>
<parameter name="transport.jms.CacheLevel" locked="false">consumer</parameter>
<parameter name="transport.Transactionality" locked="false">local</parameter>

Service has an operation which gets triggered when a message arrives to TEST queue. We have set SessionTransacted to true so that in case of any exception message gets rolled back to queue and obviously consumed by the application to reprocess. We have also setup Backout Threshold (BOTHRESH) as 2 and Backout requeue queue (BOQNAME) as TEST_DLQ on this TEST Queue. We want application to re-try two times if it still fails move the message to Backout requeue queue.

Now this complete configuration works as we expected but the messages which are moved to Backout requeue queue are not committed and we are not able to browse those messages. When we stop the tomcat messages are moved back to TEST queue and we can browse there. If we start the Tomcat again without removing those message, application does not pick them and they are directly moved to Backout requeue queue and still has uncommitted state. Are we missing something? Do we need to set some other parameter?

Many thanks!!!

Thanks and Regards,
Rajeev Verma