willem.jiang wrote:
> 
> For aswin's case , How about ?
> 
> from("cxf:bean:soapMessageEndpoint").multicast(new
> BodyOutAggregatingStrategy()).thread(3).to("direct:webservice1",
> "direct:webservice2", "direct:webService3");
> from("direct:webservice1").to("cxf://webservice1");
> from("direct:webservice2").to("cxf://webservice2");
> from("direct:webservice3").to("cxf://webservice3");
> 

I tried the same route with slight modification, so that I can test it
rapidly using different DSLs and I have the following example

    // a simple processor that just prints something and waits for 5 seconds 
        Processor simpleProcessor = new Processor() {           
                public void process(Exchange exchange) throws Exception {
                        System.out.println("Simple Processor processing stuff 
for 5 seconds.");
                        Thread.sleep(1000 * 5);
                }               
        }; 

    // routes from Willem's example slightly modified
        from("direct:start")
       .multicast().thread(3)
       .to("direct:webservice1","direct:webservice2", "direct:webService3");
                
       from("direct:webservice1").process(simpleProcessor);
       from("direct:webservice2").process(simpleProcessor);
       from("direct:webservice3").process(simpleProcessor);

    // invoke using camel template with a basic default exchange
    template.send("direct:start", exchange);

Output  
Simple Processor processsing stuff for 5 seconds.
[delay for 5 sec]
Simple Processor processsing stuff for 5 seconds.

So basically the routes "from"webservice1" and "from:webservice3" are
running sequentially and in same thread. 
The following route 
    from("direct:start")
    .multicast()
    .thread(3).process(simpleProcessor).end()
    .thread(3).process(simpleProcessor).end()
    .thread(3).process(simpleProcessor).end();

Output
Thread[0] Simple Processor processsing stuff for 5 seconds. 
[delay for 5 sec]
Thread[1] Simple Processor processsing stuff for 5 seconds. 
[delay for 5 sec]
Thread[2] Simple Processor processsing stuff for 5 seconds. 


I tried Chirno's suggestion also, but was unlucky.

Digging the code revealed that splitter/mulitcastprocessor etc process
message synchronously (as far as I understood it). Anyways if there is
anything I should be doing to get this working, please let me know and I  am
stuck on this part. 

-- 
View this message in context: 
http://www.nabble.com/Parallel-processing-route-tp15642110s22882p15706533.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to