Websphere MQ 消息不会回退到输入队列

Websphere MQ message doesnot backout to Input Queue

在 Websphere MQ 中有一条消息。已阅读消息,我正在尝试将消息撤消到输入队列。尚未达到重试阈值。发生异常时MQ消息是否自动放入Input 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;

上面的代码会不会把消息重新放入Input Queue?在这种情况下,它不会将消息放回输入队列。消息丢失。

您的消息只有在开始时是交易的一部分时才能撤回。您的代码不使用事务。

查看 MQGMO 选项,MQGMO_SYNCPOINTMQGMO_SYNCPOINT_IF_PERSISTENT(在以下两个链接中搜索字符串 MQGMO_SYNCPOINT)。

MQ Java Classes CMQC constants

MQ API description of MQGMO_SYNCPOINT - applicable to all languages

还有 MQQueueManager:

上的 commit() 和 backout() 方法

MQQueueManager class

并建议您阅读此交易的通用说明

Committing and backing out units of work