2013-03-04 57 views
2

我正在开发一个独立的Java应用程序,它从一个MQ队列获取几条消息,处理消息中包含的数据,然后将新消息放入另一个MQ队列。其中一个要求是GET和PUT操作在同一个工作单元内,我可以通过指定MQGMO_SYNCPOINTMQGMO_SYNCPOINT get/put消息选项来完成此操作。使用Java API显式提交或回滚MQ工作单元

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

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

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

任何人都可以提供一些示例代码,说明如何使用Java MQ API显式提交或回滚MQ工作单元,或者请指点适当的JavaDoc页面?

回答

5

的基本流程是,当你在一个事务中发送的消息将在缓冲区保持消息,直到提交或回滚被称为:如果执行则消息被发送提交,否则会被丢弃。

以下是使用JMS API的从Novell的样本应该是一样的WebSphere MQ,如果你使用JMS API:

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

UPDATE: 下面是另一个问题StackOverflow上有犯/回滚使用WebSphere MQ的API代码:

java websphere MQ

+0

谢谢 - 我也许应该做它在原来的问题清楚,但是这是一个独立的应用程序,并且没有使用JMS。 – 2013-03-04 19:04:31

+0

@PaulH更新为包含Websphere MQ特定代码示例。 – ahjmorton 2013-03-04 19:08:07

+0

+1用于查找其他SO问题。我忘了那个! – 2013-03-04 21:04:26

1

MQQueueManager中使用commit()方法。