Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
Unknown
Description
currently when we create the ahc RequestConfig we set the socketTimeout as
setSocketTimeout((int) csPolicy.getReceiveTimeout()
this cause the created http connection controlled by the socket level timeout, that said, if there's no data on the socket in a certain time, the connection would be closed, this overrule the TTL value of a connection, which means the connection timeToLive can't be managed by a connectionPoolManager, this is really painful for heavy loaded client request as we want the connectionPoolManager to manage the connection so that we could reuse the connection.
Fortunately in AsyncHTTPConduit
protected synchronized HttpResponse getHttpResponse()
we already handle the timeout at application level so that we needn't set that at socket level, so that let the connectionPoolManager can decide the connection TTL