Hello

I'm currently using CAMEL 2.0.0 with a route that dynamically splits and routes a message to many destinations. I should be using a recipientList() but since the version 2.0.0 doesn't allow any exception handling I'm forced to using a construct like the following:

for (Map.Entry<String, Message> destination : destinations.entrySet()) { Producer expediteur = exchange.getContext().getEndpoint(destination.getKey()).createProducer();
        Exchange envoi = expediteur.createExchange();
        envoi.setIn(destination.getValue());
        expediteur.process(envoi);
    }

This actually works, and the outer processor gets an exception if any destination fails.

Here's the issue: in my original context, I had a tracer defined like the following:

    // Tracer, that will by default log on log4j and send to the
    // fr.bull.cetebordeaux.traces JMS queue
    Tracer tracer = new Tracer();
    tracer.setFormatter(new CETEMessageFormatter());
    tracer.setLogLevel(LoggingLevel.INFO);
    tracer.setLogName("fr.bull.cetebordeaux.traces");
    tracer.setDestinationUri("direct:traced");
this.from("direct:traced").process(new DefaultTraceEventMessageToStringProcessor()).to("registry:Trace.Queue");
    this.getContext().addInterceptStrategy(tracer);

That tracer is actually not active for the Exchange I've created "manually". Is this an expected behaviour?

Cheers

--

S. Ali Tokmen
[email protected]

Office: +33 4 76 29 76 19
GSM:    +33 66 43 00 555

Bull, Architect of an Open World TM
http://www.bull.com


Reply via email to