【问题标题】:Spring JMS CachingConnectionFactory doesn't seem to reconnect on exceptionSpring JMS CachingConnectionFactory 似乎没有在异常时重新连接
【发布时间】:2014-10-12 19:31:09
【问题描述】:

发生此异常时未重新连接 JMS 连接:

2014-08-16 10:51:36,724 WARN  [TIBCO EMS TCPLink Reader (Server-12486338)] connection.CachingConnectionFactory - Encountered a JMSException -    resetting the underlying JMS Connection
javax.jms.JMSException: Connection has been terminated
    at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:502)
    at com.tibco.tibjms.TibjmsConnection._onDisconnected(TibjmsConnection.java:2286)
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventDisconnected(TibjmsConnection.java:341)
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:320)
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:247)
2014-08-16 10:51:40,286 WARN  [TIBCO EMS TCPLink Reader (Server-12494013)] connection.CachingConnectionFactory - Encountered a JMSException - resetting the underlying JMS Connection
javax.jms.JMSException: Connection has been terminated
    at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:502)
    at com.tibco.tibjms.TibjmsConnection._onDisconnected(TibjmsConnection.java:2286)
    at com.tibco.tibjms.TibjmsConnection$ServerLinkEventHandler.onEventDisconnected(TibjmsConnection.java:341)
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:320)
    at com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.run(TibjmsxLinkTcp.java:247)

完全相同的错误发生在几秒钟后,我想知道 Spring 是否尝试重新连接并在两次尝试后放弃。

我检查了 Spring 源代码,并没有在 CachingConnectionFactory 或其父类 SingleConnectionFactory 的 onException() 方法中找到重新连接逻辑。我们使用的是 spring-jms 3.1.2,但我也查看了最新的 Spring 源代码。

感谢您的帮助。

【问题讨论】:

  • 我只在您的堆栈跟踪中看到 tibco 类。如果您没有使用JmsTemplate 或诸如DefaultMessageListenerContainer 之类的侦听器容器,那么您看错了地方。可能显示一些配置?
  • 我也在想同样的事情。这是配置:
  • 刚刚发现我们正在直接使用 Tibco 连接工厂。感谢您的提示。
  • 你是如何解决这个问题的?我在 tibco javax.jms.JMSException: Connection has been terminated 上看到了同样的错误
  • 这也可能是 TIbco EMS 方面的问题techieswiki.com/…

标签: spring exception jms reconnect


【解决方案1】:

我遇到了类似的问题,即一旦发生异常(当 TIBCO 主服务器停止并切换到辅助 TIBCO 服务器时),DefaultMessageListenerContainer 无法重新连接。

我使用的是 SingleConnectionFactory,它导致了这个问题。

使用 java:comp/env/jms/TIBCOConnectionFactory 直接从 Websphere 获取 connectionFactory 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2015-05-24
    • 2017-03-29
    • 2019-03-03
    • 1970-01-01
    相关资源
    最近更新 更多