0

在 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 吗?在这种情况下,它不会将消息放回输入队列。消息丢失。

4

1 回答 1

1

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

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

MQ Java 类 CMQC 常量

MQGMO_SYNCPOINT 的 MQ API 描述 - 适用于所有语言

还有 commit() 和 backout() 方法MQQueueManager

MQQueueManager 类

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

提交和退出工作单元

于 2016-01-18T21:38:10.763 回答