如何在Apache camel中记录MQ交付时间以进行动态交付(toD)?

时间:2018-03-21 21:48:34

标签: apache-camel

我正在尝试花时间将消息传递给Apache Camel中的IBM MQ队列。以下是路线配置,

from("direct:deliver-route-2").process("mySampleProcessor").split().method("messageSplitterBean", "splitMessage").shareUnitOfWork().stopOnException().toD("mqDeliverJms:${headers.Deliver}?preserveMessageQos=true");

我有一个拆分器来拆分消息列表,并使用消息标题" Deliver"动态地传递(toD)消息。

我使用了其中一个问题中给出的MessageHistory建议,但后来我没有看到(toD)将消息传递给IBM MQ的时间。

String MessageHist = org.apache.camel.util.MessageHelper.dumpMessageHistoryStacktrace(exchange,
                new DefaultExchangeFormatter(), false);

这是消息历史记录,

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用“EventNotifier”捕获有时间的ExchangeSent事件,例如Camel文档中的示例很少:http://camel.apache.org/eventnotifier-to-log-details-about-all-sent-exchanges.html