2017-08-14 82 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)。