I think you should not use synchronized sections / mutex to get informations from client. Common policy in using mutex is to keep them as little time as possible and do only the critical work inside the exclusive part.This is to prevent long waiting queues and ... things like that :)
Ajit Narayanan wrote:
You are right!
The code does implement a mutex() part. But the problem lasted for 7 days
untill the server was restarted manually.

There were about 15 threads which were found to be in locked state.And for
all these days tomcat was not accepting any requests.

Do you think Dev that this could have happened under the conditions that you
have mentioned .


And the following message was found in the catalina.out log file:

Dec 7, 2004 3:44:37 PM org.apache.tomcat.util.threads.ThreadPool logFull
                SEVERE: All threads are busy, waiting. Please increase
maxThreads or check the servlet status75 75







-----Original Message-----
From: David Delbecq [mailto:[EMAIL PROTECTED] Sent: Thursday, May 18, 2006 2:35 PM
To: Tomcat Users List
Subject: Re: FW: tomcat hangs with error msg-"All Threads are Busy....."

ok, i bet then you problem is in this :D:

au.com.AdmTech.incontrol.secureproxy.SecureProxy.doGet(SecureProxy.java:298)
        - locked <0xf227ea88> (a
au.com.alcatel.incontrol.secureproxy.SecureProxy)
        at
au.com.AdMtech.incontrol.secureproxy.SecureProxy.doPost(SecureProxy.java:435
)

it uses a lock to a ressource or there is a synchronized method in the way.
As such, until one process has finished, others can't start working. This is bad :)
As a consequence, if one of clients is not responding but not sending data
to the wire, it locks everything.
In normal course of operation, you end up with a connection closed exception
in socketinputstream.read() but it takes time to get them. and the delay is
platform dependant. if client abruptly close, TCP/IP protocol has no
information  about this except for a very long delay.

Maybe some protocol level tunings like keep alives might help :/

Anyway, this has nothing to do with GC :)

Ajit Narayanan wrote:
Thanx for ur interest Dav.I am fairly new to java and tomcat programming so I am bit low on debugging these.

Yes,I do have some of the data from the dumps, I don't know whether these will be of any help or not but this what I have.This happened on live about 7 months ago and it has been reopened on cux demand ,a workaround has been patched where in the socket gets realesed after some 90- secs.The following dump has been taken before this workaround:

"Thread-540" daemon prio=5 tid=0x0048b9e0 nid=0x33a runnable [ee47f000..ee4819a8]
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(Unknown Source)
        at
org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.
java:7
77)
        at
org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.do
Read(I
nternalInputBuffer.java:807)
        at
org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityIn
putFil
ter.java:158)
        at
org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffe
r.java
:742)
        at org.apache.coyote.Request.doRead(Request.java:431)
        at
org.apache.coyote.tomcat4.CoyoteInputStream.readBytes(CoyoteInputStrea
m.java
:199)
        at

org.apache.coyote.tomcat4.CoyoteInputStream.read(CoyoteInputStream.java:156)
        at
org.apache.coyote.tomcat4.CoyoteRequest.readPostBody(CoyoteRequest.jav
a:1983
)
        at
org.apache.coyote.tomcat4.CoyoteRequest.parseRequestParameters(CoyoteR
equest
.java:1965)
        at

org.apache.coyote.tomcat4.CoyoteRequest.getParameter(CoyoteRequest.java:911)
        at
org.apache.coyote.tomcat4.CoyoteRequestFacade.getParameter(CoyoteReque
stFaca
de.java:178)
        at

au.com.AdmTech.incontrol.secureproxy.SecureProxy.doGet(SecureProxy.java:298)
        - locked <0xf227ea88> (a
au.com.alcatel.incontrol.secureproxy.SecureProxy)
        at
au.com.AdMtech.incontrol.secureproxy.SecureProxy.doPost(SecureProxy.ja
va:435
)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

And there are 71 threads waiting to lock <0xf227ea88>:

