Потребитель activemq теряет после некоторого времени работы - PullRequest
0 голосов
/ 09 июля 2020

Потребитель activemq работает с запущенным приложением, через несколько часов go администратор activemq показывает, что потребитель потерян, но приложение-потребитель не показывает никаких исключений, и сообщение журнала печатается хорошо ...

перезапустите приложение и потребитель снова работает.

вот мой код

@PostConstruct
    private void init() throws JMSException {
        Connection connection = activeMQConnectionFactory.createConnection();
        connection.start();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Queue queue = session.createQueue("test.queue");
        consumer = session.createConsumer(queue);

        new Thread(() -> {
            while (true) {
                try {
                    Message receive = consumer.receiveNoWait();
                    if (receive == null) {
                        logger.info(">>> pull no message, sleep 5s");
                        TimeUnit.SECONDS.sleep(5);
                        continue;
                    }
                    logger.info(">>> received message {}", JSON.toJSONString(receive));
                    // DO SOMETHING
                } catch (Exception e) {
                    logger.error("", e);
                }
            }
        }, "consumerThread").start();

    }

ниже это конфигурация приложения

failover:(tcp://ip1:3046,tcp://ip2:3046,tcp://ip3:3046)

с нетерпением жду, когда вы сможете решить проблему. большое спасибо ;

...