On 12.06.2009 00:22, Brian Harper wrote:
> I've been trying to locate the source of an issue we've encountered
> periodically, and am hoping to find some enlightenment here. The issue
> is that we're seeing periodic slow responses - in some cases as long as
> 30-40 seconds for servlet requests that normally come in well under a
> second. In troubleshooting the problem, I've traced the source to the
> first time that our servlet makes a call to getParameter on the
> HttpServletRequest. Our servlet often handles very large - as much as
> 1MB or so - post requests, with a great deal of JSON form data being
> passed up from the client. Even so, it doesn't seem like parsing the
> request should take anywhere this long. 
> 
> Some background:
> - We're using Tomcat 5.5.26 fronted by Apache 2.0 using the mod_jk
> connector.
> - We have multiple Tomcat instances in our cluster, but the slow
> responses occur on each of them with roughly the same frequency.
> - Requests are via SSL, with the SSL handshake handled by a load
> balancer.
> - The slow requests are all POST requests
> - Requests are all handled by a single servlet
> 
> Questions:
> 1. When is my servlet instantiated by Tomcat and its doPost method
> called? Does this happen before the entire body of the request has been
> received? In which case perhaps the delays are simply due to slow client
> connections?
> 2. What is Tomcat doing when the first call to getParameter is made?
> What kind of parsing does it have to do to respond?
> 3. Any ideas why we'd see such long response times on occasion, but not
> consistently? If it had something to do with the Apache or mod_jk
> config, I'd have expected that the request wouldn't have been hanging on
> the getParameter call, it would have been hung up before my servlet was
> ever invoked.
> 
> Any help would be greatly appreciated. 

If you can reproduce on a test system, or your site is low traffic, you
could set JkLogLevel to debug. Thsi will log all packets forwarded
betwenn httpd and Tomcat, so you might get an idea, whether the pause
happens inside Tomcat/your webapp or maybe between client and httpd.
Beware that JkLogLevel debug will produce huge amounts of output.

Regards,

Rainer

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to