ConnectionURLActiveMQ отказоустойчивый транспорт - производители/потребители работают на разных хостах
failover:(tcp://broker1:61616,tcp://broker2:61616)?andomize=false&jms.useAsyncSend=false&jms.dispatchAsync=false&maxReconnectAttempts=30&maxReconnectDelay=3000&jms.prefetchPolicy.queuePrefetch=1000
Сценарий:
Производитель помещает сообщение в queue_1
create connection
put message
close connection
Слушатель (auto_ack) - имеет длинный поскольку это слушатель
retrieves the message
puts it in queue_2 (client_ack)
Thread, который периодически запускается
create connection
retrieves everything from queue_2
processes messages
ack messages
close connection
Проблема - broker_1 идет вниз. FailoverTransport перенаправляет трафик на broker_2. Все три части (Procuder, Listener и Thread) работают с broker_2). broker_1 возвращен. Прокудер и поток подключаются к broker_1. Слушатель остается на broker_2. Удивительно - вызов onMessage вызывается, когда сообщение появляется в queue_1 на broker_1, но слушатель помещает сообщение queue_2 в broker_2.
Как я могу проинструктировать слушателя повторно подключиться к broker_1 после его повторного запуска? Или я должен принудить Producer and Thread работать с broker_2 до тех пор, пока он работает?