Hello Guy,

when you get the timeout exception, you should release the current 
connection. When you retry the request, a new connection will be
used. There is no point in setting anything at the old connection,
which could be used subsequently by a completely different method.

You should implement your own connection manager. Then you can
use some context sensitivity, for example a ThreadLocal variable,
to set the timeout by the time the connection gets allocated.

hope that helps,
  Roland




Questioner Guy <[EMAIL PROTECTED]> 
15.09.2005 16:42
Please respond to
"HttpClient User Discussion"


To
HttpClient User Discussion <[email protected]>
cc

Subject
Re: Connection level timeout settings






Thanks for the reply Roland, Oleg!!
 I'll try all three approaches Host Configuration/ Connection Manager 
and/or 
custom protocol factory approaches and let you know if I am able to fix 
the 
problem.
 The problem is that when I get the first timeout exception, I need to be 
able to identify the current request being handled reliably to the 
Connection Manager/Protocol Factory so that they can reset the timeout on 
the right socket. Do you know a way to identify the request/socket 
combination reliably? I may have more than one request to the same host 
being handled at the same time, and worse, may be even to the same 
resource. 
Can I rely on the thread id?
 Thanks again.
 On 9/15/05, Oleg Kalnichevski <[EMAIL PROTECTED]> wrote: 
> 
> Presently only socket timeout value can be set on a per method / host /
> client basis. Connection timeout can be set on a per connection manager
> / client basis. The only way to work that problem around is to implement
> a custom connection manager or a custom protocol socket factory
> 
> Oleg
> 
> 
> On Thu, Sep 15, 2005 at 12:22:46PM +0200, Roland Weber wrote:
> > Hi Guy,
> >
> > you can't set the timeout on the connection because you don't know
> > which connection is going to be used until you execute the method.
> > You can set the timeout for the connection manager, which will affect
> > all connections. I think there is also a way to set the timeout based
> > on the HostConfiguration, which is probably what you want to do.
> >
> > hope that helps,
> > Roland
> >
> >
> >
> >
> > Questioner Guy <[EMAIL PROTECTED]>
> > 15.09.2005 11:37
> > Please respond to
> > "HttpClient User Discussion"
> >
> >
> > To
> > [email protected]
> > cc
> >
> > Subject
> > Connection level timeout settings
> >
> >
> >
> >
> >
> >
> > I am trying to set the connection timeout at the individual connection
> > level. The following code snippet sets the timeout at the HttpClient 
> level
> > HttpClient client = new HttpClient( new
> > MultiThreadedHttpConnectionManager() );
> > client.getHttpConnectionManager().getParams().setParameter("
> > http.connection.timeout", new Integer( 30 * 1000));
> > I want to be able to reset the connection timeout to certain web-sites
> > after getting a timeout exception from the call to HttpClient's
> > executeMethod() call. I coudn't figure out a way to get access to the
> > connection allocated to the call.
> > I am new to HttpClient and I apologize if this a trivial question, but 
I
> > would appreciate the answer.
> > Thanks.
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: 
[EMAIL PROTECTED]
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to