Счетчик сообщений JMS - PullRequest
3 голосов
/ 05 апреля 2011

Я хотел бы отобразить статистику очереди JMS на странице, где я могу представить, сколько сообщений в очередях

Есть ли способ сделать это универсальным способом (без использования API конкретного провайдера) без перебора всех сообщений?

Я знаю, что могу достичь этого, используя QueueBrowser.getEnumeration (), однако обходить все сообщения слишком дорого только для простого подсчета.

Ответы [ 4 ]

4 голосов
/ 05 апреля 2011

Я не вижу ссылок на статистику в спецификации JMS 1.1 .

Мой опыт работы со статистикой заключается в том, что они доступны через специфичные для поставщика интерфейсы.

2 голосов
/ 05 апреля 2011

Я не верю, что это возможно так, как вы ищете.

Хотя ваш вопрос конкретно касается методов, не относящихся к провайдеру, я предложу следующее:

ActiveMQ можно отслеживать с помощью JMX , что позволяет запрашивать многие вещи, включая размер очереди. Вы всегда можете создать интерфейс, который затем можно будет расширять для каждого поставщика (и в качестве примера вы можете получить размер очереди из реализации поставщика ActiveMQ через JMX).

0 голосов
/ 29 января 2012

Это решение относится только к WebLogic и использует JMSDestinationRuntimeMBean, но каждый сервер приложений должен позволять вам делать что-то эквивалентное:

http://www.javamonamour.org/2012/01/counting-jms-messages-present-in-jms.html

0 голосов
/ 05 апреля 2011

QueueBrowser является единственным стандартным способом просмотра сообщений в очереди без их использования.

Извините за это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...