2

我正在开发一个独立的 Java 应用程序,它从一个 MQ 队列获取多条消息,处理消息中包含的数据,然后将一条新消息放入另一个 MQ 队列。要求之一是 GET 和 PUT 操作必须在同一个工作单元内,我可以通过指定MQGMO_SYNCPOINTMQGMO_SYNCPOINT获取/放置消息选项来做到这一点。

我不明白如何使用 Java MQ API 执行 MQCMIT 和 MQBACK 操作以显式提交或回滚 MQ 工作单元。

我在 IBM MQ InfoCenter 网站和 JavaDoc 上进行了搜索,但在用于提交和回滚工作单元的 API 上找不到任何内容。

我使用的 WebSphere MQ 版本是 7.5,并且我正在使用绑定模式连接到队列管理器。

任何人都可以提供一些示例代码来展示如何使用 Java MQ API 显式提交或回滚 MQ 工作单元,或者向我指出相应的 JavaDoc 页面的方向吗?

4

2 回答 2

5

基本流程是,当您在事务中发送消息时,它会将消息保存在缓冲区中,直到调用提交或回滚:如果执行提交,则发送消息,否则将丢弃它们。

下面是一个来自 Novell 的使用 JMS API 的示例,如果您使用的是 JMS API,它应该与 WebSphere MQ 相同:

http://www.novell.com/documentation/extend52/Docs/help/MP/jms/tutorial/txSession-1.htm

更新: 下面是 StackOverflow 上的另一个问题,其中包含使用 Websphere MQ API 提交/回滚的代码:

java websphere MQ

于 2013-03-04T19:01:25.033 回答
2

使用中的commit() 方法MQQueueManager

于 2013-03-04T19:11:49.787 回答