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]

Reply via email to