I am using Jboss application server with embedded tomcat web server(Apache Tomcat/4.1.24-LE-jdk14) in our application. I am getting below mentioned exception very often. Please let me know why does this exception happen and the cause for it. Also please advice what can be the possible solution for this error. Please find the exception stack trace below: java.lang.RuntimeException: Read of HTTP Request POST parameters failed: Read timed out at org.apache.catalina.connector.HttpRequestBase.parseParameters (HttpRequestBase.java:692) at org.apache.catalina.connector.HttpRequestBase.getParameterNames (HttpRequestBase.java:750) at org.apache.catalina.connector.RequestFacade.getParameterNames (RequestFacade.java:176) at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1161) at org.apache.struts.action.RequestProcessor.processPopulate (RequestProcessor.java:821) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1480) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:524) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.valves.CertificatesValve.invoke (CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke (ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:641) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.connector.http.HttpProcessor.run (HttpProcessor.java:1151) at java.lang.Thread.run(Thread.java:534) 2005-11-21 15:16:27,258 [HttpProcessor[443][485]] DEBUG org.apache.struts.util.RequestUtils - Get module name for path /knFetchMemberNames.do 2005-11-21 15:16:27,259 [HttpProcessor[443][485]] DEBUG org.apache.struts.util.RequestUtils - Module name found: default 2005-11-21 15:16:27,259 [HttpProcessor[443][485]] DEBUG org.apache.struts.action.RequestProcessor - Processing a 'POST' for path '/knFetchMemberNames' 2005-11-21 15:16:27,259 [HttpProcessor[443][485]] DEBUG org.apache.struts.util.RequestUtils - Looking for ActionForm bean instance in scope 'session' under attribute key 'KnGroupForm'
Tomcat waits until the client has provided the number of bytes it said it would in the content length header. If the client doesn't provide all the data it promised, you will see this exception when Tomcat times out waiting for the data. This is a client/application problem not a Tomcat problem.
Thanks for the update. I wanted information on couple of things. 1. Cau you please tell what debug logs should we look for to see what was sent as a part of the header(i.e the number of bytes that the client promised to send in the content length header) 2. How many bytes did the client actually send 3. How long does the tomcat wait for the data, is it anything related to the connectionTimeout parameter value)
Bugzilla isn't a support forum. Please use the users@tomcat.apache.org list for questions like this.