2014-11-24 86 views
0

提取線程ID我用這個http://blogs.mulesoft.org/total-traceability/上了車的Message IdUnique Id使用的有用的知識。需要澄清哪一個線程。在Mule調試器視圖中,我們只能看到MessageRoot ID和唯一標識。但是,我怎麼能採取Thread ID如何在騾子ESB

它是消息ID(消息根ID)和線程ID是相同的嗎?我相信它不是。請確認。 如果不是,我們如何取得線程ID。因爲我的流量中有多個流量和呼叫。

尋找理解場景。

在此先感謝。

回答

3

MessageId是爲每個在Mule中生成的MuleMessage對象實例生成的UUID。默認情況下,RootIdMessageId相同。但是,有一些端點(如JMS)共享RootId,並將其作爲屬性發送。假設你有一個flow1,它發送一條消息(ID爲'xxx-xxx-xxx')到一個JMS隊列「Foo」和一個接收來自同一個JMS隊列的消息的flow2flow2中的消息將有一個ID 'xxx-xxx-yyy'和RootId 'xxx-xxx-xxx'。通過這種方式,您可以在流程中生成的消息之間建立關係。

threadId是標識java線程的長整型值。您可以使用代碼Thread.currentThread().getId()獲取當前線程的標識。在MEL它將是#[java.lang.Thread.currentThread().getId()]

+0

@Krumia感謝您的幫助。有用!!我已經接受了答案,因爲它給出了當前的解決方案! – star 2014-11-29 11:20:44

+0

感謝您的幫助!它按需要工作! – star 2014-11-29 11:21:45

+0

@star:實際上,您應該感謝Nuno。他是答覆者,我只是[編輯帖子](http://stackoverflow.com/posts/27099575/revisions)來改進格式。 – Krumia 2014-12-01 03:28:52