Hi ... Thanks for your hint, but I think this also didn't work for us ...
You wrote like there could be a problem with the jdbc driver. Could you explain that in more detail? Do you use a connection pool? If yes, which one? Currently, we are using a connection pool which has been made from us long time ago which uses the jdbc-thin connections to the database. We are think about to change to the Oracle connection pool or to the Tomcat connection pool. Kind Regards Thomas Konrath -----Ursprüngliche Nachricht----- Von: Mirek Kopriva [mailto:[EMAIL PROTECTED] Gesendet: Dienstag, 06. Dezember 2005 20:24 An: Tomcat Users List Betreff: Re: Critical problem with Tomcat worker threads Hi, We are experiencing similar problem. Just the Thread gets stuck for random period time (between 1 and 15 minutes) after also random period of time. For some reason its always in jdbc driver. Typicaly on the pre-production environment, never on test, developement machines. We are using mod_jk, tomcat 5.5.12 and jdk 5.0_b5. RedHat ES 4. Anyway try this thread and let us know when you fix your problem. Didn't work for us though. http://forum.java.sun.com/thread.jspa?threadID=580350 Regards, mk On 12/6/05, Konrath Thomas <[EMAIL PROTECTED]> wrote: > > Hi . > > > > We have a strange problem with out Tomcat server. Sometime (and really > just sometimes) Tomcat opens a lot of threads until the maximum number > of Tomcat worker processes is reached and the users cannot do > anything. > > > > We have made a Java Stack Dump to get a clue, what is going on in the > threads. > > > > After a short analyse of several stack dumps I encountered the > following > behaviour: > > > > When a thread has finished his request from the user it seems that he > is going back to the state, where he waits for the next user request > (see stack dump below). > > 1. java.net.SocketInputStream:socketRead0 > 2. java.net.SocketInputStream:read(SocketInputStream.java:129) > 3. java.io.BufferedInputStream:fill(BufferedInputStream.java:183) > 4. java.io.BufferedInputStream:read1(BufferedInputStream.java:222) > 5. java.io.BufferedInputStream:read(BufferedInputStream.java:277) > 6. locked-->java.io.BufferedInputStream(0x5773e070) > 7. org.apache.jk.common.ChannelSocket:read(ChannelSocket.java:598) > 8. > org.apache.jk.common.ChannelSocket:receive(ChannelSocket.java:535) > 9. > org.apache.jk.common.ChannelSocket:processConnection(ChannelSocket.jav > a: > 663) > 10. > org.apache.jk.common.SocketConnection:runIt(ChannelSocket.java:866) > 11. > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable:run(ThreadPool > .java:683) > 12. java.lang.Thread:run(Thread.java:534) > > Question: What does this "locked" mean? Is this thread really locked > or is he just waiting for something? If he is locked, why? > > > > The thread remains there e very long time, although we are sure, that > there are some user request's waiting to process at the server. > > After some time the thread comes to another state, which seems to me > like a clean up from the Tomcat server (see stack dump below) > > > > 1. java.lang.Object:wait > 2. waiting > on-->org.apache.tomcat.util.threads.ThreadPool$ControlRunnable(0x52a4d > on-->94 > 0) > 3. java.lang.Object:wait(Object.java:429) > 4. > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable:run(ThreadPo > ol > .java:655) > 5. > locked-->org.apache.tomcat.util.threads.ThreadPool$ControlRunnable(0x5 > locked-->2a > 4d940) > 6. java.lang.Thread:run(Thread.java:534) > > > > We have configured our Tomcat to remove worker threads after 60 > seconds idle time. > > > > Question: Is this correct? > > > > > > We use an Apache server and use a mod_jk 2 / AJP module do forward the > user requests to the Tomcat server and returning the response > (configuration in the server.xml listed below). > > > > <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 --> > > <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" > > port="8017" minProcessors="5" maxProcessors="100" > > enableLookups="false" redirectPort="8443" > > acceptCount="10" debug="0" connectionTimeout="60000" > > useURIValidationHack="false" > > > protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/> > > > > > > > > Question: > > Could it be that the Apache or Tomcat doesn't clean up the connections > between them so that they cannot reuse a connection? > > Does anyone have encountered a similar problem? > > How can I solve this problem? > > > > > > We use: > > Apache 2 > > Jakarta Tomcat 4.1.31 > j2sdk 1.4.2_06 > Suse Linux Enterprise Server 8 > > > > > > Thanks for any help, > > > > kind regards > > > > DI(FH) Thomas Konrath > > unycom IT Services GmbH > > Solutions > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]