2010-06-21 22 views
3

我正在編寫一個客戶端,它接收來自外部Websphere MQ隊列的消息並將它們放在內部MSMQ隊列中。客戶端將使用MQ Client,或者最好是純管理的(MQC.TRANSPORT_MQSERIES_MANAGED)。如何從.NET中的Websphere MQ執行事務性獲取?

基於example from IBM,我有一個可以執行簡單的IBM.WMQ.MQQueue.Get(...)的版本。如何在交易中完成此操作?我正在考慮使用非XA事務。

回答

5

通過使用MQC.MQPMO_SYNCPOINT標誌或消息時使用MQC.MQGMO_SYNCPOINT標誌來啓用WMQ單階段提交。要完成工作單元,請調用隊列管理器對象的Commit或Backout方法。

參考:手冊中MQQueueManager部分中的回退和提交方法。

只要您使用的是託管代碼,您就只能進行一階段提交。如果在綁定模式下使用非託管代碼(使用共享內存與本地WMQ QMgr對話),則可以使用XA。在這種情況下,你需要使用Begin方法。