在Websphere MQ中有一条消息。已阅读邮件,我正在尝试将邮件退回到输入队列。尚未达到重试阈值。发生异常时,MQ消息是否会自动进入输入Q?这是我的代码:
MQQueueManager qm = new MQQueueManager("");
MQQueue q = qm.accessQueue("");
MQMessage message = new MQMessage();
q.get(message);
System.out.println("Retry Count"+ message.backoutCount);
throw new NullPointerException;
上面的代码会再次将消息放入输入队列吗?在这种情况下,它不会将消息放回输入队列。消息丢失。
答案 0 :(得分:1)
如果您的邮件是开始的交易的一部分,则只能将其撤消。您的代码不使用交易。
查看MQGMO选项,<time datetime="wantToInsertTimeStampHere">Lorem Ipsum</time>
和MQGMO_SYNCPOINT
(在以下两个链接中搜索字符串MQGMO_SYNCPOINT_IF_PERSISTENT
)。
MQ Java Classes CMQC constants
还有MQGMO_SYNCPOINT
上的commit()和backout()方法:
MQ API description of MQGMO_SYNCPOINT - applicable to all languages
并建议您阅读此交易的通用说明