【问题标题】:How to check JMS connection health如何检查 JMS 连接运行状况
【发布时间】:2016-07-05 01:38:50
【问题描述】:

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

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

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

JMS 是否有办法检查连接是否正常?

例如。像

connection.isConnected()

【问题讨论】:

    标签: java jms


    【解决方案1】:

    您可以尝试使用 TransportListener (http://activemq.apache.org/maven/apidocs/org/apache/activemq/transport/TransportListener.html)。

    您还可以在 ActiveMQConnection 类上使用一些方法:isClosed()isClosing()isStarted()、...

    顺便说一句,检查连接状态是 jms 客户端的工作,而不是应用程序的工作。如果这是出于监控目的,您应该使用 JMX 甚至建议消息。

    【讨论】:

    • 我正在寻找更通用的标准 JMS 信息,而不是专门针对 ActiveMQ。我也知道这是 JMS 客户端的工作,这就是为什么我想知道 JMS 中是否有任何 API?
    • 我认为这在标准 JMS 中是不可能的,因为这是客户端的工作,所以 API 将这项工作委托给客户端。
    【解决方案2】:

    因为与 JMS 提供程序的连接可能会在任何时候中断,例如当应用程序进行发送或接收调用时。因此,不能保证 isConnected() 类型的调用将连接可用性。相反,我会选择自己调用 API 并处理抛出的任何异常。如果是连接断开异常,请重新连接或使用 MQ JMS 客户端本身提供的自动重新连接选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 2021-08-18
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      相关资源
      最近更新 更多