2011-03-28 186 views
4

我一直試圖從IBM WebSphere MQ中獲取一些性能統計信息,以便使用Spring Source的Hyperic HQ進行監控。IBM Websphere MQ Monitoring

我在消息入隊和出隊率以及隊列深度的幾個本地隊列之後,以確保消息被傳遞給我們的本地應用程序並被其使用。

最初嘗試使用WMI和Windows性能計數器檢索數據,但是似乎在我們的一臺服務器上,計數器不適用於任何本地隊列(只是一個臨時隊列的負載),另一方面計數器可用,但不總是通過WMI正確返回值。

我試過PCF(使用MQIA_MSG_DEQ_COUNT),它不會提供請求的計數器。 MQSC(使用DISPLAY QUEUE & DISPLAY QSTATUS),它似乎不支持排隊率 - 只提供最後的消息獲取/放入日期和時間。

任何人都知道如何讓WMI和性能計數器正常工作或WMI的替代方案能提供我需要的統計數據?

回答

4

關於MQIA_MSG_DEQ_COUNT,您應該意識到返回此屬性的RESET_QUEUE_STATISTICS命令是我喜歡稱之爲「WMQ的量子物理屬性」的原因,因爲觀察值的行爲會重置該值。如果你是唯一一個詢問價值的人,並且你只有一個詢問線索,這很好。但是,如果您一次有多個查詢,他們都會在每次查詢時將計數器重置爲零,每次查詢都會跳到另一個數字上。這方面使得RESET_QUEUE_STATISTICS有限的用於實時調試,不適合可靠的統計數據收集。

另一種方法是使用MQ的會計和統計工具。爲了讓QMgr產生會計和統計消息,有必要在QMgr或每個隊列的基礎上啓用它們。有關如何啓用它們的說明,請參見手冊部分Queue statistics information

請注意,統計信息會報告給事件隊列並且必須被提取和解析。有關解析事件消息的文檔參考資料位於Queue statistics message data部分。源格式的示例程序名爲amqsmon,它顯示瞭如何獲取和格式化統計消息。編譯後的版本也提供了這些消息的可讀的列表。

一旦您對感興趣的隊列啓用統計並有解析消息的方法,只需將您的解析器指向適當的事件隊列並收集統計信息即可。 amqsmon的輸出表示的可用統計數據的一個例子如下:

RecordType: QueueStatistics 
    QueueManager: 'saturn.queue.manager' 
    IntervalStartDate: '2005-04-30' 
    IntervalStartTime: '15.09.02' 
    IntervalEndDate: '2005-04-30' 
    IntervalEndTime: '15.39.02' 
    CommandLevel: 600 
    ObjectCount: 3 
    QueueStatistics: 
    QueueName: 'LOCALQ' 
    CreateDate: '2005-03-08' 
    CreateTime: '17.07.02' 
    QueueType: Predefined 
    QueueDefinitionType: Local 
    QMinDepth: 0 
    QMaxDepth: 18 
    AverageQueueTime: [29827281, 0] 
    PutCount: [26, 0] 
    PutFailCount: 0 
    Put1Count: [0, 0] 
    Put1FailCount: 0 
    PutBytes: [88, 0] 
    GetCount: [18, 0] 
    GetBytes: [52, 0] 
    GetFailCount: 0 
    BrowseCount: [0, 0] 
    BrowseBytes: [0, 0] 
    BrowseFailCount: 1 
    NonQueuedMsgCount: 0 
    ExpiredMsgCount: 0 
    PurgedMsgCount: 0 

這個和其它實施例中提供的手冊中在題爲,適當地足夠部分,amqsmon examples

+0

謝謝rob,是我考慮的替代方案之一。我最終使用了一個支持包(MS0B),它提供了一套用於Java的PCF類,我已經集成到一個hyperic插件中。然後打開隊列監控所需的隊列即時請求最後一條消息得到時間來檢查消息正在交付,並從隊列中拉出,這是我現在真正感興趣的。我不確定啓用隊列統計信息會導致哪種性能開銷。感謝有關重置隊列統計信息+ hehe「WMQ的量子物理性質」。菲爾 – 2011-03-31 10:36:28

+0

消息到期是消息的「Schroedinger's Cat」屬性 - 它可以以兩種狀態存在,直到您獲取它。 – 2011-03-31 11:45:13