ActiveMQ с загрузкой Spring. Сообщения не работают

Я хочу использовать ActiveMQ в приложении Spring Boot в качестве встроенного сервера. Для настройки ActiveMQ я использовал следующее руководство: Spring Boot. Обмен сообщениями с помощью JMS. Мое приложение будет брокером и потребителем. Есть несколько потоков, создающих такие сообщения:

@Autowired
private JmsTemplate jmsTemplate;
.......
MessageCreator messageCreator = session -> session.createObjectMessage(transactionNotificationData);
                        jmsTemplate.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
                        jmsTemplate.send(QUEUE, messageCreator);

У меня есть еще один класс со следующим методом:

@JmsListener(destination = QUEUE)
public void receive(Message message) throws IOException {
    brokerService.getPersistenceAdapter();
    try {
        if (message instanceof ObjectMessage) {
            ObjectMessage objMessage = (ObjectMessage) message;
            NotificationData notification = (NotificationData) objMessage.getObject();
            LOG.info("Received <" + notification.notification + ">");
            ...... do some stuff ........
//            message.acknowledge();
        }
    } catch (JMSException e) {
        e.printStackTrace();
    }

Во время тестов я вижу, что сообщения создаются и потребляются. Как видите, message.acknowledge() прокомментирован. Поэтому я ожидаю, что сообщение будет доставлено повторно после повторного запуска моего приложения. Однако этого не происходит.


person PaintedRed    schedule 20.08.2015    source источник


Ответы (1)


Подтверждение сообщения автоматически обрабатывается контейнером и выполняется после успешного выполнения onMessage () (в вашем случае receive ()),

поэтому даже когда вы комментируете message.acknowledge();, контейнер сам по себе отправляет подтверждение

вы можете посмотреть следующую ссылку для получения дополнительной информации

Надеюсь это поможет!

Удачи!

person Vihar    schedule 20.08.2015
comment
@Loco это ответило на ваш вопрос? - person Vihar; 27.08.2015