我正在使用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();
}