Повторите попытку установить соединение JMS, когда посредник ActiveMQ недоступен.
Вот мой сценарий. У меня есть несколько производителей и потребителей ActiveMQ (JBoss-AMQ), установленных как сервисы. При перезапуске сервера, какова лучшая практика обработки такой ситуации, когда служба поставщика или потребителя запускается до службы посредника ActiveMQ. В этом случае производитель / клиент не может установить соединение и начинает зависать так же, как и после запуска службы брокера.
вот мой фрагмент кода создания соединения:
try {
connection = connectionFactory.createConnection();
connection.start();
LOGGER.info(STARTED_CONNECTION_WITH_THE_DESTINATION + destinationName);
session = createSession();
destination = session.createQueue(destinationName);
LOGGER.info(CREATED_QUEUE_IN_DESTINATION + destinationName);
if (isImageProcAgent) {
consumer = createConsumer();
LOGGER.info(CONSUMER_HAS_BEEN_INITIALIZED);
} else {
producer = session.createProducer(destination);
LOGGER.info(PRODUCER_HAS_BEEN_INITIALIZE);
}
} catch (MessagingException e) {
LOGGER.error(e);
} catch (JMSException e) {
LOGGER.error(e);
}
Я новичок в JMS, поэтому ценю вашу поддержку.
1 ответ
Это может быть достигнуто путем настройки failover
как объясняется в этом документе. согласно моему фрагменту кода, изменение, которое я потребовал:
destination = session.createQueue("failover:"+destinationName);
producer = session.createProducer("failover:"+destination);