Подсчет элементов каждого уровня приоритета в очереди IBM MQ Series

У меня есть очередь IBM WebSphere MQ (работающая в Windows), содержащая множество элементов с разным приоритетом.

В настоящее время я получаю общий подсчет глубины, используя mqQueue.CurrentDepth, но я хотел бы получить подсчет количества элементов каждого уровня приоритета в очереди.

Есть идеи, как этого добиться?


person theaxe    schedule 07.10.2008    source источник


Ответы (1)


Вы можете использовать JMS QueueBrowser для просмотра сообщений в очереди и создания итогов для каждого уровня приоритета.

QueueBrowser browser = session.createBrowser(someQueue);
for (Enumeration iter = browser.getEnumeration(); iter.hasMoreElements()) {
  Message message = (Message) iter.nextElement();
  int priority = message.getJMSPriority();
  // update counters...
}
person James Strachan    schedule 07.10.2008
comment
Имея в виду, что достигнутые цифры являются лишь приблизительными. За время, необходимое для подсчета сообщений, содержимое очереди могло значительно измениться. количество сообщений с более высоким приоритетом будет иметь тенденцию к большей частоте ошибок, чем количество сообщений с более низким приоритетом. Скорость постановки/удаления из очереди также будет влиять на надежность подсчета, так как частота ошибок увеличивается с ростом активности. Таким образом, этот код выполняет свою работу, но основное требование на первый взгляд сомнительно. - person T.Rob; 27.04.2010