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