Forum Discussion
Kenny_Lussier_5
Jun 24, 2011Nimbostratus
Hoolio,
The problem is that when a request comes comes in, it can take a minute, maybe two, for the backend tomcat to process the request, do what it needs to (I'm being intentionally vague about what our application does), and send a response. If I set the tcp idle timeout to 15 seconds in the TCP profile, then the connection can get closed before the response is sent (TCP doesn't know what state HTTP is in). If I set the timeout to 300 seconds on the request, then longer processing times are covered. However, if the client doesn't close the connection because they use something like releaseConnection() instead of closeConnection() in their client code, then the connection stays open but idle. Tomcat cleans up idle threads by killing them off. This is configurable, and our application closes after 60 seconds of HTTP idle time. Tomcat, unlike the LTM, is aware that an http response has been sent, and the transaction is complete, and it starts the clock when the response is sent. By setting the timeout to 15 seconds on every time the HTTP_RESPONSE event is triggered, the LTM becomes aware of the HTTP state, not just the TCP state.
Thanks,
Kenny