如何在Windows故障转移群集中配置通用服务以使用群集而不是本地MSMQ

时间:2018-01-03 17:31:06

标签: msmq windows-clustering

运行Windows 2008 R2 Datacenter。我们有通过MSMQ接收消息的Windows服务。我们正在添加一个双节点集群,并尝试在那里运行服务。我们通过故障转移群集管理器添加了消息队列,并在其上创建了一些测试队列。我们可以从其他机器发送到群集队列。

接下来,我们将服务作为通用服务资源添加到群集MSMQ服务。但我们似乎无法使用集群MSMQ而不是节点的本地MSMQ来获取服务。

我在这个主题上找到的每篇文章都说你只需要为排队服务使用的通用服务添加相同的网络名称依赖关系,并检查“使用网络名称作为计算机名称”选项。服务属性的常规选项卡。我们已经完成了这项工作,但他们仍在使用当地的排队服务。

如果我使服务资源脱机,停止本地消息队列服务,然后将服务资源重新联机,本地消息队列服务随之启动,所以它肯定会以某种方式绑定但我看不到

1 个答案:

答案 0 :(得分:0)

事实证明,您不能仅通过故障转移群集管理器向服务添加依赖关系。我们还需要通过命令行在每个本地节点上配置服务,如本答案中所述:

https://serverfault.com/questions/24821/how-to-add-dependency-on-a-windows-service-after-the-service-is-installed

在我们的例子中,命令是:

sc config OurService depend = MSMQ $ MSMQ-OurClustMsmq (注意=符号后面的空格)

我想这会使它成为serverfault问题的副本......

更新:实际上,故障转移群集管理器中添加的依赖项可以正常工作,但服务已经附带了自己的(本地)MSMQ依赖项。最后,解决这个问题不是通过向集群MSMQ添加显式依赖,而是通过删除对本地MSMQ的依赖:

sc config OurService depend = /