My understanding is that it is used to keep connection between tomcat/IIS or tomcat/Apache open if they reside on different machines, it is not used to keep the browser/IIS or browser/Apache connection. And It cannot be used in Tomcat standalone server. Am I right?
My situation is:
Our company firewall/proxy server have a timeout limit, it will kill any idle connection of more than 5 minutes. Unfortunately some of the request take a long time to process, so the client-server connection will be dropped before the server can present the page. What I want is to configure Tomcat or Apache so that it can send out keep-alive packet while processing the long request, so the connection won't be killed by proxy.
The only thing I can find is socket_keepalive, but it doesn't solve the problem. Does anybody know if I can configure Apache or IIS to do the same thing?
I need to point out the keepalive I am talking here is not persistent connection, that is for multiple requests to share a same connection.
Thanks! BTW, we mainly use JSP, we cannot rewrite or redesign our code now since it is heavily depened on a third party package, so that is not an option.
Five minutes is a long time to keep an HTTP connedection alive. Often the browser will time out and close the connection if the server doesn't.
Have you considered breaking the functionality into it's own thread and returning immediately to a status page instead? You could then write a mechanism for the user to check back every so often to see if it's done or even send an email to the user when the process has completed.