【问题标题】:How to do a transactional get from Websphere MQ in .NET?如何在 .NET 中从 Websphere MQ 进行事务获取?
【发布时间】:2010-06-21 13:01:18
【问题描述】:

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

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

【问题讨论】:

    标签: .net transactions msmq ibm-mq


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-07
      • 2011-02-10
      • 2012-10-14
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多