我正在开发一个独立的Java应用程序,该应用程序从一个MQ队列获取多个消息,处理消息中包含的数据,然后将新消息放入另一个MQ队列。其中一个需求是GET和PUT操作在同一个工作单元内,我可以通过指定MQGMO_SYNCPOINT
和MQGMO_SYNCPOINT
的GET/PUT消息选项来实现这一点。
我不明白如何使用Java MQ API执行MQCMIT和MQBACK操作来显式提交或回滚MQ工作单元。
我已经在IBM MQ InfoCenter网站和JavaDoc上搜索过了,但是我找不到任何关于提交和回滚工作单元的api的信息。
我使用的WebSphere MQ版本是7.5,我使用绑定模式连接到队列管理器。
是否有人能够提供一些示例代码,显示如何显式提交或回滚使用Java MQ api的MQ工作单元或指出我在适当的JavaDoc页面的方向请?
基本流程是,当您在事务中发送消息时,它将在缓冲区中保存消息,直到调用提交或回滚:如果执行提交,则发送消息,否则将丢弃消息。
下面是一个来自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提交/回滚的代码:
在MQQueueManager
中使用commit()
方法