这类似于How to find out if JMS Connection is there?
在JMS
中,很容易发现连接是否丢失,异常监听器发生异常。但是如何确定连接是否健康?
场景:我使用JMS
与我的服务器通信,我想监视连接的健康状况。我为此定期工作。
JMS是否有办法检查连接是否健康?
EG。
之类的东西 connection.isConnected()
答案 0 :(得分:0)
您可以尝试使用TransportListener(http://activemq.apache.org/maven/apidocs/org/apache/activemq/transport/TransportListener.html)。
您还可以在ActiveMQConnection类上使用一些方法:isClosed()
,isClosing()
,isStarted()
,...
顺便说一句,检查连接状态是jms客户端的工作,而不是应用程序的工作。如果这是出于监控目的,您应该使用JMX甚至是咨询消息。
答案 1 :(得分:0)
因为与JMS提供程序的连接可能会在任何时候中断,例如,当应用程序进行发送或接收调用时。因此,无法保证isConnected()类型的调用将连接可用性。相反,我会选择自己进行API调用并处理抛出的任何异常。如果它是连接中断的异常,则重新连接或使用MQ JMS客户端自身提供的自动重新连接选项。