2011-12-09 79 views

回答

6

取決於'ping'的含義。你想檢查運行WMQ過程嗎?爲了本地連接到QMgr?遠程連接?是否有特定的頻道或隊列?

本地你可以使用dspmq它會顯示所有本地定義的QMgrs及其狀態。遠程地,你可以ping監聽器,但是如果你沒有完成連接,它會導致WMQ記錄一個錯誤並剪切一個跟蹤。遠程地,最好使用WMQ客戶端進行連接。如果連接成功,則QMgr啓動。如果出現錯誤,那麼錯誤代碼(或JMS中的鏈接異常)會告訴您連接請求已到達WMQ堆棧的多遠 - 即聽者是否關閉,或者是否已關閉,以及是否存在問題QMGR,或者如果你沒有權限等

有附帶MQ如amqsgetamsqput,他們的基於客戶端的等效amqsgetcamqsputc,其連接並獲取或發佈消息的示例程序。這些可以在腳本中用於檢查MQ狀態。此外,還有一個教程here,它提供了一個獨立的JMS程序,可以連接您可以自定義爲ping應用程序的程序。

該命令你嘗試過的格式是:

echo dis qmgr qmname | runmqsc QMGRNAME 

這反映出一個命令來顯示QMGR的屬性爲runmqsc並執行它。包含所有runmqsc v7.0命令的手冊是here。 v7.1手冊is here

最後,雖然我不認爲這是你正在尋找的,WMQ有一個ping命令。它在一個隊列管理器上用於測試到另一個隊列管理器的通道連接。 WMQ ping會執行通道路徑並驗證事件,如遠程監聽器已啓動,遠程隊列管理器已定義兼容的通道實例等。但是,對於MQ管理員而言,這比開發人員更想知道隊列管理器已啓動。爲此,你需要上述建議中的一個版本。

+0

我只需要檢查隊列是否可用於通信。有沒有我可以使用的控制檯命令? – OBL

+0

爲了檢查隊列,您必須連接到隊列管理器並嘗試打開隊列。 'amqsput/amqsget'命令可以做到這一點。沒有控制檯命令返回隊列的狀態,但是'dspmq'返回隊列管理器的狀態。 –

相關問題