gpt4 book ai didi

c# - MSMQ:事务上下文中的远程访问

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:54 25 4
gpt4 key购买 nike

考虑使用 MSMQ 3.0 版

你好。

我想从远程 MSMQ 队列发送和读取消息。

在 3.0 版本中,不支持使用事务进行远程读取。在 4.0 版中,可以使用 peek 而非 receive 方法进行事务读取。

我看到使用 MessageQueueTransaction 进行事务性远程读取时出现问题,答案建议使用 DTC 事务。 (交易范围)

http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.msmq.programming&tid=7dd22d35-1750-443d-a9b4-c771fde76e7b&cat=&lang=&cr=&sloc=&p=1

我的问题是我是否可以使用 MessageQueueTransaction 对象进行事务性远程发送,或者因为它是远程发送,所以我需要使用 TransactionScope。

谢谢

最佳答案

根据[1],MSMQ中有2种事务:
- 内部交易 - 由 MessageQueueTransaction 对象完成
- 外部事务——由TransactionScope 对象完成。

当有其他参与者然后 MSMQ(例如数据库)需要在同一个事务中一起工作时,我们使用外部事务。

否则,如果我们的事务只包含 MSMQ 队列(即使不止一个),我们应该使用 MessageQueueTransaction。

根据 [2],msmq 发送是在“即发即弃”模式下完成的。在这种情况下,无论队列是本地的还是远程的,如果事务不涉及其他参与者,则应使用 MessageQueueTransaction。

在远程队列的情况下,如果我们需要到达目的地的保证,我们必须使用确认机制。

[1] http://msdn.microsoft.com/en-us/library/ms978430.aspx
[2] http://beaucrawford.net/post/MSMQ-ndash3b-Sending-Messages-to-Remote-Queues.aspx

关于c# - MSMQ:事务上下文中的远程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3409720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com