我们已经实现了一个JMSExceptionListener,它可以在任何连接上调用异常。在这个方法中,我们使用connection.close()关闭连接。当我们这样做时,我们得到以下异常
javax.jms.JMSException: MQJMS2003: failed to disconnect queue manager.
at com.ibm.msg.client.wmq.v6.jms.internal.ConfigEnvironment.newException(ConfigEnvironment.java:374)
at com.ibm.msg.client.wmq.v6.jms.internal.MQSession.close(MQSession.java:1328)
at com.ibm.msg.client.jms.internal.JmsSessionImpl.close(JmsSessionImpl.java:492)
at com.ibm.msg.client.jms.internal.JmsConnectionImpl.close(JmsConnectionImpl.java:294)
at com.ibm.mq.jms.MQConnection.close(MQConnection.java:98)
由于这个原因,连接处于挂起状态,即使我们进行了新连接,消息也会处于未注册状态。是否有更简洁的方法来关闭连接而不会出现此异常?
在这种情况下设置setClientReconnectOptions会有帮助吗?请指教。
有没有办法对连接对象进行健康检查?我如何知道连接对象是否陈旧?