只想获得有关如何向远程事务消息队列发送消息的确认.
假设我有两台机器,A和B.
机器A具有用于接收消息的事务队列.Windows服务监视此队列并对数据执行某些操作(将其保留到SQL Server).机器B正在运行需要写入机器A上的队列的应用程序.
几个问题:
发送邮件时,是否在机器B上创建本地副本,然后才将其传送到机器A?
一个.如果是这样,默认情况下是这种行为,还是仅在发送"IsRecoverable"属性时才会发生?
湾 队列是事务性的这一事实是否会对此行为产生影响?
由于我使用的是事务性队列,一旦事务提交,数据在哪里?一个.它是否在本地,等待msmq服务将消息传递到远程队列?
湾 或者消息是否位于远程计算机上的队列中?
我在解释文档方面遇到了麻烦.在某些地方,我看到描述了存储和转发行为,但我无法理解这是否是事务队列的默认行为,或者我是否需要明确地执行某些操作才能实现这一点.
关于事务性MSMQ的主要理解是,在将消息事务传输到远程队列时实际上涉及3个不同的事务.
所以回答你的问题:
发送邮件时,是否在机器B上创建本地副本,然后才将其传送到机器A?
是
如果是这样,默认情况下是这种行为,还是仅在发送"IsRecoverable"属性时才会发生?
默认情况下.这就是所谓的存储和转发.
队列是事务性的这一事实是否会对此行为产生影响?
没有,除非发生故障.
由于我使用的是事务性队列,一旦事务提交,数据在哪里?
这取决于你的意思(见上文)
它是否在本地,等待msmq服务将消息传递到远程队列?
仅当远程队列不可用时.
或者消息是否位于远程计算机上的队列中?
如果接收方服务未能成功处理消息(处理程序中存在异常),则消息将保留在远程队列中.