JMS Подсчет количества ожидающих сообщений в тематическом домене

Прежде всего извините за созданную новую тему. Я сделал это, потому что, к сожалению, другие были мне не очень понятны.

Проблема.
Я хотел бы знать, можно ли подсчитать количество ожидающих сообщений в подразделе/пабе темы. Я использую tomcat и activemq в тестовой среде, но я собираюсь использовать Tibco в реальной среде. Есть ли простой и универсальный способ сделать это.

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


person user3328505    schedule 19.02.2014    source источник
comment
Тематические сообщения, как правило, не «ставятся в очередь», поэтому нет такого понятия, как подсчет. При отправке в тему сообщения потребляются всеми доступными подписчиками, брокеры не сохраняют сообщения для подписчиков, если они не являются устойчивыми.   -  person raffian    schedule 20.02.2014


Ответы (3)


Для вашей среды разработки, если вы используете ActiveMQ и хотите увидеть количество ожидающих сообщений в теме/очереди, вы можете использовать поддержку JMX ActiveMQ для мониторинга темы/очереди JMS. Хорошее введение в использование JMX для ActiveMQ дано в этой статье. Обратите внимание, что если у вас есть экземпляр QueueViewMBean количество сообщений, которые еще предстоит отправить, можно узнать, позвонив по адресу getQueueSize. Что касается брокера Tibco, я не знаю, предоставляют ли они такие же функции, как ActiveMQ. Я думаю, это зависит от разных реализаций брокера JMS.

person tonga    schedule 19.02.2014
comment
Существует подкласс DestinationViewMBean: TopicViewMBean. Этот класс наследует тот же метод getQueueSize от своего базового класса. - person tonga; 19.02.2014

Знакомы ли вы с инструментом TIBCO GEMS (графический администратор EMS)? Его можно бесплатно загрузить с веб-сайта tibcommunity.

GEMS может отображать ожидающие сообщения для постоянного подписчика в теме TIBCO EMS.

person Seb    schedule 20.02.2014
comment
Нет, я не знаком с TIBCO GMS, и мне нужно создать собственное Java-приложение, чтобы получить информацию о Tibco (ems). У меня получилось с JMX и Activemq, но я не знаю, можно ли сделать то же самое с темой tibco ems. Спасибо. - person user3328505; 27.02.2014
comment
Привет, конечно, вы можете сделать. На самом деле GEMS построен с помощью EMS Admin API. Ознакомьтесь с документацией (она содержит javadocs) по адресу: docs.tibco.com/products. /tibco-enterprise-message-service. Если вы не можете получить к нему доступ (некоторые документы ограничены), попробуйте загрузить пробную версию EMS, которая поставляется с полной документацией: tap.tibco.com/storefront/index.ep - person Seb; 28.02.2014

Решено

Прежде всего, спасибо всем, кто мне помог. Я закончил эту задачу пару недель назад, но, к сожалению, не смог поделиться с вами тем, что я сделал для ее решения. Концепция JMS была мне не очень ясна, и, с моей точки зрения, она была ключевой для решения проблемы.

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

JAR-файлы Tibco
Tibco предоставляет jar-файл tibjmsadmin, в котором вы можете найти всю информацию, например статистику, относящуюся к теме или очереди.

Решение
В качестве решения в мой проект был внедрен tibjmsadmin, поэтому доступ к информации топика осуществляется через его классы.

tibjmsadmin: https://docs.tibco.com/pub/enterprise_message_service/6.3.0-february-2012/doc/html/tib_ems_api_reference/api/javadoc/com/tibco/tibjms/admin/package-summary.html

спецификация оракула: http://www.oracle.com/technetwork/java/docs-136352.html

person user3328505    schedule 24.03.2014