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]
