我在事務回滾中遇到問題(無法將消息推回原始隊列)。使用WebSphere MQ v7在WebSphere Application Server V7中回滾()
部署在WAS v7中的MDB(容器管理的TX)正在監聽WebSphere MQ v7中配置的遠程隊列。
當我標誌着MessageDrivenContext.setRollbackOnly()我可以看到在FFDC下面的詳細資料已記錄
com.ibm.websphere.csi.CSITransactionRolledbackException:交易在com.ibm.ejs rollbackonly 標.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) a牛逼com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:496) 在com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1527)
它看起來像事務成功回滾,但我無法在隊列中看到相同的消息(隊列爲空/消息被刪除)。
有人可以告訴我如何保留隊列中的消息,並再次處理它?