所以我写了一个程序来连接到 VIP 后面的集群 WebLogic 服务器,其中有 4 个服务器和 4 个队列,这些服务器和队列都已连接(我认为他们称它们为分布式...)当我从本地计算机运行该程序时,只需获取 JMS 连接、查找消息并断开连接,效果很好。我的意思是:
迭代#1
- 连接到服务器 1。
- 查找消息
- 断开连接
迭代#2
- 连接到服务器 2。
- 查找消息
- 断开连接
等等。
当我在服务器上运行它时,应用程序会选择一个服务器并坚持使用它。它永远不会选择新服务器,因此其他服务器上的队列永远不会工作。就像“粘性 session ”设置一样...我的操作系统是Win7,服务器操作系统是Win2008r2 两台机器的JDK是相同的..客户端是如何配置的?服务器实现使用“Apache Procrun”将其作为服务运行。但我还没有看到这部分有太多问题......
是否有 session cookie 被写入某处?
有什么想法吗?
谢谢!
最佳答案
尝试禁用 JMS 连接工厂上的“服务器关联性”。如果您使用默认连接工厂,请定义您自己的禁用服务器关联性。
编辑: 服务器关联性是服务器端设置,但它控制 WebLogic JMS Server 收到消息后如何将消息路由到使用者。另一种选择是使用循环 DNS 并仅发送到解析为不同 IP(托管服务器)的一个主机名,以便每个连接都转到不同的服务器。
我很确定这就是您正在寻找的设置:)
关于java - 客户端 JMS 配置 - JMS 集群 - 仅连接到一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11235253/