WebSphere MQ消息从队列中消失
我想我会在这里提出一个问题,以防有人有想法。我的MQ管理员为我创建了一个新队列和别名队列,以便向其写入消息。我有一个应用程序正在写入队列,另一个应用程序正在侦听别名队列。我正在使用SpringJMSTemplate写入队列。我们看到一种行为,消息正在写入队列,但随后立即被丢弃。我们禁用了get,为了查看是否以某种方式设置了到期参数,我使用jms模板来设置到期设置(timeToLive)。我将有效期设为10分钟,但我的信息仍然会立即消失。下面是我的代码片段和设置WebSphere MQ消息从队列中消失,websphere,ibm-mq,message,mq,Websphere,Ibm Mq,Message,Mq,我想我会在这里提出一个问题,以防有人有想法。我的MQ管理员为我创建了一个新队列和别名队列,以便向其写入消息。我有一个应用程序正在写入队列,另一个应用程序正在侦听别名队列。我正在使用SpringJMSTemplate写入队列。我们看到一种行为,消息正在写入队列,但随后立即被丢弃。我们禁用了get,为了查看是否以某种方式设置了到期参数,我使用jms模板来设置到期设置(timeToLive)。我将有效期设为10分钟,但我的信息仍然会立即消失。下面是我的代码片段和设置 public void p
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
我发现了我的问题。我有一个带有@Transactional注释的父方法。我不希望我的新jms消息成为该事务的一部分,因此我将添加jmsTemplate.SetSessionTransactived(false);在执行jmsTemplate.send之前。我已经创建了一个单独的jmsTempalte来发送我的新消息,而不是重复使用现有的消息,这需要管理。我发现了我的问题。我有一个带有@Transactional注释的父方法。我不希望我的新jms消息成为该事务的一部分,因此我将添加jmsTemplate.SetSessionTransactived(false);在执行jmsTemplate.send之前。我已经创建了一个单独的jmsTempalte来发送我的新消息,而不是重用现有的消息,这需要管理