2009-10-20 3 views
4

Как получить количество сообщений JMS, ожидающих, что их будет потреблять конкретный подписчик JMS-сообщений? Я использую модель темы (публикация/подписка), а не модель очереди.Как получить количество сообщений JMS в теме

Я хочу, чтобы мой MDB (ведомый сообщением bean) смог выяснить эту информацию о теме, которую он прослушивает. Быть ясным; Я хочу, чтобы мой MDB получил количество сообщений, ожидающих их потребления.

Я не могу найти любую информацию в Интернете либо на или в документации :(

я использую JBoss Messaging 1.4.4.

ответ

4

AFAIK, JMS ничего не указать, чтобы подсчитать число сообщений в пункт назначения.

вы должны использовать JMX для этого. Проверьте MBean attributes of the Topic MBean в документации и/или Java документации TopicMBean#getMessageCounters(). атрибут MessageCounterdepth должно быть то, что вы ищете. Но, если честно , Я не знаю, что ты собираешься делать o с этой информацией, и если это имеет смысл для темы. Сообщение будет оставаться в теме, если оно не было доставлено всем подписчикам, и каждый абонент обычно не знает своих сверстников. Итак, как бы один MDB интерпретировал количество сообщений?

Также обратите внимание, что я не смог найти этот MBean в JBoss Messaging 2.0.0.alpha1's javadoc. Я не знаю, было ли это устаревшим (в соответствии с кодом в 1.4, это не так) или если документация не обновлена ​​(в конце концов, это альфа-1 javadoc, и я не смог найти ссылку для бета4).

EDIT: Как указал скаффман, JBoss Messaging была переименована в HornetQ. Похоже, что в API были некоторые изменения, но концепции по-прежнему применяются. Документация: here.

+0

JBossMessaging 2 был ребрендирован как HornetQ, и в настоящее время он находится в бета-версии 5. – skaffman

+0

Правильно, я забыл об этом. –

+0

Спасибо за ваш ответ! Причина, по которой я хочу это значение, заключается в том, что я подключаю тему к системе, где я контролирую некоторые параметры. Один из них - «сколько сообщений осталось обрабатывать для каждого подписчика темы». Mayby есть лучший способ пойти? – 2009-10-22 12:20:40

0

Вы не можете, а не с помощью JMS API. Внутренний API JBossMessaging может раскрывать эту информацию, но вам нужно будет просмотреть эту документацию, чтобы найти ее.

 Смежные вопросы

  • Нет связанных вопросов^_^