2016-03-18 5 views
1

Это похоже на How to find out if JMS Connection is there?Как проверить здоровье подключения JMS

В JMS легко узнать, если соединение потеряно, исключение происходит с исключения слушателя. Но как узнать, здорово ли соединение?

Сценарий: я использую JMS для связи с моим сервером, и я хочу контролировать работоспособность моего соединения. Для этого я выполняю периодическую работу.

Имеет ли JMS возможность проверить, является ли соединение здоровым?

Например. что-то вроде

connection.isConnected()

ответ

0

Вы можете попробовать использовать TransportListener (http://activemq.apache.org/maven/apidocs/org/apache/activemq/transport/TransportListener.html).

Существуют также некоторые методы, которые вы могли бы использовать в классе ActiveMQConnection: isClosed(), isClosing(), isStarted() ...

Btw, проверка состояния соединения является работой клиента JMS, а не работа приложения. Если это предназначено для мониторинга, вам следует использовать JMX или даже консультативные сообщения.

+0

Я ищу более общую информацию для стандартного JMS, а не для ActiveMQ. Также я знаю, что это работа JMS-клиента, поэтому я хочу знать, есть ли в JMS API для этого? –

+0

Я не думаю, что это возможно в стандартной JMS, просто потому, что это работа клиента, поэтому API делегирует это задание клиенту. –

0

Поскольку подключение к JMS-провайдеру может прерываться в любое время, например, когда приложение отправляет или принимает вызов. Поэтому не гарантируется, что тип соединения isConnected() будет иметь доступность соединения. Вместо этого я бы выбрал сам вызов API и обработал любые изъятые исключения. Если это исключение соединения, то повторно подключите или используйте функцию автоматического повторного подключения, предоставленную самим клиентом MQ JMS.

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