0

我将 MSMQ 配置为在集群中运行。集群由两个 Hyper-V 虚拟机组成,并在第三个虚拟机上使用公共存储(所有虚拟机共享 windows 域,它们通过网络相互看到)。故障转移群集管理器管理单元显示 MSMQ 服务正在运行。机器上的非集群 MSMQ 服务是集群的成员,显示为在服务管理单元中运行。现在我尝试从远程计算机(从第三个虚拟机)向集群 MSMQ 服务和非集群 MSMQ 服务发送消息。我使用以下队列名称:

  • FormatName:Direct=OS:{clustered-msmq-netbios-name}\private$\{queueName}
  • FormatName:Direct=TCP:{clustered-msmq-ip-address}\private$\{queueName}
  • FormatName:Direct=TCP:{non-clustered-msmq-ip-address}\private$\{queueName}

当指定非集群 msmq ip 地址时,消息将传递到非集群 msmq 实例。但是当我尝试访问集群的 msmq 实例时,发送的消息停留在传出消息队列中,并且显示“等待连接”(无法连接 Winsock 套接字)。集群 msmq 实例上的队列为空。

我尝试使用 telnet 连接到集群 msmq 服务。对于连接,我指定了集群 msmq ip-address 和端口 1801。它说“无法打开与主机的连接,在端口 1801:连接失败”。

任何想法?

附加信息。当我在两个集群服务器都在线时单击“管理消息队列”菜单项时,在管理单元中树中没有消息队列项。当我暂停一台服务器(第二台)时,树中会出现消息队列项。当树中有一个消息队列项目时,消息开始被处理(我看到它们从发送服务器上的传出消息队列中消失,但我没有看到它们出现在接收服务器上)。

4

1 回答 1

0

您似乎只能从该集群节点管理集群消息队列,该节点现在是角色的所有者。在现在不活动的集群节点上,没有“管理消息队列”菜单项。

考虑到消息未传递到集群 msmq 实例的问题,我只是在集群节点之一上重新安装了 msmq windows 功能并重新创建了 msmq 集群角色。在这些操作之后,传递消息才开始工作。

于 2018-07-02T12:59:57.410 回答