我正在使用 Spring DefaultMessageListenerContainer 和 JMS 消息侦听器来使用来自 Solace Queue 的消息。客户端确认设置为真。
如果出现异常消息,则由于未确认且未重新传递,因此消息仍保留在队列中。处理异常后抽取的新消息。
已阅读有关使用 session.recover 的信息,但我们如何处理 session 。还尝试将 maxredelivery 设置为 3 。但不工作。
public void onMessage(Message message) {
String text = null;
ALNTLogger.trace(CLAZZ_NAME, "onMessage()", "Message Received:");
try {
TextMessage textMessage = (TextMessage) message;
text = textMessage.getText();
ALNTLogger.trace(CLAZZ_NAME, "onMessage()", "Message Received: " + text);
Document xmlDocument = parseXml(text);
Map < String, String > values = getValues(xmlDocument);
saveValues(values);
message.acknowledge();
} catch (Exception ex) {
ALNTLogger.error(CLAZZ_NAME, "onMessage()", "Failed to process message:" + text);
throw new RuntimeException(ex);
}
}
任何帮助将不胜感激