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

Reply via email to