We're running load tests against a Web application that invokes a Web service
that's exposed via Camel CXF and have run into performance issues with the
Camel/CXF component.
Through the help of AppDynamics, we've identified the culprit as being the
Camel AsyncProcessorHelper.proccess() method...specifically, the line of
code where it's waiting for some type of latch to be released (line 121 of
org.apache.camel.util.AsyncProcessorHelper, camel core v2.12.2). I assume
this is being done in order to synchronize some internal operation.
The route is pretty basic, and I assume it's getting stuck before it even
gets to the "meat" of the Camel route. I've cut out a lot of the detail and
changes some of the names being used below, but here's the gist:
/
<cxf:cxfEndpoint id="inquiry"
address="${inquiry.contextpath}"
>...
</cxf:cxfEndpoint>
...
<camel:route id="InquiryCxfRoute">
<camel:from uri="cxf:bean:inquiry? />
<camel:to uri="direct:InquiryChannel" pattern="InOut" />
</camel:route>
...
<camel:route id="InquiryRoute">
<camel:from uri="direct:InquiryChannel" />
...
/
In some cases it's taking upwards of 30 seconds for the latch.await() method
to return. I'm wondering if we need to tune our threading model, but I don't
quite understand what's going on under the covers with this CXF client
route.
Can anybody shed some light on some of the internal details?
--
View this message in context:
http://camel.465427.n5.nabble.com/Camel-CXF-Endpoint-Performance-Threading-tp5748984.html
Sent from the Camel - Users mailing list archive at Nabble.com.