Сообщение удалено из очереди посредника из-за того, что для сеанса, который вы используете, установлено автоматическое подтверждение.
mdbSession = mdbConn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Это автоматически отправит брокеру подтверждение того, что слушатель получил сообщение для потребителя, с которым он связан, после того, как метод onMessage () выполнен до завершения. Это приводит к тому, что сообщение удаляется из очереди.
Если вы принимаете процесс подтверждения вручную, вы можете выбрать только подтверждение получения сообщения в выбранный вами момент (будь то 15 минут спустя или любые другие критерии, которые вы используете для потребляющего клиента).
Настройка сеанса Session.CLIENT_ACKNOWLEDGE
позволит вам сделать это, но затем вам придется вручную отправить подтверждение в свой код потребителя. Вызвав подтверждение для сообщения msg.acknowledge()
внутри вашего метода onMessage () в вашем слушателе.
Затем будет подтверждено получение сообщений, использованных в этом сеансе, и они будут удалены из очереди.
Страницы 46 и 65 в указанном вами PDF-документе полезны для получения дополнительной информации по этому вопросу, как и api