我在事务回滚中遇到问题(无法将消息推回原始队列)。
部署在 WAS v7 中的 MDB(容器管理 TX)正在侦听 WebSphere MQ v7 中配置的远程队列。
当我标记 MessageDrivenContext.setRollbackOnly() 时,我可以在 ffdc WAS 日志中看到以下详细信息
com.ibm.websphere.csi.CSITransactionRolledbackException:事务在 com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561) 的 com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:222) 标记为 rollbackonly )在 com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4512) 在 com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:107) 在 com.ibm.ejs.container.MDBWrapper。 onMessage(MDBWrapper.java:132) 在 com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:496) 在 com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
看起来事务正在成功回滚,但我无法在队列中看到相同的消息。(队列为空/消息已删除)。
有人能告诉我如何将消息保留在队列中并再次处理吗???