Повторите попытку установить соединение 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);
Другие вопросы по тегам