If you have maxThreads=100 and you create a filter which blocks A if 
threadRunningA=10 and blocks B if threadsRunningB=90 than you can tune it the 
way you want it to be without seeing TooManyThreads errors from Tomcat. Or make 
it 9 vs. 89 to be safe.

Still it doesn't solve you real problem about not being able to deliver enough 
performance to handle the total load. Which is probably solvable by profiling 
your application or running a cluster or splitting the services over more 
machines.

Ronald.


Op maandag, 29 juni 2009 15:44 schreef prashant sharma :>
Thanks for your response Ronald!

Won't a filter be a part of the thread pool? I mean every incoming request would create a new thread and filter would be invoked on this new thread ...right?

The solution that I am looking for is to partition the thread pool into 2 parts One that serves the webpage requests and the other that is allocated to the internal processing of the web application.

Thanks! Prashant

From: Ronald Klop <ronald-mailingl...@base.nl>
To: Tomcat Users List <users@tomcat.apache.org>
Cc: prashant sharma <psharma_...@yahoo.com>
Sent: Monday, June 29, 2009 4:57:53 AM
Subject: Re: splitting thread pool

You can create a filter or run on separate Tomcat instances.

NB: You are not solving the cause, but the effect. You don't have enough 
threads or cpu-power to handle the total load.

Ronald.


Op maandag, 29 juni 2009 07:12 schreef prashant sharma :

Hi,

I have the following attributes in the "server.xml" file:

<Connector port="80"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" />

The web application that I am working on exposes many webservices, which are invoked from 
other applications. The problem I am facing is that when my application gets a lot of 
webservice requests, it reaches the limit of "maxThreads". After this limit is 
reached I am not able to open the webpage for my web application.

Is there any way to configure my web application such that I have a separate 
quota of threads for webpage access and a separate quota for other types of 
accesses like webservice requests?

Thanks!
Prashant







 

Reply via email to