Я использую ActiveMQ в качестве своей JMS-системы, которая получает сообщения журнала от JMSQueueAppender выхода из системы. Клиент - это веб-приложение. И клиент, и брокер находятся на разных машинах.
Мое требование состоит в том, что если клиент не может подключиться к брокеру, он должен хранить сообщения до тех пор, пока он повторно не подключится к брокеру. Я попытался использовать отработку отказа, как указано в Справочнике по переносу отказоустойчивого транспорта Apache. Мой URL-адрес подключения выглядит следующим образом:
failover:(tcp://10.17.67.116:61616?wireFormat.maxInactivityDuration=0)?trackMessages=true&maxReconnectDelay=10000&timeout=3000
Предполагается, что свойство trackMessages = true кэширует сообщения в полете на клиенте, которые позже будут доставлены брокеру всякий раз, когда они появятся. Моя проблема в том, что после появления брокера я не вижу, чтобы он получал сообщения, которые должны были быть доставлены.
Где я ошибаюсь в настройке ActiveMQ? Это кажется довольно простой и понятной реализацией, которая не работает.