如何检查JMS连接健康状况

时间:2016-03-18 10:30:50

标签: java jms

这类似于How to find out if JMS Connection is there?

JMS中,很容易发现连接是否丢失,异常监听器发生异常。但是如何确定连接是否健康?

场景:我使用JMS与我的服务器通信,我想监视连接的健康状况。我为此定期工作。

JMS是否有办法检查连接是否健康?

EG。

之类的东西

connection.isConnected()

2 个答案:

答案 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客户端自身提供的自动重新连接选项。