Я использую ActiveMQ 5.15.4 с моим брокером, настроенным для соединений openwire, например:
<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
..., чтобы гарантировать, что если сбой в сети вызовет сбой транспорта, клиент автоматически восстановит соединение.
Клиент устанавливает свое первоначальное соединение и переживает несколько циклов аварийного переключения «транспортный сбой / транспорт возобновлен», но последовательно, в течение пары минут, он сталкивается с транспортным сбоем, с которого он не восстанавливается (несмотря на восстановление сети иброкер и клиент продолжают работать).
Клиент не отправляет никаких сообщений, он просто подписывается на тему, по которой ему не приходят сообщения.Это похоже на тайм-аут, но я понимаю, что тайм-аут не должен возникать с моей вышеупомянутой конфигурацией.
Есть идеи, почему мой клиент не может возобновить транспорт после сбоя?