首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSMQ事务消息传递是如何工作的?

MSMQ事务消息传递是如何工作的?
EN

Stack Overflow用户
提问于 2011-10-04 16:04:19
回答 1查看 4K关注 0票数 8

只想确认如何向远程事务消息队列发送消息。

假设我有两台机器,A和B。

机器A有一个事务队列,用于接收消息。windows服务监视此队列并对数据执行操作(将其保存到Server)。机器B正在运行一个需要写入机器A上的队列的应用程序。

几个问题:

  1. 在发送消息时,是否在机器B上创建了本地副本,然后才将其传递给机器A? 如果是这样的话,这种行为是默认的,还是只在发送"IsRecoverable“属性时发生? 队列是事务性的这一事实对此行为有任何影响吗?
  2. 由于我使用的是事务队列,事务提交后数据在哪里?它是否位于本地,等待msmq服务将消息传递到远程队列? 或者是远程计算机上队列中的消息?

我在解释文件方面有困难。在某些地方,我看到了存储和转发行为的描述,但我很难理解这是事务性队列的默认行为,还是需要显式地进行操作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-04 18:45:15

了解事务性MSMQ的主要内容是,在将消息传输到远程队列的事务过程中实际上涉及3个不同的事务。

  1. 发送方将消息写入本地临时队列。
  2. 发送器机器上的队列管理器将消息传输到接收机器上的队列管理器。
  3. 接收方服务处理队列消息,然后从队列中删除消息。

所以在回答你的问题时:

在发送消息时,是否在机器B上创建了本地副本,然后才将其传递给机器A?

如果是这样的话,这种行为是默认的,还是只在发送"IsRecoverable“属性时发生?

默认情况下。这就是所谓的存储和转发

队列是事务性的这一事实对此行为有任何影响吗?

不,除了失败的时候。

由于我使用的是事务队列,事务提交后数据在哪里?

这取决于您指的是哪个事务(见上文)。

它是否位于本地,等待msmq服务将消息传递到远程队列?

只有当远程队列不可用时。

或者消息是否位于远程计算机上的队列中?

如果接收方服务无法成功地处理消息(处理程序中有异常),则消息将停留在远程队列上。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7650788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档