MSMQ 中的重定向映射。消息未发送

MSMQ 中的重定向映射。消息未发送

我有一个设置,其中有一系列服务器,我需要在它们之间发送消息:

A -> B

在 AI 上有一个应用程序将消息放在本地 MSMQ 队列上。该队列需要将消息转发到 B 上的 MSMQ 队列。

消息不必是事务性的。

我已在 Windows 消息队列功能下启用 HTTP 支持。我在 System32/msmq/mappings 文件夹下添加了一个映射文件,如下所示:

<redirections xmlns="msmq-queue-redirections.xml">
   <redirection> 
     <from>http://A/msmsq/private$/logger</from>
     <to>http://B/msmq/private$/logger</to>
   </redirection>
</redirections> 

我正在使用 powershell 将消息发送到 A 上的队列,如下所示:

Get-MsmqQueue -name logger | Send-MsmqQueue -body "test message" -label "test"

当消息被放置在 A 上的队列中时,它们不会被重定向到 B,而是留在 A 队列中。

我应该如何配置 A 和 B 以便消息从 A 上的 MSMQ 转发到 B 上的 MSMQ?

更新

在实际场景中,链中涉及更多服务器,并且每个服务器仅允许与链中的下一个服务器通信。在链中的最后一个服务器上,应用程序从该服务器上的队列中读取消息并将消息插入到数据库中。

答案1

您无法按照您尝试的方式完成此操作。当您将消息发送到本地队列 A 时,就完成了。该消息已成功传递。任务完成。

MSMQ 使用传出队列来提供您所需的功能。

使用 PowerShell 将消息直接发送到服务器 B。消息存储在 A 上的传出队列中,直到可以传递到 B。存储转发正在执行。

相关内容