I have a question about the thread pool DSL.
If we put throw the rest processors into the thread pool , dose it mean the processor can parallel running ?
If so , the aggregator could be a critical area for multi-thread accessing.

BTW, AFAIK the cxf consumer is using the thread pool to handle the request, that is one thread per request.
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");

Willem.

Hiram Chirino wrote:
Instead of using seda.. use direct so that the call does not return
that that point.  Also try throwing in a thread(maxSize) to allocate a
thread pool to concurrently
execute the rest of the pipeline.  For example:

 from("cxf:bean:soapMessageEndpoint").process(myProc).thread(5).to("direct:a");
 from("direct:a").aggregator(header("txid"),
aggregationStratergy).to("bean:testBean?methodName=processSOAP") ;

Regards,
Hiram

On Fri, Feb 22, 2008 at 6:52 PM, aswin.nair <[EMAIL PROTECTED]> wrote:
 I have a scenario where a Camel CXF consumer receives SOAP/XML messages and
 routes through Camel.  The processing is completely synchronous and uses
 In/Out model where a response has to be generated for the request and
 currently things are working fine.  We call multiple data providers (through
 SOAP/Http) in the route and for performance reasons I want these to be
 parallel and when the response comes back from these aggregate them to one
 message and continue processing.
 In short i want to achieve the following

  CFX Consumer -> Route ---> parallelly send messages and recieve responses
 ---> aggregate response --> further process ----> return

 A simple route like does not work in the CXF case as the seda is
 asynchronous and causes the call to return to the CXF consumer immediately
 after the invocation. The results from the seda a are processed, but are not
 send back to the CXF Consumer

        from("cxf:bean:soapMessageEndpoint").process(myProc).to("seda:a");

        from("seda:a").aggregator(header("txid"), aggregationStratergy)
            .to("bean:testBean?methodName=processSOAP") ;

 Is there any way we can parallelize the execution and aggregate the output
 and continue processing especially in the IN/OUT way using CXF consumer?
 Please advice.


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






Reply via email to