Hi, That was an excellent message. Your approach is flawless. You can keep using your hack, which isn't that crude at all. You can keep using the 5.x Connector code by and large with 4.1.30 (though not earlier versions of Tomcat 4.1), it should be just fine. And I tend to agree than 10 as MAX_THREADS_MIN is too high: something like 2 or 3 seems reasonable to me. Please open a Bugzilla item asking for this to be modified, and I will address it. Thanks,
Yoav Shapira Millennium Research Informatics >-----Original Message----- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >Sent: Tuesday, August 03, 2004 5:30 PM >To: [EMAIL PROTECTED] >Subject: Tomcat 4.1.30 ThreadPool.adjustLimits > >I have several questions that apparently center around the >org.apache.tomcat.util.threads.ThreadPool class contained in the >tomcat-util.jar file included in the Tomcat V4.1.30 distribution. > >Background: > >Using V4.1.30 in a standalone, relatively minimal configuration with the >Coyote HTTP/1.1 Connector. Deployed on several hundred (ultimately several >thousand) UNIX servers of various flavors. Least common denominator server >types supporting only JVM 1.2.2 limit us to 4.x Tomcat. Tomcat used solely >for foreign system access to server data via specialized servlets in a >confined/controlled environment (not internet exposed). Resource >considerations require limiting Tomcat to a tiny fraction of it's >concurrent >connection capacity (primary function of servers is to host a vast load of >multi-user business management applications). What I'm after is limiting >to >a max of 4 concurrent connections on the "stock" configuration. > >Initially though I could simply set maxProcessors="5" and minProcessors="1" >(earlier experimentation suggested actual concurrent connections was one >less than maxProcessors value). I unfortunately misinterpreted the warning >message generated during startup, "WARNING: maxThreads setting (5) too low, >set to 10", to be a suggestion. I now understand this is a statement that >Tomcat (ThreadPool.adjustLimits() method logic, in particular) actually >reset the maxProcessors value to 10. > >Went looking for ThreadPool in V4.1.30 source (based on warning message >origin tags) without success, then remembered something about TC V4.1.30 >using TC V5.x Coyote connector. Then located what I believe to be the >operative logic in jakarta-tomcat-connectors portion of Tomcat V5.0.19 >source (version I happened to have handy). Sure enough, method >adjustLimits() forces maxThreads value (apparently set by digester logic >based on TC4.x.x maxProcessors) to MAX_THREADS_MIN (hardwired to 10 in >source) if value supplied in server.xml is less than that. > >I knocked off a copy of org.apache.tomcat.util.threads.ThreadPool, changed >MAX_THREADS_MIN to 2, compiled, and surgically deployed resulting classes >under server/classes (effectively overriding the ThreadPool class in >server/lib/tomcat-util.jar) on a test box. Appears to be behaving >reasonably, now limiting concurrent connections to that specified in >server.xml file. I know - crude hack - but I didn't have much recourse >without fielding something to front-end Tomcat. > >My questions: > >(1) Is there some other reason for this essentially arbitrary (upward) >adjustment of the maxProcessors/maxThreads value - beyond the rational >provided in the source commentary "... fix provides reasonable settings for >a single CPU with medium load."? > >(2) Is the ThreadPool source from Tomcat V5.0.19 the appropriate "version" >to use as I have outlined above? (It appeared to be the closest date match >to the Tomcat V4.1.30 release, but I couldn't find any specific references >to where the tomcat-util.jar file in V4.1.30 originated.) > >While my little "hack" appears to be working - I'm still testing the crap >out of it - would be nice to know if there is something I may have missed, >so any input from those intimate with V4.1.30 & V5.x logic would be most >appreciated. > >Regards, > >Jim Layer > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]