如果 JMS 消息尚未发送到队列,我需要记录错误消息。
如何查看消息是否未发送?
代码:
...
...
QueueSender send = session.createSender(queue);
TextMessage tm = session.createTextMessage(message);
send.send(tm);
log.debug("Sent text=" + tm.getText());
...
...
提前致谢
如果 JMS 消息尚未发送到队列,我需要记录错误消息。
如何查看消息是否未发送?
代码:
...
...
QueueSender send = session.createSender(queue);
TextMessage tm = session.createTextMessage(message);
send.send(tm);
log.debug("Sent text=" + tm.getText());
...
...
提前致谢
从发送调用中捕获异常就足够了。无需将传递模式设置为 PERSISTENT,因为此选项使所有消息都保持不变,即使您希望消息是非持久的。
try
{
qsender.Send(msg);
}
catch(JMSException je)
{
}
使用 DeliveryMode.PERSISTENT 确保它将被持久化和交付,并捕获如果 send() 失败时引发的 JMSException?
为了获得更大的灵活性,Message Queue 允许您自定义 JMS 客户端确认模式。
acknowledge()
在客户端确认模式下,客户端通过调用消息对象的方法显式确认消息消费。