如果一个节点发生故障,JBoss EAP 6.4 JMS setExceptionListener不起作用

时间:2019-09-19 10:38:32

标签: java jms jboss7.x

如果JBoss宕机,我有要求得到通知的要求。我以前在使用JMS功能。以下代码段适用于JBoss AS6。如果服务器关闭,我可以得到通知。然后,我正在按照自己的逻辑从客户端计算机重新连接。但是现在它不适用于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);
    }
}

0 个答案:

没有答案