MQ客戶端是否可以在客戶端配置中定義多個MQ服務器主機?我一直無法找到任何關於它的事情。我想讓多個MQ服務器具有相同的隊列,如果其中一個不可用,請讓客戶端嘗試連接到另一個服務器。我希望,像一些數據庫實例,你可以定義多個主機,客戶端驅動程序將路由到一個可用。在MQ客戶端配置中定義多個MQ服務器主機
我知道我們可以添加連接到不同服務器的連接錯誤的邏輯,但如果可能的話,希望使用驅動程序來執行此操作。
使用.NET 4.0 WCF /的WebSphere MQ 7.1
任何信息/意見將不勝感激。
MQ客戶端是否可以在客戶端配置中定義多個MQ服務器主機?我一直無法找到任何關於它的事情。我想讓多個MQ服務器具有相同的隊列,如果其中一個不可用,請讓客戶端嘗試連接到另一個服務器。我希望,像一些數據庫實例,你可以定義多個主機,客戶端驅動程序將路由到一個可用。在MQ客戶端配置中定義多個MQ服務器主機
我知道我們可以添加連接到不同服務器的連接錯誤的邏輯,但如果可能的話,希望使用驅動程序來執行此操作。
使用.NET 4.0 WCF /的WebSphere MQ 7.1
任何信息/意見將不勝感激。
Shashi是WMQ .Net的主人,所以我會根據.Net的具體答案在評論中推薦他的鏈接。
架構的答案是,你可能會使這個過於複雜。如果有問題的隊列被通告給羣集,並且應用程序正在向其發送消息,那麼應用程序只需連接到羣集中的任何QMgr並放入該隊列。它可以動態地創建回覆隊列並使用該句柄來指定請求消息的回覆地址。理想情況下,服務請求者應用程序是專門針對目標隊列的網絡跳轉,以便他們可以利用WMQ集羣實現您描述的目的。
有一個稍微不太理想的情況,其中客戶端連接到託管目標隊列實例的QMgr實例之一。可以配置隊列的CLWLUSEQ
屬性,以便在本地和遠程隊列實例之間分發消息。
在應用程序發送請求消息的任何場景中,可以提供一個CONNAME
,其中包含一個可連接的合格QMgrs的逗號分隔列表。現代版本的WMQ允許您使用MQCONNX
API在CONNAME
中指定多個連接點。當前和較早的客戶端都可以使用包含多個連接定義的CCDT
文件,並允許客戶端在它們之間進行切換。
如果應用程序是在請求的隊列上監聽,這是一個不同的故事。如果該應用程序是事務性的,則不能將其配置爲故障轉移到另一個QMgr。這是因爲只能在同一個QMgr實例上解析XA事務。但是即使不考慮事務問題,通常也不希望應用程序偵聽請求以進行故障轉移。這樣做會使隊列的本地實例無法提供,並且消息會堆積在那裏。更好的答案是運行服務器端應用程序的多個實例,以便每個隊列實例至少有兩個應用程序實例提供服務。這樣,您可以停止其中一個應用程序實例的運行,而不需要有一個未提供服務的隊列。同樣,如果QMgr發生故障,則消息會自動路由到羣集中由其他應用程序實例提供服務的其餘隊列實例。
還有其他一些體系結構原因適用於請求/回覆場景以及導致集羣解決方案的原因。其他注意事項適用於不同類型的消息傳遞,但通常情況下,答案是肯定的,可以通過多種方式將客戶端配置爲故障轉移到另一個隊列管理器。所有這些都基於QMgr變得不可用,而不是隊列本身。如果您試圖捕獲的事件是隊列填充或某人PUT(DISABLE),那麼最好的答案是儀器和監控,第二個最好的答案是應用程序邏輯。
我認爲這個鏈接將幫助你:http://www-01.ibm。COM /支持/ docview.wss?UID = swg27020862 – Shashi