首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebSphere MQ消息从队列中消失

WebSphere MQ消息从队列中消失
EN

Stack Overflow用户
提问于 2019-03-22 03:36:05
回答 1查看 249关注 0票数 1

我想我会在这里抛出一个问题,以防有人有想法。我的MQ Admin为我创建了一个新的队列和别名队列,以便向其中写入消息。我有一个应用程序写入队列,另一个应用程序监听别名队列。我正在使用spring jmsTemplate来写入我的队列。我们看到这样一种行为,即消息被写入队列,但随后立即被丢弃。我们禁用了gets,为了查看是否以某种方式设置了到期参数,我使用jms模板来设置到期设置(timeToLive)。我将过期时间设置为10分钟,但我的消息仍然立即消失。下面是我的代码和设置的一小段。

代码语言:javascript
复制
    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;
                }


        }
    });
}

/我的设置

代码语言:javascript
复制
QUEUE.PUB_SUB_DOMAIN=false
QUEUE.SUBSCRIPTION_DURABLE=false
QUEUE.CLONE_SUPPORT=0
QUEUE.SHARE_CONV_ALLOWED=1
QUEUE.MQ_PROVIDER_VERSION=6
EN

回答 1

Stack Overflow用户

发布于 2019-03-22 04:34:15

我找到我的问题了。我有一个带有@Transactional注解的父方法。我不希望我的新jms消息成为该事务的一部分,因此在执行jmsTemplate.send之前,我将添加jmsTemplate.setSessionTransacted(false);。我已经创建了一个单独的jmsTempalte来发送我的新消息,而不是重用需要管理的现有消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55288093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档