Hello,
I'm sorry for bumping such an old thread but we found it while investigating a nasty problem with SWA not working about every 10 days, so the issue still seems to exist. And since we have quite a few SWA users, this is becoming quite an annoyance. The problem has been there in all recent versions (11.4.4 by now), no update seems to have improved this.
Here is the error (catalina.log) that seems to cause this. After this there are lots of subsequent Tomcat and SIS errors and SWA as well as SAC are unresponsive.
Code: Select all
04.08.2009 16:25:57 org.apache.tomcat.util.threads.ThreadPool logFull
SCHWERWIEGEND: All threads (500) are currently busy, waiting. Increase maxThreads (500) or check the servlet status
04.08.2009 16:35:02 org.apache.jk.common.ChannelSocket processConnection
WARNUNG: processCallbacks status 2
04.08.2009 16:35:06 org.apache.jk.common.ChannelSocket processConnection
WARNUNG: processCallbacks status 2
04.08.2009 16:35:06 org.apache.jk.core.MsgContext action
WARNUNG: Unable to send headers
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at org.apache.jk.common.ChannelSocket.send(ChannelSocket.java:537)
at org.apache.jk.common.JkInputStream.appendHead(JkInputStream.java:323)
at org.apache.jk.core.MsgContext.action(MsgContext.java:267)
at org.apache.coyote.Response.action(Response.java:183)
at org.apache.coyote.Response.sendHeaders(Response.java:379)
at org.apache.jk.common.JkInputStream.doWrite(JkInputStream.java:141)
at org.apache.coyote.Response.doWrite(Response.java:560)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(Unknown Source)
at sun.nio.cs.StreamEncoder.flush(Unknown Source)
at java.io.OutputStreamWriter.flush(Unknown Source)
at com.sun.org.apache.xml.internal.serialize.Printer.flush(Unknown Source)
at com.sun.org.apache.xml.internal.serialize.XMLSerializer.endElementIO(Unknown Source)
at com.sun.org.apache.xml.internal.serialize.XMLSerializer.serializeElement(Unknown Source)
at com.sun.org.apache.xml.internal.serialize.BaseMarkupSerializer.serializeNode(Unknown Source)
at com.sun.org.apache.xml.internal.serialize.BaseMarkupSerializer.serializeNode(Unknown Source)
at com.sun.org.apache.xml.internal.serialize.BaseMarkupSerializer.serialize(Unknown Source)
at com.scalix.sac.res.servlet.RESDispatcherServlet.sendResponse(RESDispatcherServlet.java:469)
at com.scalix.sac.res.servlet.RESDispatcherServlet.doPost(RESDispatcherServlet.java:248)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
We have already tried to set appropriate values for IDX_MAXLOAD and IDX_MINLOAD but to no avail. Also I'm not sure if increasing the maxThreads will help since the default value seems to have increased a lot already since this thread was started and the2nd doesn't seem to have been successful with that either.
However we will try to send a QUIT signal to the process the next time this happens and post the resulting information if it can help.
Can anyone suggest anything else we might do?