[ 
https://issues.apache.org/activemq/browse/SM-751?page=comments#action_37521 ] 
            
Guillaume Nodet commented on SM-751:
------------------------------------

You need to clean the thread local.
In the processExchange method, just do:

protected void processExchange(MessageExchange exchange) throws Exception {
  try {
     corrId.set(exchange.getProperty("correlationId"));
     ... put the current code here ...
  } finally {
     corrId.set(null);
  }
}

This way you should not experience the problem you explained.


> Flow tracing with correlation id
> --------------------------------
>
>                 Key: SM-751
>                 URL: https://issues.apache.org/activemq/browse/SM-751
>             Project: ServiceMix
>          Issue Type: Improvement
>            Reporter: Gianfranco Boccalon
>         Attachments: servicemix-components.zip
>
>
> Add the possibility to trace the flow of the messages inside a Service 
> Assembly.
> For example, if we have a Service Assembly composed of three components, two 
> binding components (call them BC1 and BC2) and a service engine (SE) 
> organized in this sequence BC1->SE->BC2, we need to recognize that the output 
> messages produced by the SE component are related to some messages provided 
> by BC1.
> To do this, we need to add a "process correlation id" to the message 
> exchanges and to modify the used components, to propagate this correlation id 
> in all Message Exchanges sent.
> Enclosed there is the modified code for the following components:
> - HTTP binding component: here I added the code to generate the correlation 
> Id and set it in the Message Exchange
> - Splitter
> - Router (the lightweight component) 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to