You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by Oleg Kalnichevski <ol...@apache.org> on 2006/09/18 19:16:11 UTC
RE: Using a connection directly from
theMultiThreadedHttpConnectionManager
On Mon, 2006-09-18 at 09:37 -0400, Mark Claassen wrote:
> Thanks for your help. My somewhat obvious follow-up question is: Can I
> control this timeout? It doesn't look like HttpConnectionManagerParams has
> a property for this. The only timeouts that are mentioned explicitly is the
> connection timeout and the socket timeout (and the Linger I guess, if you
> count this).
Mark,
The connection manager timeout is set at the agent (HttpClient) level.
The http.connection-manager.timeout parameter is your friend.
> While it is blocked, will PostMethod.abort() unblock it?
>
Unfortunately not. This is a known limitation of HttpClient 3.x due to
be resolved in HttpClient 4.0
https://issues.apache.org/jira/browse/HTTPCLIENT-475
Oleg
> Mark
>
>
>
> -----Original Message-----
> From: Oleg Kalnichevski [mailto:olegk@apache.org]
> Sent: Sunday, September 17, 2006 2:14 PM
> To: HttpClient User Discussion
> Subject: Re: Using a connection directly from
> theMultiThreadedHttpConnectionManager
>
> On Fri, 2006-09-15 at 08:49 -0400, Mark Claassen wrote:
> > I have been using the HttpClient for a while now and really like it.
> > However, I noticed the other day that I was doing the pooling incorrectly.
> > I was working on it when I got a bit confused.
> >
> > Since I was used to using the java.net.* stuff, I took that approach
> > and got an HttpConnection from the connection manager. Once I got the
> > connection, I made the transaction and then released the connection.
> > The algorithm I was using was basically like this:
> >
> > connection =
> > httpClient.getHttpConnectionManager().getConnectionWithTimeout(httpCli
> > ent.ge
> > tHostConfiguration(),30000);
> > post = new PostMethod(...)
> > post.execute(httpClient.getState(),connection);
> > ...
> > connection.releaseConnection();
> >
> > However, this didn't really work at all. My application would just
> > hang for long periods and then I would get socket errors. Since then
> > I switched to using the same algorithm as in the examples and everything
> works great.
> >
> > post = new PostMethod()
> > httpClient.executeMethod(post);
> > post.releaseConnection();
> >
> > Was there something wrong with getting the connection first?
>
> Mark,
>
> There's nothing wrong with acquiring a connection from the connection
> manager. The trouble is that a lot of HTTP protocol logic is encapsulated in
> the HttpClient class and is not executed if one is using HttpConnection
> directly.
>
>
> > Also, is the HttpConnectionManagerParams.setConnectionTimeout(xxx) the
> > same as HttpConnecitonManager.getConnectionWithTimeout(xxx)?
> >
>
> Not really. The first timeout value determines the maximum connect time (how
> long HttpClient can spend blocked waiting for a new connection to be
> established). The latter value is the time HttpClient can spend blocked
> waiting for an _existing_ connection to be acquired from the pool
>
> Hope this helps
>
> Oleg
>
>
> > Thanks,
> > Mark
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail:
> > httpclient-user-help@jakarta.apache.org
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org