You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Hans Wichman <ha...@trimm.nl> on 2004/06/17 13:35:35 UTC
hanging application and broken pipes
Hi,
I am looking for some advice on tackling the following problem.
We have to maintain an application not written by us, and about three times
a day the server hangs.
We are using tomcat 4.1.29, oracle 8 and use connection pooling.
Upon calling a certain method: readDidactischTypes() (don't mind the
language mixing), the log should print:
2004-06-07 00:04:32 kwaliteitskaart.SchoolsBean[4402]: readDidactischTypes()
2004-06-07 00:04:32 kwaliteitskaart.SchoolsBean[4416]: SELECT DISTINCT
vis.vis_code AS dedactTypeCode, vis.vis_omschrijving AS dedactTypeName FROM
ins_visies vis ORDER BY vis.vis_omschrijving
The log query action is the first thing printed AFTER getting a connection
from the pool, in other words:
public DidactischTypeBean readDidactischTypes()
{
log("readDidactischTypes()", 4402);
DidactischTypeBean didactischTypeBean = null;
DidactischTypeDetailsBean didactischTypeDetailsBean = null;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
int didactCounter = 0;
int rowCount = 0;
try {
didactischTypeBean = new DidactischTypeBean();
conn = getConnection();
log(SQL_all_didact, 4416);
(don't mind the cumbersome logger either ;-)).
Now sometimes during the day, the following happens:
2004-06-07 13:34:50 kwaliteitskaart.SchoolsBean[4402]: readDidactischTypes()
2004-06-07 13:34:51 kwaliteitskaart.SchoolsBean[4402]: readDidactischTypes()
... and this about 20 times more.....
2004-06-07 13:37:21 kwaliteitskaart.SchoolsBean[4402]: readDidactischTypes()
2004-06-07 13:37:31 kwaliteitskaart.SchoolsBean[4402]: readDidactischTypes()
2004-06-07 13:37:33 ApplicationDispatcher[] Servlet.service() for servlet
Stream threw exception
ClientAbortException: java.io.IOException: Broken pipe
at
org.apache.coyote.tomcat4.OutputBuffer.realWriteBytes(OutputBuffer.java:404)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:428)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:348)
at org.apache.coyote.tomcat4.OutputBuffer.writeBytes(OutputBuffer.java:432)
at org.apache.coyote.tomcat4.OutputBuffer.write(OutputBuffer.java:419)
at
org.apache.coyote.tomcat4.CoyoteOutputStream.write(CoyoteOutputStream.java:108)
at
com.mediasurface.client.servlets.StreamServlet.doGet(StreamServlet.java:365)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
--truncated--
and lower:
2004-06-07 13:49:55 StandardHost[localhost]: Removing web application at
context path /ms
2004-06-07 13:49:55 StandardHost[localhost]: Removing web application at
context path /cmc
2004-06-07 13:49:55 StandardHost[localhost]: Removing web application at
context path
2004-06-07 13:49:57 StandardWrapper[:jsp]: Waiting for 276 instance(s) to
be deallocated
2004-06-07 13:49:58 StandardWrapper[:MediasurfaceController]: Waiting for
72 instance(s) to be deallocated
2004-06-07 13:49:58 StandardWrapper[:PdfServlet]: Waiting for 1 instance(s)
to be deallocated
My questions are:
- does anybody know how to identify different clients in the log, can I
print an ip for example after each timestamp?
- does anybody know what the 'waiting for 276 instances' means, does it
mean I have 276 concurrent clients?
- did anyone experience a similar problem and found a solution ;-)?
- does anyone have any pointers of how to detect where the application or
the server goes wrong?
The application uses jsp's and almost no servlets except a pdf and
fopservlet. It does use thirdparty libs such as classes12.jar for oracle
and the commons-dbcp
Thank you very much in advance for any advice you can offer.
Hans
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org