This is for an isapi app on apache 2.2 using the broken 416293 mod_isapi update on Windows XP.
I noticed a random but all to frequent (perhaps 1 or 2 or 3 for every few hundred http requests) error from ap_core_output_filter (about line 903 in core_filters.c). The error is an os 10054 “An existing connection was forcibly closed by the remote host”. At the same time, the client side would believe the server performed a premature socket close.
I’ve discovered that I can change the frequency of this error by manipulating the MaxKeepAliveRequests and KeepAliveTimeout parameters.
Regardless of the value of KeepAliveTimeout, if I set MaxKeepAliveRequests to 1 (ie no keep alive) the error occurs for almost 80% or 90% of the http requests
If I don’t set MaxKeepAliveRequests, which then uses the default value, by setting KeepAliveTimeout between 60 and 90 seconds, the error disappears.
My understanding of KeepAliveTimeout is that it plays with the socket linger option. What are the side effects of setting KeepAliveTimeout to a high value? What are the side effects of setting MaxKeepAliveRequests to a high value?
Thanks
Art
|