如何在Mule ESB中提取线程ID

时间:2014-11-24 02:02:20

标签: mule mule-studio mule-el mule-component

通过使用此http://blogs.mulesoft.org/total-traceability/,我获得了有关Message IdUnique Id使用情况的有用知识。需要澄清哪一个是主题。在Mule调试器视图中,我们只能看到MessageRoot ID和Unique Id。但我怎么能拿Thread ID

消息ID(消息根ID)和线程ID是否相同?我相信不是。请确认。 如果没有,我们如何获取线程ID。因为我的流程中有多个流程和调用。

寻找对情景的理解。

提前致谢。

1 个答案:

答案 0 :(得分:3)

MessageId是为Mule中生成的每个MuleMessage对象实例生成的UUID。默认情况下,RootIdMessageId相同。但是,有一些端点(例如JMS)共享RootId,将其作为属性发送。假设你有一个flow1发送一条消息(标识为'xxx-xxx-xxx')到一个JMS队列“Foo”和一个flow2接收来自同一个JMS队列的消息,该消息在flow2的ID为'xxx-xxx-yyy',RootId为'xxx-xxx-xxx'。这样,您就可以在流中生成消息之间建立关系。

threadId是一个标识java线程的long值。您可以使用代码Thread.currentThread().getId()获取当前线程的id。在MEL中,它将是#[java.lang.Thread.currentThread().getId()]