如何在 .NET 中从 Websphere MQ 进行事务获取?

发布于 2024-09-06 14:26:38 字数 359 浏览 5 评论 0 原文

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

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

I’m writing a client that receives messages from an external Websphere MQ Queue and puts them on an internal MSMQ Queue. The client will use MQ Client or, preferably, be purely managed (MQC.TRANSPORT_MQSERIES_MANAGED).

Based on an example from IBM, I have a version up and running that can do a simple IBM.WMQ.MQQueue.Get(…). How can this operation be done within a transaction? I'm thinking of using non-XA transactions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪是无色的血 2024-09-13 14:26:38

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

参考:MQQueueManager 部分。

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

The WMQ Single-Phase Commit is enabled by using the MQC.MQPMO_SYNCPOINT flag when putting messages or the MQC.MQGMO_SYNCPOINT flag when getting messages. To complete the unit of work, call the queue manager object's Commit or Backout method.

Reference: the Backout and Commit methods in the MQQueueManager section in the manual.

As long as you are using managed code you are limited to 1-phase commit. If using unmanaged code in bindings mode (using shared memory to talk to a local WMQ QMgr) you can use XA. In that case you'd need to use the Begin method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文