У меня были требования, чтобы я был уведомлен, если JBoss не работает.Я использовал функциональность JMS раньше для этого.Следующий фрагмент кода работает для JBoss AS 6. Я смог получить уведомление, если сервер не работает.Затем я делал свою логику, чтобы восстановить соединение с клиентскими машинами.Но теперь это не работает для JBoss EAP 6.4.На самом деле это работает, если JBoss не работает во время установления соединения.Но этот обратный вызов исключения не вызывается, если уже установлено исключение.
private final void intitializeJmsTopic(final String userName, final String password) {
try {
topicConnection = (TopicConnection) connFactory.createConnection();
topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
topicSubscriber = topicSession.createSubscriber(topic, getMessageSelector(), true);
topicSubscriber.setMessageListener(this);
topicConnection.setExceptionListener(new ExceptionListener() {
@Override
public void onException(JMSException jmse) {
disconnect();
onJMSDisconnect();
}
});
topicConnection.start();
} catch (InvalidDestinationException destEx) {
throw new CommunicationException(CommunicationExceptionType.DESTINATION_NOT_AVAILABLE, destEx);
} catch (InvalidSelectorException selEx) {
throw new CommunicationException(CommunicationExceptionType.SELECTOR_NOT_VALID, selEx);
} catch (Exception ex) {
throw new CommunicationException(ex);
}
}