Hi
> I was referring to the fact that the TCP connection is indeed left 'half
> open'
> with the jdbc client side still assuming it's 'properly' open and thus
> trying to
> send a graceful close command over the socket ("X" in v2 or "X4" in v3) . It
> is
> this action that indefinitely blocks the client thread, which is then no
> longer
> usable by the application.
But it should not block indefinitely. Why would it?
If the server closed the connection, it should reply with a RST and the client
should detect that and throw an IOException( "Socket closed" ).
> All of this said, I still think it is conceptually incorrect to attempt a
> graceful
> closure after an IO error in the client.
Agreed. IOExceptions on blocking sockets usually indicate that you cannot do
anything good with them anymore.
Regards,
Steffen