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

基于example from IBM,我有一个可以运行简单IBM.WMQ.MQQueue.Get(…)的版本并正在运行。如何在交易中完成此操作?我正在考虑使用非XA交易。

最佳答案

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

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

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

10-06 09:20