2015-06-25 30 views
2

我們是否已將IBM.XMS中的功能設置爲Re-connection Attempt Count,Re-connection Attempt Delay,Re-connection Attempt Timeout設置,就像我們在Tibco中一樣?IBM.XMS中的重新連接設置

我打算在.NET應用程序中使用IBM.XMS來向/從IBM MQ發送/接收消息。如果出於某種原因IBM MQ停機,我相信這些設置將允許.NET應用程序嘗試重新連接,從而避免應用程序出現任何故障。

UPDATE

我得到了一些信息,在http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xms_automatic_client_reconnection.htm。使用此我使用以下內容:

oConFactory.SetIntProperty(XMSC.WMQ_CLIENT_RECONNECT_OPTIONS, XMSC.WMQ_CLIENT_RECONNECT_Q_MGR); 
oConFactory.SetStringProperty(XMSC.WMQ_CONNECTION_NAME_LIST, String.Format("{0}({1})", con.Host, con.Port)); 
oConFactory.SetIntProperty(XMSC.WMQ_CLIENT_RECONNECT_TIMEOUT, ((con.ReconnectTimeout.HasValue && con.ReconnectTimeout.Value != 0) ? con.ReconnectTimeout.Value : XMSC.WMQ_CLIENT_RECONNECT_TIMEOUT_DEFAULT)); 

但是,這是行不通的。代碼打破了我停止隊列管理器的那一刻。有什麼建議麼 ?

+0

根據Shashi的回答,你如何阻止QMgr?你是否嘗試用'STATE(INACTIVE)'停止通道(假設它是客戶端)而不是停止QMgr? –

回答

2

是的!儘管如此,請使用現代版本的MQ客戶端和QMgr。功能和穩定性大大提高,包括使用客戶端重新連接功能的能力。請參閱:

Automatic client reconnection in .NET

相關的重要議題包括:

上述鏈接來自v7.5文檔。如果您需要v8.0文檔(強烈建議您使用本文撰寫時的最新v8.0 QMgr和客戶端),請轉至here

如果您需要QMgr在您的個人工作站上進行測試,那麼IBM已發佈了一個名爲WebSphere MQ Advanced for Developers的全功能非過期產品。

隨客戶端庫一起提供,但如果您只需要客戶端庫,那麼只需下載獨立客戶端即可。轉到SupportPacs landing page並查找名稱,如MC [vr]。之後的命名應該很直觀。 SupportPac MQC8是V8.0客戶端,MQC75是v7.5客戶端等

如果您需要WMQ資源管理器下載,請將其選爲SupportPac MS0T。在這種情況下,我強烈建議同時獲取MS0P並將其解壓縮到Explorer Dropins文件夾。

+0

感謝Rob,您提供的鏈接與IBM MQ .NET for .NET相關。我正在使用IBM.XMS(用於.NET的消息服務客戶端)。我們如何在IBM.XMS中完成同樣的任務?我在http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xms_automatic_client_reconnection.htm獲得了一些信息,但它不起作用。有沒有一些有關使用IBM.XMS重新連接的工作示例? – Brij

+0

「它不工作」是什麼意思?這種情況下的「它」是什麼?鏈接的頁面表示可以在程序中,託管對象,CCDT和client.ini文件中進行重新連接設置,如果設置了這些設置的倍數,則會有優先順序。說它不工作需要知道每個地方的設置。 (我來自密蘇里州 - 在我相信你之前,你必須*告訴我*它在或不在給定的位置),所以我總是希望看到它們。) –

+0

Rob,我指的是稍後在我的問題中添加的代碼片段。當我從MQ Explorer停止隊列管理器時,它不工作。我遵循了Shashi的建議,它正在工作。但我也需要它來工作(請參閱我對Shashi的帖子的評論)。有沒有辦法? – Brij

2

你沒有提到你如何停止你的隊列管理器。如果您使用endmqm <qm>命令停止隊列管理器,則不會發生重新連接。您需要使用endmqm -r <qm>停止隊列管理器。 -r選項通知客戶端應用程序重新連接。如果您使用MQ Explorer,則在停止隊列管理器時選擇Stop Queue Manager面板上的"Instruct reconnectable clients to reconnect"選項。

+0

我正在使用MQ Explorer。我會嘗試你的建議。當網絡故障時,或者由於某種原因MQ服務正在重新啓動,這是否會相同? – Brij

+0

Shashi,我嘗試了你的建議(選擇「指示可重新連接的客戶端重新連接」),它工作。但是當我從服務中重新啓動MQ服務時,應用程序立即崩潰。 – Brij

+0

你是什麼意思的崩潰? – Shashi