2

发生此异常时未重新连接 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 源代码。

谢谢你的帮助。

4

1 回答 1

2

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

我正在使用 SingleConnectionFactory,它导致了这个问题。

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

于 2015-07-30T22:54:17.653 回答