activemq 停止后,再重启,jms插件连不上

发布于 2021-11-25 14:22:36 字数 864 浏览 979 评论 4

@绝望的八皮 你好,想跟你请教个问题:

jms插件连不上,没有断线重连机制吗?

2015-03-31 10:11:07 ERROR QueueProducer:115 - send error
javax.jms.IllegalStateException: The Session is closed
    at org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:731)
    at org.apache.activemq.ActiveMQSession.configureMessage(ActiveMQSession.java:719)
    at org.apache.activemq.ActiveMQSession.createObjectMessage(ActiveMQSession.java:380)
    at com.jfinal.ext.plugin.jms.QueueProducer.sendMessage(QueueProducer.java:111)
    at com.jfinal.ext.plugin.jms.JmsSender.queueSend(JmsSender.java:36)
    at com.jfinal.ext.plugin.jms.JmsKit.sendQueue(JmsKit.java:28)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一个人的旅程 2021-12-01 01:06:14

有自动重连机制的

failover:(tcp://172.16.10.1:61616)

墨洒年华 2021-12-01 00:38:58

connection=connectionFactory.createQueueConnection(username, password); connection.setExceptionListener( 创建连接时设置异常监听器,出现exception,重连

本王不退位尔等都是臣 2021-11-30 01:43:14

不知道这位仁兄是否研究出来了自动重连,我现在也遇到这个问题了

拍不死你 2021-11-28 08:23:06

有重连机制

public boolean sendMessage(Serializable object, int msgType) { try { if (session == null) { if (!reConnect()) { return false;
            }
        } logger.debug("send message, msg_type:" + msgType);
        ObjectMessage om = session.createObjectMessage(object);
        om.setIntProperty(JMSConstants.JMS_MESSAGE_TYPE, msgType); producer.send(destination, om);
    } catch (JMSException e) { logger.error("send error", e); return false;
    } return true;
}

仔细看了下。应该是sesson对象存在但是被close。这个工具也是有些历史了。。当时对activeMq理解也不是太深。做了一个项目后又再也没用过。查了些资料貌似不推荐sesson为长期对象,建议send一个message就close..

如果按照现在的逻辑可以改为抓住session close的异常然后调用reConnect的代码。

如果谁对activeMq经验丰富一点,请提出改进意见建议

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文