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