Относительно MQIA_MSG_DEQ_COUNT
, вы должны знать, что команда RESET_QUEUE_STATISTICS
, которая возвращает этот атрибут, это то, что я люблю называть «свойством квантовой физики WMQ», потому что процесс наблюдения значения сбрасывает значение. Это хорошо, если вы единственный, кто запрашивает значение, и у вас есть только один поток запросов. Но если у вас есть несколько запросов одновременно, все они сбрасывают счетчик на ноль при каждом запросе, каждый наступая на номера другого. Этот аспект делает RESET_QUEUE_STATISTICS
ограниченным для отладки в реальном времени и не подходит для надежного сбора статистики.
Альтернативой является использование функции учета и статистики MQ. Чтобы заставить QMgr выдавать сообщения учета и статистики, необходимо включить их либо в QMgr, либо для каждой очереди. Инструкции по их включению содержатся в разделе руководства Информация статистики очереди .
Обратите внимание, что статистика передается в очередь событий и должна быть выбрана и проанализирована. Ссылка на документацию по разбору сообщений о событиях находится в разделе данных сообщений статистики очереди *1015*. Существует пример программы в исходном формате с именем 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 .