3

我正在编写一个从外部 Websphere MQ 队列接收消息并将它们放在内部 MSMQ 队列中的客户端。客户端将使用 MQ 客户端,或者最好是纯托管的 (MQC.TRANSPORT_MQSERIES_MANAGED)。

基于IBM 的一个示例,我有一个版本正在运行,可以执行简单的 IBM.WMQ.MQQueue.Get(...)。如何在事务中完成此操作?我正在考虑使用非 XA 事务。

4

1 回答 1

5

WMQ 单阶段提交通过在放置消息时使用 MQC.MQPMO_SYNCPOINT 标志或在获取消息时使用 MQC.MQGMO_SYNCPOINT 标志来启用。要完成工作单元,请调用队列管理器对象的 Commit 或 Backout 方法。

参考:手册MQQueueManager部分中的 Backout 和 Commit 方法。

只要您使用托管代码,您就仅限于 1 阶段提交。如果在绑定模式下使用非托管代码(使用共享内存与本地 WMQ QMgr 对话),您可以使用 XA。在这种情况下,您需要使用 Begin 方法。

于 2010-06-21T15:03:02.197 回答