bsolrac wrote:
bsnyder wrote:
On Fri, Jul 25, 2008 at 4:37 PM, bsolrac <[EMAIL PROTECTED]>
wrote:
setup


servicemix version: 3.1.2 web app
application server: JBoss 4.2.2

We have a web service deployed on jboss instance A
We have service mix deployed on jboss instance b

Jboss A is on server A
Jboss B is also on server A

Scenario

1. Application sends xml (in/out mep) over http/soap to servicemix
2. ServiceMix checks content via EIP ContentBasedRoutingRule
3. Routes the xml to HTTP JBI component
4. HTTP JBI component sends xml over HTTP/SOAP to web service
5. Web service returns output
6. servicemix returns output

Service mix Configuration


flow=seda

&lt;sm:executorFactory&gt;
&lt;bean
class="org.apache.servicemix.executors.impl.ExecutorFactoryImpl"&gt;
&lt;property name="defaultConfig"&gt;
&lt;bean class="org.apache.servicemix.executors.impl.ExecutorConfig"&gt;
&lt;property name="corePoolSize" value="180"/&gt;
&lt;property name="maximumPoolSize" value="-1"/&gt;
&lt;property name="queueSize" value="1024"/&gt;
&lt;property name="keepAliveTime" value="180000"/&gt;
&lt;/bean&gt;
&lt;/property&gt;
&lt;/bean&gt;
&lt;/sm:executorFactory&gt;

Issue


We are recieving 50 concurrent requests in service mix but service mix is
only sending a maximum of 15 concurrent requests to the web service.

Any clue where the issue is ?

We are going to try switching flow type to st instead of seda.
Have you tried adjusting the thread pools yet?

http://servicemix.apache.org/thread-pools.html

There's also some additional explanation that I provided on the thread
pool executor on the mailing list that is available here:

http://markmail.org/search/?q=servicemix+executor+bruce#query:servicemix%20executor%20bruce+page:1+mid:sxwofyw5r3s3627b+state:results

Bruce
--
perl -e 'print
unpack("u30","D0G)[EMAIL PROTECTED]&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/

Blog: http://bruceblog.org/



Had a look at the docmentation but still something i dont understand. If we
have 50 concurrent requests coming into service mix and my corepoolsize is
set to 180 and the maximum is set to -1 in the executor default config
wouldnt that be enough threads to handle 50 concurrent requests ?

Unless by using seda flow each individual request that is processed by
servicemix requires more than one thread ? Is that the case ?
Is there a basic rule of thumb for number of threads required to process a
single request, for example: requests * JBI components involved * flow type
constant

Would using a st flow instead of seda reduce the number of threads required
to process a individual request compared to seda ? If st flow is used is a
single thread used for the entire request ?

appreciate any clarification
If you are talking about 15 concurrent requsets going from HTTP component to external web service then I think it is to do with jetty HttpClient ThreadPool size which by default is 16 ( out of which one is timer thread and rest 15 are worker threads). so you might be seeing 15 request to web service.

If you use latest ServiceMix snapshot of ServiceMix 3.2 (or build your own from latest source) you can configure the threadpool size for jetty HttpClient by adding following line to component.properties file.

servicemix-http.jettyClientThreadPoolSize=<size you want>

Regards,

Ulhas Bhole


----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland

Reply via email to