"- waiting to lock <0xf227ea88>

Apart from what you suggested can this be a problem of compatibility between tomcat-JDK and the POSIX lib of solaris? Or can it be that the gc is not able to execute as generally the load on this proxy is very high leading to such a problem.

Thanks and regards,
Ajit.
-----Original Message-----
From: David Delbecq [mailto:[EMAIL PROTECTED]
Sent: Thursday, May 18, 2006 1:32 PM
To: Tomcat Users List
Subject: Re: FW: tomcat hangs with error msg-"All Threads are Busy....."

This most probably means there is deadlock somewhere in your webapplication, leading to HTTP threads not being released because they are stuck waiting for something before sending response to a user
that dropped hours agos.
To get clues on where your problem is when this happens, send signal SIGQUIT to tomcat process, it will force the sun JVM to dump all threads
stacks.
Regards,
David Delbecq
Ajit Narayanan wrote:
hi, My tomcat 4.1.27 is running on sun Solaris 8 box but ocassionally it hangs out giving the error " All threads are busy, waiting. Please increase maxThreads or check the servlet status75". I have tried increasing the no of threads but its not working I guess. The application code looks clean but can there be any compatibility issues (of tomcat and JDK) with the solaris POSIX thread libraries?? If there is any problem then what can be done to resolve this problem. One more thing restarting the tomcat manually resolves the
problem.
regards,
Ajit.


=====================================================================
= ======================================================

Tech Mahindra, formerly Mahindra-British Telecom.
Disclaimer:


The contents of this E-mail (including the contents of the enclosure(s) or
attachment(s) if any) are privileged and confidential material of Tech Mahindra and should not be disclosed to, used by or copied in any manner by anyone other than the intended addressee(s). In case you are not the desired addressee, you should delete this message and/or re-direct
it to the sender.
The views expressed in this E-mail message (including the enclosure(s) or attachment(s) if any) are those of the individual sender, except where the sender expressly, and with authority, states them to be the views of Tech Mahindra.
This e-mail message including attachment/(s), if any, is believed to be
free of any virus. However, it is the responsibility of the recipient to ensure that it is virus free and Tech Mahindra is not responsible for any loss or damage arising in any way from its use.
=====================================================================
= ======================================================
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


======================================================================
======================================================

Tech Mahindra, formerly Mahindra-British Telecom.
Disclaimer:


The contents of this E-mail (including the contents of the enclosure(s) or
attachment(s) if any) are privileged and confidential material of Tech
Mahindra and should not be disclosed to, used by or copied in any manner by
anyone other than the intended addressee(s). In case you are not the desired
addressee, you should delete this message and/or re-direct it to the sender.
The views expressed in this E-mail message (including the enclosure(s) or
attachment(s) if any) are those of the individual sender, except where the
sender expressly, and with authority, states them to be the views of Tech
Mahindra.
This e-mail message including attachment/(s), if any, is believed to be
free of any virus. However, it is the responsibility of the recipient to
ensure that it is virus free and Tech Mahindra is not responsible for any
loss or damage arising in any way from its use.
======================================================================
======================================================

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


============================================================================================================================

Tech Mahindra, formerly Mahindra-British Telecom.
Disclaimer:


The contents of this E-mail (including the contents of the enclosure(s) or 
attachment(s) if any) are privileged and confidential material of Tech Mahindra 
and should not be disclosed to, used by or copied in any manner by anyone other 
than the intended addressee(s). In case you are not the desired addressee, you 
should delete this message and/or re-direct it to the sender. The views 
expressed in this E-mail message (including the enclosure(s) or attachment(s) 
if any) are those of the individual sender, except where the sender expressly, 
and with authority, states them to be the views of Tech Mahindra.


This e-mail message including attachment/(s), if any, is believed to be free of 
any virus. However, it is the responsibility of the recipient to ensure that it 
is virus free and Tech Mahindra is not responsible for any loss or damage 
arising in any way from its use.

============================================================================================================================

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to