Dante - Take a real close look at the application running in Tomcat. I've had similar issues where Tomcat was suddenly using all configured request threads, but they were all waiting on something else to happen. I found the problem to be a minor defect with the DB pooling code from the DB vendor that sometimes causes the pool to hang. The vendor had a fix that solved the problem, for the most part. It took some serious scouring of the threads using jconsole to see where the problem really was. Following the waiting tree really helped identify it. It could very well be a defect in the code running under Tomcat, and not Tomcat's code.
> -----Original Message----- > From: Dante Bell [mailto:dantepasqu...@cocoanet.us] > Sent: Friday, August 05, 2011 9:34 AM > To: users@tomcat.apache.org > Subject: Urgent: Tomcat 6.0.20 on Solaris 10 Reaches max threads and is > non responsive > > Hi, > > I'm running out of ideas on what to try for this customer. Their load > tests show that Tomcat is getting to a point where it no longer > services > requests. Thread dumps show most threads in a wait state, but some are > runnable. I'm suspecting GC is the issue, but in analyzing the logs it > shows the longest pause was 15 seconds, but that only happened once, > and > most of the stats look OK to me. > > Details can be found on my blog: http://wp.me/plPvN-ai > > Here's some info: > > *Apache:* Apache HTTP Server Version 2.2 -- prefork with mpm > *Tomcat:* 6.0.20 > *JK Connector:* Same as whatever is bundled in with Apache 2.2 (from > customer) > *Solaris* Solaris 10 10/09 s10s_u8wos_08a SPARC > > Workers.Properties: > > |# Define 1 real worker using ajp13| > |worker.list=worker1,worker2,worker3,worker4| > |worker.maintain=10| > > |# Set properties for worker1 (ajp13)| > |worker.worker1.||type||=ajp13| > |worker.worker1.host=localhost| > |worker.worker1.port=8019| > |worker.worker1.lbfactor=1| > |worker.worker1.connection_pool_size=1| > |worker.worker1.connection_pool_timeout=10| > |worker.worker1.socket_keepalive=1| > |worker.worker1.socket_timeout=300| > |worker.worker1.cache_timeout=10| > > |# Set properties for worker2 (ajp13)| > |worker.worker2.||type||=ajp13| > |worker.worker2.host=localhost| > |worker.worker2.port=8019| > |worker.worker2.lbfactor=1| > |worker.worker2.connection_pool_size=1| > |worker.worker2.connection_pool_timeout=10| > |worker.worker2.socket_keepalive=1| > |worker.worker2.socket_timeout=300| > |worker.worker2.cache_timeout=10| > > |# Set properties for worker3 (ajp13)| > |worker.worker3.||type||=ajp13| > |worker.worker3.host=localhost| > |worker.worker3.port=8019| > |worker.worker3.lbfactor=1| > |worker.worker3.connection_pool_size=1| > |worker.worker3.connection_pool_timeout=10| > |worker.worker3.socket_keepalive=1| > |worker.worker3.socket_timeout=300| > |worker.worker3.cache_timeout=10| > > |# Set properties for worker4 (ajp13)| > |worker.worker4.||type||=ajp13| > |worker.worker4.host=localhost| > |worker.worker4.port=8019| > |worker.worker4.lbfactor=1| > |worker.worker4.connection_pool_size=1| > |worker.worker4.connection_pool_timeout=10| > |worker.worker4.socket_keepalive=1| > |worker.worker4.socket_timeout=300| > |worker.worker4.cache_timeout=10 > > | __________________________________________________________________________ Confidentiality Notice: This Transmission (including any attachments) may contain information that is privileged, confidential, and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient you are hereby notified that any dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this transmission in error, please immediately reply to the sender or telephone (512) 343-9100 and delete this transmission from your system. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org