zhh5919 <zhh5...@163.com> wrote:

>When HttpClient borrow a connection from ConnectionManager and write
>something to this conneciton. In the meanwhile tomcat pepare to close
>this connection due to keepalive timeout,so it don't read from this
>connection and just close it.

You have just described a race condition. The fix is to ensure that unused 
connections in the client pool timeout faster than Tomcat's keep-alive timeout.

>I read NioEndpoint code  and find  that  process time-out after process
>selected keys.
>Timeout  need proccess all key rather than selected keys.During process
>timeout,if one socket(channel) receive some data,it will do nothing and
>just close it.so the client peer will throw connectionresetException.
>Could you please tell me  my analysis is correct?

No it is not correct. There will always be a point after Tomcat decides to 
close the connection where the client may send more data before the connection 
close is complete. That is why you need to make sure it is the client that 
closes the connection first.

> I apologize for my poor English.

No need to apologise. It was very easy to understand your email.

Kind regards,

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to