2

如果 JMS 消息尚未发送到队列,我需要记录错误消息。

如何查看消息是否未发送?

代码:

...
...   
QueueSender send = session.createSender(queue);
TextMessage tm = session.createTextMessage(message);

send.send(tm);
log.debug("Sent text=" + tm.getText());
...
...

提前致谢

4

3 回答 3

1

从发送调用中捕获异常就足够了。无需将传递模式设置为 PERSISTENT,因为此选项使所有消息都保持不变,即使您希望消息是非持久的。

try
{
  qsender.Send(msg);
}
catch(JMSException je)
{
}
于 2012-05-23T08:32:16.480 回答
1

使用 DeliveryMode.PERSISTENT 确保它将被持久化和交付,并捕获如果 send() 失败时引发的 JMSException?

于 2012-05-21T10:59:37.190 回答
0

Oracle 文档说:

为了获得更大的灵活性,Message Queue 允许您自定义 JMS 客户端确认模式。acknowledge()在客户端确认模式下,客户端通过调用消息对象的方法显式确认消息消费。

于 2014-09-18T05:48:23.957 回答