我有一个名为inventory的集群,其中有4个队列管理器已定义为london,paris,newyork,tokyo。如果london和paris是获取消息的默认队列管理器,我如何使newyork和tokyo默认接收并且不允许客户端将消息放在伦敦和巴黎上,但它们仍然应该在群集中。这可以通过工作负载管理实现吗?
如果还有其他解决方案,请告诉我。所有这些都应该在不对客户端进行任何更改的情况下完成。
由于
答案 0 :(得分:4)
在这里添加T.Rob的建议有几个选项,你可以看一下:
禁用london
和paris
中的群集队列实例。因此,消息将在newyork
和tokyo
之间分发。
编写一个集群工作负载平衡出口,该出口将跳过将消息放入london
和paris
中的集群队列,并仅将消息放入newyork
和{{1}中的集群队列实例}}
请参阅MQ 7文档中的Writing and compiling cluster workload exits。
答案 1 :(得分:3)
重要的是要记住,WebSphere MQ集群提供了一个上下文,告诉队列管理器如何在它们之间进行通信。另一方面,客户完全没有意识到集群。必须具体告知客户端要连接的队列管理器。
在您的情况下,配置客户端时会为他们提供newyork
和tokoyo
QMgrs的连接详细信息,但他们将无法连接到london
或paris
。假设所有这些QMgrs都在WebSphere MQ集群中,来自客户端的消息将能够解析为驻留在london
和paris
上的集群队列。