Сообщения WebSphere MQ исчезают из очереди - PullRequest
1 голос
/ 21 марта 2019

Я подумал, что хотел бы задать вопрос, если у кого-то есть идеи. Мой администратор MQ создал новую очередь и очередь псевдонимов для меня, чтобы писать сообщения. У меня одно приложение записывает в очередь, а другое приложение прослушивает очередь псевдонимов. Я использую Spring JMSTemplate для записи в мою очередь. Мы наблюдаем поведение, когда сообщение записывается в очередь, но затем мгновенно отбрасывается. Мы отключили get и, чтобы увидеть, был ли задан параметр expiry, я использовал шаблон jms для установки параметра expiry (timeToLive). Я установил срок действия до 10 минут, но мое сообщение по-прежнему исчезает мгновенно. Фрагмент моего кода и настроек ниже.

    public void publish(ModifyRequestType response) {

    jmsTemplate.setExplicitQosEnabled(true);
    jmsTemplate.setTimeToLive(600000);
        jmsTemplate.send(CM_QUEUE_NAME, new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {

                String responseXML = null;
                try {
                    responseXML myJAXBContext.getInstance().toXML(response);
                    log.info(responseXML);
                    TextMessage message = session.createTextMessage(responseXML);
                    return message;
                } catch (myException e) {
                    e.printStackTrace();
                    log.info(responseXML);
                    return null;
                }


        }
    });
}

///////////////// Мои настройки

QUEUE.PUB_SUB_DOMAIN=false
QUEUE.SUBSCRIPTION_DURABLE=false
QUEUE.CLONE_SUPPORT=0
QUEUE.SHARE_CONV_ALLOWED=1
QUEUE.MQ_PROVIDER_VERSION=6

1 Ответ

0 голосов
/ 21 марта 2019

Я нашел свою проблему. У меня был родительский метод с аннотацией @Transactional. Я не хочу, чтобы мое новое jms-сообщение было частью этой транзакции, поэтому я собираюсь добавить jmsTemplate.setSessionTransacted (false); перед выполнением jmsTemplate.send. Я создал отдельный jmsTempalte для отправки моего нового сообщения вместо повторного использования существующего, которым нужно управлять.

...