Thanks Tim. out.flush() wasn't doing anything unless there was already 8KB in the buffer.
But, the JSP page directive helped: Before setting the JSP page directive, the pre-compiled .java file that Tomcat was creating had... pageContext = _jspxFactory.getPageContext(this, request, response, "ErrorPage.jsp", true, 8192, true); ...and now, with <[EMAIL PROTECTED] buffer="1kb"%>, it uses... pageContext = _jspxFactory.getPageContext(this, request, response, "ErrorPage.jsp", true, 1024, true); It looks like the buffer can only be specified in 1kb increments, but a 1KB keep-alive being sent every 30 seconds is better than an 8KB keep-alive. Is there a way to make the JSP page directive conditional? Basically, I only want to set the buffer to 1KB for certain users of my application. I tried... <% if (useSmallBuffer==true) { %><[EMAIL PROTECTED] buffer="1kb"%><% } %> ...but this doesn't work (can't mix directives and scripting elements). Any ideas? Thanks, Richard -----Original Message----- From: Tim Funk [mailto:[EMAIL PROTECTED] Sent: Tuesday, December 19, 2006 6:53 AM To: Tomcat Users List Subject: Re: On Tomcat 5.5.9, can't flush the buffer or reduce buffer size < 8192 JSP's also have a buffer too. To make it smaller or eliminate it: <[EMAIL PROTECTED] buffer='none'%> or use out.flush() instead or response.flushBuffer() -Tim Richard Mundell wrote: > No one replied, so in the hope someone might have the answer to this, > here's a repost... :-) > > > -----Original Message----- > From: Richard Mundell [mailto:[EMAIL PROTECTED] > Sent: Friday, December 15, 2006 3:37 PM > To: users@tomcat.apache.org > Subject: On Tomcat 5.5.9, can't flush the buffer or reduce buffer size > < > 8192 > > I'm trying to work around a timeout problem which one of my user's > proxy server has. The proxy's timeout is set to 1 minute. Should it > not receive any HTTP traffic for 1 minute it disconnects. > > One of my JSPs takes >1 minute to perform processing and return results. > > What I'm trying to do is... > > 1) Flush out HTTP headers immediately > 2) (Start my database operation which takes >1 minute) > 3) Write out and flush to the client a HTML comment (<!--hello-->) > every 10 seconds while the database operation completes to stop the > proxy timing out > 4) (Database operation completes) > 5) Write out results > > By calling response.flushBuffer() immediately at the top of my JSP, > the HTTP headers are being written out to the TCP stream. So far, so good. > > My code then, every 10 seconds, does an out.print("<!-- hello -->") > and a response.flushBuffer(). > > By using a packet sniffer I can see that although the headers get > output to the TCP stream, the "body" of the HTTP response does not get > written out until the very end of the execution of the JSP. The only > way I can get the buffer to flush is if I do an out.print with a > string greater than 8192 characters (the default size of the buffer). > > Note that I also tried out.flush() and that doesn't work either. > > As a workaround I tried to set the buffer size artificially low, but > this call is being ignored: > > System.out.println(response.getBufferSize()); > // buffer size of 8192 printed to stdout > > response.setBufferSize(100); > // buffer size should now be 100, right? > > System.out.println(response.getBufferSize()); > // buffer size of 8192 still printed to stdout > > setBufferSize only works if I set the buffer > 8192. > > I can't find any reference in the Tomcat spec to this being a > deliberate behavior, or a hard-coded minimum? > > Anyone got any ideas of where I'm going wrong, or how I might get this > to work in Tomcat 5.5.9? (Note that I'm stuck at Tomcat 5.5.9 because > the later > (Apache) HTTPS implementations don't work reliably in our environment). --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]