我在双节点 Windows 2003 群集上运行 MSMQ。当我尝试将事务性消息发送到另一个林中的 Windows 2008 服务器上的队列时,消息会卡在群集的传出队列中。传出队列显示“等待连接”,并具有下一跳的目标服务器 IP。
我可以从群集向同一林中的 Windows 2008 服务器发送消息。我还可以从群集的任一节点向同一林和另一个林中的 Windows 2008 服务器发送消息。我可以从另一个林中的 Windows 2008 服务器将消息发送回群集。
编辑:在服务器上运行网络捕获显示 Windows 2008 服务器正在从集群接收数据包,但它们并没有被传递到 MSMQ 进程的各层。
答案1
我要做的第一件事是确保 Windows 2008 目标正在监听端口 3527。http://blogs.msdn.com/b/johnbreakwell/archive/2010/03/05/port-3527.aspx
[3 月 5 日] 我会使用网络监视器或 Wireshark 查看网络流量。
传出队列状态有什么作用?您可以重新启动 MSMQ 服务以启动传出队列连接。传出队列可能正在经历“连接 - 已连接 - 空闲超时后断开连接 - 等待连接”循环。或者可能是“连接 - 失败 - 等待连接”循环。取决于根本原因是什么。
如果从未连接,则三次 TCP 握手将永远无法完成。您可以连接到远程服务器上的网络共享吗?基本上可以消除所有基本网络问题。
服务器位于另一个森林中这一事实并不重要。发送者只需将目的地解析为 IP 地址(假设您尚未通过 IP 地址寻址消息)。
干杯
约翰