检查DLQ消息中的客户端异常

时间:2011-11-21 01:57:32

标签: activemq apache-camel

现在我正在使用具有重新传递策略的JMS队列,以便将回滚超过五次的邮件发送到死信队列。

当消息被发送到ActiveMQ中的死信队列时,是否有办法查看导致该消息回滚的异常?是否有可以设置的消息属性来指定导致消息失败的原因?

2 个答案:

答案 0 :(得分:4)

如果您使用死信通道功能 http://activemq.apache.org/message-redelivery-and-dlq-handling.html 然后,如上所述,AMQ经纪人的字面上只是无法传递的消息。经纪人不知道出了什么问题,它只是在消息上收到“回滚”信号。

如果您使用Camel的死信通道功能 http://camel.apache.org/dead-letter-channel.html 然后Camel将引起的异常作为Exchange上的属性存储,您可以在失败的消息上进行丰富,并将其发送到AMQ代理中的死信队列。因此,不是让AMQ回滚消息,而是处理异常,并将消息发送到另一个队列,这恰好是一个死信队列。然后,您可以通过从Exchange属性获取堆栈跟踪和/或异常消息来丰富消息,并将其存储在消息的某个位置,标题等中。

Camel使用密钥将捕获的异常作为Exchange上的属性存储:Exchange.EXCEPTION_CAUGHT

答案 1 :(得分:0)

您需要查看生成异常的框中的日志。发送到DLQ的内容实际上只是无法传递的消息。