My setup is tomcat 5.5.17 + mod_jk 1.2.15 + httpd 2.2.2. I am using AJP1.3.
Every 2-3 days with no major load, tomcat throws the error: "SEVERE: All 
threads (200) are currently busy, waiting..."

I have been monitoring my tomcat TP-Processor thread behavior over extended 
time intervals and observe that:
- even when there is no activity on the server, several TP-Processor threads 
are in RUNNABLE state while few are in WAITING state
- RUNNABLE threads stack trace shows "java.lang.Thread.State: RUNNABLE at 
java.net.SocketInputStream.socketRead0(Native Method)..."
- WAITING thread stack trace shows "java.lang.Thread.State: WAITING on 
org.apache.tomcat.util.threads.threadpool$controlrunna...@53533c55"
- tomcat adds 4 new TP-Processor threads when a request comes in and it can 
find no WAITING threads

So I conclude that my tomcat is running out of threads due to many threads 
being in RUNNABLE state when actually they should be in WAITING state. Is that 
happening because of the socket_keepalive in my workers.properties shown below?
Why are threads added in bunches of 4 - is there any way to configure this?

My workers config is:

Worker...type=ajp13
Worker...cachesize=10
Worker...cache_timeout=600
Worker...socket_keepalive=1
Worker...recycle_timeout=300
 
Earlier posts related to this issue on the list seem to recommend tweaking:
- several timeouts
- JkOptions +DisableReuse

I am planning to do the following to resolve our problem:
- upgrade jk to latest version - e.g. 1.2.28
- replace recycle_timeout with connection_pool_timeout
- add connectionTimeout in server.xml
- add JkOptions +DisableReuse

Please let me know if this is okay or suggestions if any.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to