camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: Parallel processing route
Date Tue, 26 Feb 2008 02:01:26 GMT
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 <matrixnair@gmail.com> 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.
>>
>>
>>     
>
>
>
>   


Mime
View raw message