JMS QPID дескриптор переподключения - PullRequest
0 голосов
/ 29 ноября 2018

Я использую JMS с QPID и задаюсь вопросом, как настроить переподключение, если с брокером больше невозможно связаться:

try (Connection connection = jmsFactory.createConnection(); Session session = connection.createSession()) {
            Queue queue = session.createQueue("queue:testQueue");
            Topic topic = session.createTopic("topic:testTopic");
            TextMessage message = session.createTextMessage("toQueue");
            TextMessage message2 = session.createTextMessage("toTopic");

            MessageProducer producer = session.createProducer(queue);
            producer.send(message);
            MessageProducer producer2 = session.createProducer(topic);
            producer2.send(message2);
            MessageConsumer consumer = session.createConsumer(queue);
            consumer.setMessageListener(new MessageListener() {

                @Override
                public void onMessage(Message message) {
                    try {
                        String content = extractBody(message);
                        System.out.println("From: " + message.getJMSDestination() + " Content: " + content);
                        message.acknowledge();
                    } catch (JMSException e) {
                        System.out.println("CANNOT GET CONTENT= " + e);
                    }
                }
            });
            connection.start();
            consumer.close();
  }catch ...

Если с брокером больше нет доступа, я хотел бы переподключиться, пока он не будетобратно назад.

1 Ответ

0 голосов
/ 29 ноября 2018

Если вы ссылаетесь на Qpid JMS , тогда клиент предоставляет транспортный механизм отработки отказа, который обрабатывает для вас автоматическое переподключение, так что вашему коду не нужно ничего делать.Документация объясняет, как это настроить, в основном вы изменяете свой URI, чтобы обернуть информацию о хосте тегом отработки отказа:

 failover:(amqp://123.0.0.123:5672)
...