On Wed, 2012-06-13 at 15:17 -0400, [email protected] wrote: > Oleg, > > Sometimes you just don't know the state of the other system, there could be > any issue. > > I rather have my application take action the moment or soon after it gets > stuck, instead of it waiting for the high level operation to timeout. > If I have real short read/write timeouts, I can take immediate action > retry/divert/rollback/reclaim system resources etc. > > Thanks, > > Rishi. >
OK. Let me try it again. In a blocking I/O mode used HttpClient socket timeout applies to read operations only. Write operations can block indefinitely. In a non-blocking mode used by HttpAsyncClient socket timeout applies to _both_ read and write operations. If HttpAsyncClient is unable to write out data within the period of time defined by the socket timeout and there is no other activity on that HTTP connection HttpAsyncClient will trigger a I/O timeout event and terminate the connection. Hope this makes things clearer somewhat. Oleg > From: Oleg Kalnichevski <[email protected]> > To: HttpClient User Discussion <[email protected]> > Sent: Wednesday, June 13, 2012 at 12:10 pm > Subject: Re: HttpAsyncClient - Socket Write Timeout. > > On Wed, 2012-06-13 at 10:54 -0400, [email protected] wrote: > > > Oleg, > > > > > > I agree that operation level timeouts are useful. > > > > > > That stops my application from being stuck, unlike the blocking IO model. > > > > > > > > > But the low level socket is still stuck for a while, and there is no way to > > clean it up. > > > > > > Also what if you are streaming different sizes of data over, over network > > with different speeds, to different clients? > > > > > > You cannot have a single operation timeout that fits all. > > > > > > Also, if a TCP session is dropped or terminated without RST or FIN > > > packets, the operating system it left to eventually time out the > > > session, which is a much longer timeout than desired. > > > > > > Thanks, > > > > > > Rishi. > > > > > > > > > > That is all true, but I still do not see why one would need to > > distinguish write timeouts and I/O operation timeouts. > > > > Oleg > > > > > > > > > > > > > > > > From: Oleg Kalnichevski <[email protected]> > > > To: HttpClient User Discussion <[email protected]> > > > Sent: Wednesday, June 13, 2012 at 9:55 am > > > Subject: Re: HttpAsyncClient - Socket Write Timeout. > > > > > > On Tue, 2012-06-12 at 12:04 -0400, [email protected] wrote: > > > > > > > Hi, > > > > > > > > > > > > > > I know java only provides soTimeout which is a read time out. > > > > > > > Is there any existing implementation of soWriteTimout using the > > > AsyncClient? any reference in this direction would be gr8. > > > > > > > If not, is it anywhere in the road map of the AsyncCleint? > > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > Rishi. > > > > > > > > > > > > > > > > > > > > > > > > > > Rishi > > > > > > > > > > > > Socket timeout used by HttpAsyncClient and HttpCore NIO is effectively > > > > > > the maximum period of I/O inactivity for the given session. It applied > > > > > > both to read and write operations. Personally I have never encountered a > > > > > > convincing case for write timeouts. What situation could it be useful > > > > > > in? > > > > > > > > > > > > Oleg > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > 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]
