我正在使用 MQQueueSession.rollback() 回滚工作单元。消息被移动到 BACKOUT 队列,这没问题。
但问题是如何处理回退队列中的这些消息?我读到我可以使用 runmqdlq 工具,但它只适用于以 MQDLH 为前缀的消息。简单的 MQQueueSession.rollback() 似乎没有这样做。我究竟做错了什么?
代码示例:
MQQueueConnection connection;
// ...
MQQueueSession session = (MQQueueSession) connection.createQueueSession(true, Session.SESSION_TRANSACTED);
MQQueue queue = (MQQueue) session.createQueue("queue:///TEST");
MQQueueReceiver receiver = (MQQueueReceiver) session.createReceiver(queue);
JMSTextMessage message = null;
try {
message = (JMSTextMessage) receiver.receive();
// ...
session.commit();
} catch (JMSException e) {
session.rollback();
e.printStackTrace();
}