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.