繁体   English   中英

MSMQ:在事务上下文中的远程访问

[英]MSMQ: Remote access in transactional context

考虑MSMQ 3.0版

你好。

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

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

我看到了使用带有MessageQueueTransaction的事务性远程读取的问题,并且答案建议使用DTC转换。 (TransactionScope的)

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中有两种交易:
-内部事务-由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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM