我正在看一个侦听Tibco队列的Java应用程序。该应用程序已有4年没有被使用过,但是我在客户端日志中看到一个间歇性问题,该问题导致连接终止。我是Tibco和JMS的新手。
有人可以阐明它吗?以下是我在日志中看到的异常消息:
javax.jms.JMSException: Connection has been terminated
at com.tibco.tibjms.TibjmsSession._getSyncMessage(TibjmsSession.java:1845)
at com.tibco.tibjms.TibjmsSession._receive(TibjmsSession.java:1735)
at com.tibco.tibjms.TibjmsMessageConsumer._receive(TibjmsMessageConsumer.java:209)
at com.tibco.tibjms.TibjmsMessageConsumer.receive(TibjmsMessageConsumer.java:355)
答案 0 :(得分:0)
我熟悉JMS,但不熟悉Tibco。堆栈跟踪指示客户端调用javax.jms.MessageConsumer.receive()
时发生问题。该调用进入Tibco JMS客户端实现中,该实现产生Connection has been terminated
消息。 JMS规范没有定义伴随JMS异常的错误消息,因此该消息专门来自Tibco实现。我的猜测是出现网络错误或连接超时。
我建议您检查Tibco EMS服务器日志以查看是否记录了相应的错误,并直接与Tibco进行跟进,以查看可能导致此特定消息的情况。 Tibco EMS不是像ActiveMQ这样的开放源代码,因此像我这样的人不可能深入研究代码并弄清楚到底发生了什么。