ESB

2014-11-24 3 views
0

에서 스레드 ID를 추출하는 방법 http://blogs.mulesoft.org/total-traceability/을 사용하여 Message IdUnique Id의 사용에 대한 유용한 지식을 얻었습니다. 어떤 스레드가 스레드인지 명확히해야합니다. Mule 디버거 뷰에서는 MessageRoot ID와 Unique Id 만 볼 수 있습니다. 하지만 어떻게하면 Thread ID을 가져갈 수 있습니까?ESB

메시지 ID (메시지 루트 ID)와 스레드 ID가 같습니까? 나는 그렇지 않다고 믿는다. 확인해주세요. 그렇지 않은 경우 어떻게 스레드 ID를 사용할 수 있습니까? 내 흐름에는 여러 개의 흐름과 호출이 있기 때문입니다.

시나리오를 이해하고 있습니다.

미리 감사드립니다.

답변

3

MessageId은 Mule에서 생성 된 MuleMessage 개체 인스턴스마다 생성 된 UUID입니다. 기본적으로 RootIdMessageId과 동일합니다. 그러나 RootId을 공유하는 일부 끝점 (예 : JMS)이 속성으로 전송됩니다. flow1이 JMS 큐 "Foo"에 메시지 ('xxx-xxx-xxx')를 보내고 flow2의 메시지에 'xxx-xxx-yyy'의 메시지가 있고 루트 번호가 'xxx-xxx-xxx'flow2이 있다고 가정 해보십시오. 이렇게하면 흐름에서 생성되는 메시지 사이에 관계가 생깁니다.

threadId은 Java 스레드를 식별하는 긴 값입니다. 코드 Thread.currentThread().getId()을 사용하여 현재 스레드의 id를 얻을 수 있습니다. MEL에서는 #[java.lang.Thread.currentThread().getId()]

+0

@ Krumia 도움을 주셔서 감사합니다. 그것은 작동! 나는 현재의 해결책을 제시 한 이래로 대답을 받아 들였습니다 !! – star

+0

도움 주셔서 감사합니다 !! 그것은 필요에 따라 작동합니다! – star

+0

@star : 감사합니다. 실제로 누노에게 가야합니다. 그는 응답자이며 포맷을 개선하기 위해 나는 [게시물을 편집했다] (http://stackoverflow.com/posts/27099575/revisions). – Krumia