【问题标题】:What data does InactivityMonitor of ActiveMQ see for checking connection availability?ActiveMQ 的 InactivityMonitor 看到哪些数据来检查连接可用性?
【发布时间】:2017-07-03 13:55:32
【问题描述】:

我昨天遇到了以下异常。

org.apache.activemq.transport.InactivityIOException: 通道是 太长(>30000)不活动:tcp://127.0.0.1......

在执行队列会话的提交方法时引发了异常。在activeMQ的官网上发现异常是什么时候抛出的。它说:

连接被监控:

  • 确保在指定时间段(最大不活动持续时间)内从连接中读取数据
  • KeepAliveInfo 消息 到 如果没有正常的 activemq 流量通过 在指定时间段内连接。

使用默认值;如果没有数据被写入或读取 连接 30 秒,InactivityMonitor 启动。 InactivityMonitor 抛出 InactivityIOException 并关闭 与连接关联的传输。

我想我明白它的意思。但是我不知道需要发送什么 data 才能不抛出 InactivityIOException 。我认为数据并不意味着正常的队列按摩。

数据究竟是什么?

另外,下面这些词是什么意思??

  • KeepAliveInfo 消息
  • 正常的activemq流量

提前致谢。

【问题讨论】:

    标签: java jms activemq


    【解决方案1】:

    线路上的数据是从客户端到代理来回传输的任何字节。不活动监视器跟踪自上次发送或接收某些字节以来已经过了多长时间,这可以是任何数据,因为它意味着连接未处于半关闭状态或远程挂起等。

    通常,发往或来自代理的常规消息流足以保持连接处于活动状态,但当事情变得安静时,不活动监视器开始向代理发送 KeepAliveInfo 数据包,并且代理将以实物响应,这充当PING 和 PONG 以确保套接字连接仍然有效。

    在您的情况下,客户端似乎无法从代理那里取回任何数据,它决定连接或代理一定有问题。您需要调查代理和客户端的日志,以尝试了解发生这种情况时发生的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      相关资源
      最近更新 更多