2010-07-26 105 views
3

我目前在C#中工作,我需要檢查我所做的JMS連接的狀態(無論它是連接還是斷開連接)。我敢肯定,我可以連接和斷開成功......只是我需要顯示在我的用戶界面的連接狀態。IBM JMS連接

是否有JMS連接的任何屬性指出連接狀態?或者有沒有其他方法可以用來檢查連接狀態?

感謝您的幫助。 :)


目前,我使用ExceptionListener來偵聽任何異常,並且在發現任何異常時將標誌設置爲false。當我連接時,當我斷開連接時,我會將該標誌設置爲真,我會將該標誌設置爲假。

此標誌將被我的用戶界面用於檢測連接是否啓動。

但是我在想,如果可以用來顯示連接狀態的IBM連接的任何屬性/方法都是更好的解決方案。對於SonicMQ,theres .getConnectedState()會顯示連接是處於活動狀態還是非活動狀態。 我想知道IBM是否有類似於SonicMQ的東西?

+0

WMQ JMS實現符合JMS 1.1,並且據我所知,它不包含任何特定於提供者的方法,例如getConnectionState()。 – 2010-07-27 17:46:34

+0

oic。那麼我想我必須使用異常偵聽器來檢查任何斷開連接.. THANKS :) – iEmo 2010-07-28 02:51:39

回答

1

您可以使用Connection.setExceptionListener()方法異步通知連接中檢測到的異常。如果檢測到問題,則調用onException()方法。

務必在工廠和目的地上設置FAILIFQUIESCE屬性,以便在管理員關閉QMgr時按順序通知和關閉連接。

在WMQ的第7版中,可以在傳輸中啓用會話重新連接。在這種情況下,應用程序可能不知道連接已中斷,但可以將其視爲已連續連接。

請注意,絕大多數情況下,異常是由應用程序的API調用驅動的。因此,如果連接丟失,您可能不會實時瞭解該連接,而是查明何時進行API調用。如果應用程序長時間處於空閒狀態,並且需要實時顯示連接狀態。請參閱「How to find out if JMS Connection is there?」瞭解更多關於該主題的內容。

WMQ v7有自動重新連接客戶端的選項。您必須在客戶端和服務器上都使用v7才能正常工作。自2011年9月起v6報廢,最好在v7上開發此應用程序。您可以下載v7客戶端爲SupportPac MQC7。當啓用JMS client reconnect時,應用程序可能不知道連接活動,除非在重建連接時響應API調用的延遲。該延遲的長度取決於管理員和連接工廠設置的頻道調諧。