I am trying to port an application over to Tomcat v 4.1.12 which has worked
fine for two years running in WebSphere on an iSeries. The JSPs were at the
.91 level. I have updated them to the 1.2 level. In addition, I have
installed the tomcat-util.jar from 4.1.14 to fix the erroneous ssl debug
messaging. From the user’s perspective everything looks the same. On the
server side though, I seem to have a runaway thread problem. The Tomcat
manager app shows the number of active sessions to be anywhere between 400
and 700 during the day, dwindling to a few dozen at night. (Incidentally,
the session count is always in one group: the 30-40 minute one - I expected
a breakdown in 10 minute intervals). But the thread count just keeps rising.
When the count reaches the maxProcessors limit a message, “[INFO]ThreadPool
- -All threads are busy, waiting. Please increase maxThreads or check the
servlet status” appears in the log. I have tried “suggesting” garbage
collection to the JVM at various times but to no avail.
Here are the <Connector> definitions in use:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="80" minProcessors="5" maxProcessors="2500"
enableLookups="true" redirectPort="443"
acceptCount="25" debug="0" connectionTimeout="20000"
useURIValidationHack="false" />
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="443" minProcessors="25" maxProcessors="2500"
enableLookups="true"
acceptCount="25" debug="0" scheme="https" secure="true"
useURIValidationHack="false">
<Factory
className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
clientAuth="false" keystoreFile="**filename**"
keystorePass="**password**" keystoreType="**type**"
protocol="TLS"/>
</Connector>
(There is also the standard Coyote/JK2 AJP 1.3 Connector on 8009 but it
looks like I don't need that as I'm using Tomcat as a standalone server)
Here are my questions:
Are there any known issues with Tomcat and excessive thread counts?
(Grasping at straws here I know. I have not found any other relevant
reference to Tomcat having thread issues like these, yet the same Java code
has served well for two years.)
Could the lack of a breakdown list in the /manager/sessions output be a
symptom of a thread problem or is it just a newbie configuration error?
Another item that might be an issue is persistent sessions. I don’t want
them. I invalidate() the session when a user logs out. To that end I have
included the following within each <context> group:
<Manager
className="org.apache.catalina.session.PersistentManager"
debug="0"
saveOnRestart="false"
maxActiveSessions="-1"
minIdleSwap="1800"
maxIdleSwap="-1"
maxIdleBackup="-1">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>
(I have also used –1 for the minIdleSwap. I changed it to 1800 to try and
keep the sessions in memory in case that was part of the problem.) Is this
the right approach to take? I’m concerned that something is wrong here
because if I end Tomcat and restart it the cpu usage goes from an average of
6% to 40+%. A second restart puts it up to 99%. The system maintains these
rates until I switch to another server (At least the pages still serve fine
though).
Lastly, in the event that WebSphere has just been covering my tracks well, I
would also welcome suggestions of Java discussion lists anyone has had
success with where I could post some particulars regarding our multithreaded
processing.
Thanks in advance!
Mark Walker
_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*.
http://join.msn.com/?page=features/featuredemail
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>