我正在使用ActiveMQ 5.15.4,我的代理配置为开放线连接,如下所示:
<transportConnector name="openwire" uri="tcp://0.0.0.0:24510?transport.useInactivityMonitor=false&transport.keepAlive=true"/>
。以确保我在 TCP 或 ActiveMQ 级别都没有超时。 然后我的 ActiveMQ-cpp-3.9.4 客户端与以下故障转移 url 连接:
failover://(tcp://amq:24510)?soKeepAlive=true&wireFormat.maxInactivityDuration=0
。以确保如果网络打嗝导致传输失败,客户端将自动重新连接。
客户端建立初始连接并在几个"传输故障/传输恢复"故障转移周期中幸存下来,但始终在几分钟内遇到无法恢复的传输故障(尽管网络正在恢复并且代理和客户端都继续运行(。
客户端不发送任何消息,它只是订阅一个没有消息的主题。 感觉像超时,但我的理解是我的上述配置不应该发生超时。
知道为什么我的客户端在失败后可能不会恢复传输吗?
似乎他们在 3.9.5 中解决了这个问题,其中更改信息说他们解决了故障转移机制的问题。