hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject HttpClient 4.2.6 : ManagedClientConnectionImpl way of checking stale connection and Performances
Date Sat, 15 Feb 2014 15:01:35 GMT
By default we disable retry but it can be controlled by a parameter.

Thanks for the info on ConnectionReuseStrategy, it will be a way to handle
these kind of issues.

Regards


On Sat, Feb 15, 2014 at 3:12 PM, Oleg Kalnichevski
<olegk@apache.org<javascript:_e(%7B%7D,'cvml','olegk@apache.org');>
> wrote:

> On Sat, 2014-02-15 at 14:46 +0100, Philippe Mouawad wrote:
> > Hello Oleg,
> > The problem is that is seems in this particular case, removing this check
> > it leads to 50% error.
> >
>
> What kind of HttpRequestRetryHandler implementation does JMeter 2.11
> use? Usually with the stale check disabled one should want to retry at
> least some requests automatically.
>
> > I could be explained by a max number of requests per connection setting,
> as
> > per their documentation:
> > - http://aws.amazon.com/articles/1904
> >
> > "Also, don't overuse a connection. Amazon S3 will accept up to 100
> requests
> > before it closes a connection (resulting in 'connection reset'). Rather
> > than having this happen, use a connection for 80-90 requests before
> closing
> > and re-opening a new connection."
> >
> > Is there by the way a configuration parameter in HttpClient to limit the
> > number of requests per connection ?
> >
>
> There is no parameter but one can use a custom ConnectionReuseStrategy
> to that effect
>
> ---
> ConnectionReuseStrategy reuseStrategy = new
> DefaultConnectionReuseStrategy() {
>
>     @Override
>     public boolean keepAlive(
>             final HttpResponse response, final HttpContext context) {
>         HttpConnection conn = (HttpConnection)
> context.getAttribute(HttpClientContext.HTTP_CONNECTION);
>         long count = conn.getMetrics().getRequestCount();
>         if (count >= 100) {
>             return false;
>         }
>         return super.keepAlive(response, context);
>     }
>
> };
> ---
>
> Hope this helps
>
> Oleg
>
> > Thanks
> > Regards
> > Philippe
> >
> >
> >
> > On Sat, Feb 15, 2014 at 12:49 PM, Oleg Kalnichevski <olegk@apache.org<javascript:_e(%7B%7D,'cvml','olegk@apache.org');>
> >wrote:
> >
> > > On Sat, 2014-02-15 at 11:23 +0100, Philippe Mouawad wrote:
> > > > Hello ,
> > > > yes that's it.
> > > >
> > > > regards
> > > >
> > >
> > > Then, I am not sure I understand the problem. The stale connection
> check
> > > is about trading off some performance for fewer i/o errors or visa
> > > versa.
> > >
> > > Oleg
> > >
> > > > On Saturday, February 15, 2014, Oleg Kalnichevski <
> > > oleg@ok2consulting.com<javascript:_e(%7B%7D,'cvml','oleg@ok2consulting.com');>
> >
> > > > wrote:
> > > >
> > > > >
> > > > > On Fri, 2014-02-14 at 15:42 +0100, Philippe Mouawad wrote:
> > > > > > Hello Oleg,
> > > > > > We set this configuration in JMeter 2.11, we got recently this
> bug
> > > report
> > > > > > related to this change:
> > > > > > https://issues.apache.org/bugzilla/show_bug.cgi?id=56119
> > > > > >
> > > > > > This issue seems to be faced by another person:
> > > > > > https://twitter.com/cfwhisperer/status/428278488349417472
> > > > > >
> > > > > > Regards
> > > > > > Philippe
> > > > > >
> > > > >
> > > > > Philippe
> > > > >
> > > > > I am not sure I remember the context. Is it about turning off stale
> > > > > connection checking?
> > > > >
> > > > > Oleg
> > > > >
> > > > > >
> > > > > > On Wed, Dec 11, 2013 at 9:50 AM, Oleg Kalnichevski <
> olegk@apache.org <javascript:_e(%7B%7D,'cvml','olegk@apache.org');>
> > > <javascript:;>>
> > > > > wrote:
> > > > > >
> > > > > > > On Tue, 2013-12-10 at 21:38 +0100, Philippe Mouawad wrote:
> > > > > > > > Hello Oleg,
> > > > > > > > Thanks for answer.
> > > > > > > > Wouldn't it be interesting to add some threshold or
delay
> between
> > > > > each
> > > > > > > > check instead of doing check on each request ?
> > > > > > > >
> > > > > > > > Regards
> > > > > > > > Philippe
> > > > > > > >
> > > > > > >
> > > > > > > Philippe
> > > > > > >
> > > > > > > I am not sure it is worth the trouble. In most circumstances
> the
> > > stale
> > > > > > > connection check should be turned off anyway.
> > > > > > >
> > > > > > > I think it just needs to be better documented.
> > > > > > >
> > > > > > > Oleg
> > > > > > >
> > > > > > > >
> > > > > > > > On Mon, Dec 9, 2013 at 11:59 AM, Oleg Kalnichevski
<
> > > olegk@apache.org <javascript:_e(%7B%7D,'cvml','olegk@apache.org');>
> <javascript:;>
> > > > > >
> > > > > > > wrote:
> > > > > > > >
> > > > > > > > > On Sun, 2013-12-08 at 21:32 +0100, Philippe Mouawad
wrote:
> > > > > > > > > > Hello,
> > > > > > > > > > Profiling JMeter, I noticed an important
number of
> > > > > > > SocketTimeoutException
> > > > > > > > > > being triggered without any impact on response
status.
> > > > > > > > > >
> > > > > > > > > > I investigated it a bit deeper and find
out it affected
> only
> > > > > > > HttpClient
> > > > > > > > > > implementations.
> > > > > > > > > > Looking a bit deeper, it is due to connection
stale check
> > > which
> > > > > is
> > > > > > > > > enabled
> > > > > > > > > > by default.
> > > > > > > > > > This check sets a timeout to 1ms , see :
> > > > > > > > > > -
> org.apache.http.impl.io.SocketInputBuffer#isDataAvailable
> > > > > > > > > > -
> org.apache.http.impl.AbstractHttpClientConnection#isStale
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Is this the only and best way to check for
stale
> connection ?
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Regards
> > > > > > > > > > Philippe
> > > > > > > > >
> > > > > > > > > Philippe
> > > > > > > > >
> > > > > > > > > I personally do not know of a different (better)
way of
> > > finding out
> > > > > > > > > whether or not a blocking connection is still
valid.
> > > > > > > > >
> > > > > > > > > Oleg
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > > > > > To unsubscribe, e-mail:
> > > httpclient-users-unsubscribe@hc.apache.org<javascript:_e(%7B%7D,'cvml','httpclient-users-unsubscribe@hc.apache.org');>
> <javascript:;>
> > > > > > > > > For additional commands, e-mail:
> > > > > httpclient-users-help@hc.apache.org<javascript:_e(%7B%7D,'cvml','httpclient-users-help@hc.apache.org');><javascript:;>
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > ---------------------------------------------------------------------
> > > > > > > To unsubscribe, e-mail:
> httpclient-users-unsubscribe@hc.apache.org<javascript:_e(%7B%7D,'cvml','httpclient-users-unsubscribe@hc.apache.org');>
> > > <javascript:;>
> > > > > > > For additional commands, e-mail:
> > > httpclient-users-help@hc.apache.org<javascript:_e(%7B%7D,'cvml','httpclient-users-help@hc.apache.org');>
> <javascript:;>
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org<javascript:_e(%7B%7D,'cvml','httpclient-users-unsubscribe@hc.apache.org');>
> > > <javascript:;>
> > > > > For additional commands, e-mail:
> httpclient-users-help@hc.apache.org<javascript:_e(%7B%7D,'cvml','httpclient-users-help@hc.apache.org');>
> > > <javascript:;>
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
> >
> >
>
>
>


-- 
Cordialement.
Philippe Mouawad.




-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message