2017-08-14 63 views
1

我们正在寻找使用MQ集群来更好地分布两个不同站点的工作负载。我们的一项要求是将地理位置保持在本地,以避免不必要地在站点之间传递消息(除非没有本地MQ管理器可用)。为了达到这个目的,我们目前正在寻找使用队列别名,如在这个presentation的智能路由部分中所示。Websphere MQ集群 - 保持流量的地理位置本地化

为了测试,我们已经建立了使用三个MQ管理器(MQ版本9)队列迷你集群就像在演示文稿的幻灯片,当所有的经理和队列可用,我们可以看到在同一区域内的邮件路由如预期的那样,但是,如果我们例如在纽约的NYQ别名队列上应用put抑制,我们看不到任何新消息路由到伦敦的替代NYQ别名队列。相反,试图将消息写入AppQ别名队列的客户端应用程序获得MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2268' ('MQRC_CLUSTER_PUT_INHIBITED').。另外,如果我们完全结束了NEWYORK,客户端应用程序能够向AppQ别名队列写入消息,但是这些消息只是在AppQ管理器的SYSTEM.CLUSTER.TRANSMIT.QUEUE中排队,而不是路由到LONDON MQ Manager的替代NYQ别名队列。为什么会这样呢?

回答

1

在上述测试场景中,通过将群集队列的默认绑定类型更改为“不固定”(例如ALT QL(QUEUE_NAME) DEFBIND(NOTFIXED)),我们设法将消息路由到优先级较低的MQ Manager(即LONDON)。