Jms 使用WebSphere MQ V7在WebSphere Application Server V7中回滚()

Jms 使用WebSphere MQ V7在WebSphere Application Server V7中回滚(),jms,ibm-mq,websphere-7,ibm-was,Jms,Ibm Mq,Websphere 7,Ibm Was,我在事务回滚中遇到问题(无法将消息推回到原始队列) 部署在WASV7中的MDB(容器管理的TX)正在侦听WebSphere MQ v7中配置的远程队列 当我标记MessageDrivenContext.setRollbackOnly()时,我可以在ffdc WAS日志中看到以下详细信息 com.ibm.websphere.csi.csitransactionrolled异常:标记为rollbackonly的事务 位于com.ibm.ejs.csi.TranStrategy.postInvoke(

我在事务回滚中遇到问题(无法将消息推回到原始队列)

部署在WASV7中的MDB(容器管理的TX)正在侦听WebSphere MQ v7中配置的远程队列

当我标记MessageDrivenContext.setRollbackOnly()时,我可以在ffdc WAS日志中看到以下详细信息

com.ibm.websphere.csi.csitransactionrolled异常:标记为rollbackonly的事务 位于com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:222) 位于com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:561) 位于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)

看起来事务已成功回滚,但我无法在队列中看到相同的消息。(队列为空/消息已删除)


有人能告诉我如何将消息保留在队列中并再次处理吗?

我发现回滚的消息被放置在SYSTEM.DEAD.LETTER.Queue中

我检查websphere mq队列管理器的以下属性

1) BOTHRESH(5)
2) BOQNAME(错误队列名称)

即使在退出计数达到max BOTHRESH之前,消息也会被放置在默认队列中,而不是配置的错误队列中


有人能说出配置中的错误吗?

我发现回滚的消息放在SYSTEM.DEAD.LETTER.QUEUE中

我检查websphere mq队列管理器的以下属性

1) BOTHRESH(5)
2) BOQNAME(错误队列名称)

即使在退出计数达到max BOTHRESH之前,消息也会被放置在默认队列中,而不是配置的错误队列中

有人能说出配置中的错误吗