user1284849
user1284849

Reputation: 83

rollback() in WebSphere Application Server V7 with WebSphere MQ v7

I'm facing problem in transaction rollback(unable to push the back the message to original queue).

MDB(Container managed TX) deployed in WAS v7 which is listening to remote queue configured in WebSphere MQ v7.

When I'm marking the MessageDrivenContext.setRollbackOnly() i can see the below details in the ffdc WAS logs

com.ibm.websphere.csi.CSITransactionRolledbackException: Transaction marked rollbackonly at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:222) at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561) at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512) at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:107) at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:132) at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:496) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)

it looks like transaction is getting rolled back successfully but i'm unable to see the same message in the Queue.(Queue is empty/message is deleted).

Can some one tell how do i retain the message in the Queue and process it again ???

Upvotes: 1

Views: 1433

Answers (1)

user1284849
user1284849

Reputation: 83

I found out that message which are rolled back are placed in SYSTEM.DEAD.LETTER.QUEUE.

I check the following properties of websphere mq queue manager

1) BOTHRESH(5)
2) BOQNAME(ERROR QUEUE NAME).

even before backout count could reach max BOTHRESH the messaged are placed in default queue instead of configured error queue.

Can some one tell whats wrong in the configuration?

Upvotes: 1

Related Questions