通过使用此http://blogs.mulesoft.org/total-traceability/,我获得了有关Message Id
和Unique Id
使用情况的有用知识。需要澄清哪一个是主题。在Mule调试器视图中,我们只能看到MessageRoot ID和Unique Id。但我怎么能拿Thread ID
。
消息ID(消息根ID)和线程ID是否相同?我相信不是。请确认。 如果没有,我们如何获取线程ID。因为我的流程中有多个流程和调用。
寻找对情景的理解。
提前致谢。
答案 0 :(得分:3)
MessageId
是为Mule中生成的每个MuleMessage
对象实例生成的UUID。默认情况下,RootId
与MessageId
相同。但是,有一些端点(例如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()]