【问题标题】:JMS and ActiveMQ, how to receive notification on disconnect?JMS 和 ActiveMQ,如何在断开连接时接收通知?
【发布时间】:2011-07-05 20:58:29
【问题描述】:

我正在使用 JMS 与 ActiveMQ 通信。我不得不为 ActiveMQ 禁用故障转移,因为我需要自己处理。

所以我没有使用:故障转移//tcp//localhost:61616,而是使用:tcp//localhost:61616。

如果我关闭 ActiveMQ 服务器并尝试发送消息,我将收到异常。 javax.jms.IllegalStateException:会话已关闭

但是当与服务器的连接尽快丢失时如何通知我?

原因,我没有使用 ActiveMQ 的故障转移是因为在生产中它应该是 MQSeries。

谢谢

【问题讨论】:

    标签: jms activemq failover


    【解决方案1】:

    我不确定,但TransportListener 可以帮助你。

    这是一个使用它的示例,

    connection = new ActiveMQConnectionFactory(brokerUrl).createConnection();
    ActiveMQConnection cc = (ActiveMQConnection)connection;
    cc.addTransportListener(new YourTransportListener());  
    

    希望对您有所帮助。

    【讨论】:

    • 感谢您的回答。我不能使用它,因为它不是普通的 JMS。我发现我可以添加 connection.setExceptionListener(new ExceptionListener() { @Override public void onException(JMSException e) { // TODO 自动生成的方法存根 System.out.println(e); } });对于 JMSConnection。当我的客户尝试推送某些东西时,我会收到通知:javax.jms.JMSException: java.io.EOFException 但我想我无法得到更有意义的东西。
    • 看起来当我在 ExceptionListener 中收到异常时可以重新连接。我会同意的。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2022-01-09
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    相关资源
    最近更新 更多