Hi All,

I face a performance issue with camel 2.17 running inside tomcat 7.0.65
I can not run more than 20 user per second (with gatling). Over 20 user/s,
the response time increase drastically, the pool of tomcat thread is
completely used (1000 threads), and also the JVM CPU usage.

My configuration contains only one context, inside one route:
- with two endpoints ("from" servlet "to" http4)
- with two xslt transformation (saxon=true)
- a logging in logback of the 4 xml (2 req and 2 res)

I attach the config file.

I did test locally and I mocked the internal service to be sure that all
latency comes from camel. Most requests spends 5 seconds inside camel
before calling internal mock service.

I played with pools sizing but no improve. For tomcat, I use the default
configuration (1000 max thread pool). For http4, I try to add some options
&maxTotalConnections=1000&connectionsPerRoute=1000.

Any advise for investigation with be appreciated.

Regards,
Tarek
<camelContext id="pricing-v1.1-context" trace="false" messageHistory="false" typeConverterExists="Ignore" xmlns:com="http://www.domain.com/bs/common/v1";
		xmlns:ecom="http://www.domain.com/schema";>
	<!-- 	-->
		<!-- Context - Properties -->
		<propertyPlaceholder id="pricing-properties"
			location="file:///conf/integration-gateway-tra-external/offer/pricing.properties" />

		<jmxAgent id="agent" disabled="true"/>

		<!-- End points - Public -->
		<endpoint id="esb-pricing-v1.1-endpoint" uri="{{esb-pricing-v1.1-endpoint}}">
			<property key="servletName" value="CamelServlet" />
			<property key="httpMethodRestrict" value="POST" />
			<property key="matchOnUriPrefix" value="true" />
		</endpoint>

		<!-- End point - Routes & Transformations -->
		<route id="offer-api-pub-pricing-v1.1-route" streamCache="true" >
			<from ref="esb-pricing-v1.1-endpoint"  />
			<convertBodyTo type="javax.xml.transform.stream.StreamSource"></convertBodyTo>
			<to
				uri="log:bam.offer.api-pub.pricing.v1_1.rq?level=INFO&amp;showHeaders=true&amp;showStreams=true&amp;showExchangeId=true" />

					<!-- Transform v1.1 flow to business quotation service V1 -->
					<to uri="xslt:xslt/pricing/pricingRQv1.1_to_bsQuoteRQv1.xslt?saxon=true" />

					<!-- Extract partner and country code. Used by the quotation url -->
					<setProperty propertyName="partnerCode">
						<xpath resultType="java.lang.String">//com:partner/@code</xpath>
					</setProperty>
					<setProperty propertyName="countryCode">
						<xpath resultType="java.lang.String">//com:country/@code</xpath>
					</setProperty>

					<!-- Call quotation Business Service -->
					<to uri="log:bam.offer.bsv.quote.v1.rq?level=INFO&amp;showHeaders=true&amp;showStreams=true&amp;showExchangeId=true" />
					<toD uri="{{pricing-wsrest-endpoint}}&amp;bridgeEndpoint=true&amp;throwExceptionOnFailure=true" />
					<to uri="log:bam.offer.bsv.quote.v1.rs?level=INFO&amp;showHeaders=true&amp;showStreams=true&amp;showExchangeId=true" />

					<!-- Create pricing response v1.1 -->
					<!-- Transform business quotation service V1 flow to v1.1 -->
					<to uri="xslt:xslt/pricing/bsQuoteRSv1_to_pricingRSv1.1.xslt?saxon=true" />

			<to
				uri="log:bam.offer.api-pub.pricing.v1_1.rs?level=INFO&amp;showHeaders=true&amp;showStreams=true&amp;showExchangeId=true" />
		</route>

	</camelContext>

Reply via email to