群集MSMQ - 发送时无效的队列路径名称

时间:2011-08-18 23:11:06

标签: msmq cluster-computing

我们在Windows 2008 R2上运行了一个双节点群集。我在两个节点上都安装了MSMQ和Message Queue Server以及目录服务集成选项。我创建了一个名为TESTV0Msmq的集群MSMQ资源(我们使用事务队列,因此之前已经创建了DTC资源)。

我ping它时虚拟资源正确解析。

我使用MessageQueue构造函数在c#中创建了一个小型控制台可执行文件,以允许我们发送基本消息(同时发送到事务和非事务队列)。

活动节点这些路径起作用:

\私人$ \ clustertest

{计算机名} \私人$ \ clustertest

但是 TESTV0Msmq \ private $ \ clustertest 会返回“无效的队列路径名”。

根据这篇文章: http://technet.microsoft.com/en-us/library/cc776600(WS.10).aspx

我应该可以这样做吗?

  

特别是,可以在虚拟服务器上创建队列,并且   消息可以发送给他们。这些队列使用   VirtualServerName \ QueueName语法。

1 个答案:

答案 0 :(得分:1)

听起来像经典的Clustering MSMQ问题:

Clustering MSMQ applications - rule #1

如果您可以从活动节点访问“。\ private $ \ clustertest”或“{machinename} \ private $ \ clustertest”,那么这意味着LOCAL MSMQ队列管理器托管了一个名为clustertest的队列。它在被动节点上不起作用,因为那里还没有名为clustertest的队列。如果您对资源进行故障转移,则应该失败。

您需要在群集资源中创建一个队列。 TESTV0Msmq \ private $ \ clustertest失败,因为队列是在本地计算机而不是虚拟机上创建的。

干杯
John Breakwell