The Java client does the same thing under certain conditions. Neither of the clients should do this though. I think this model is way too overaggressive. I think we should remove that logic entirely. If we think we want something that proactively checks the other connections to that server we could have a background thread go through and send a ping request on one the next in the queue. If it doesn’t respond then terminate that connection. Continue until a pong response is received.
-Jake > On Feb 24, 2021, at 4:36 AM, Alberto Gomez <alberto.go...@est.tech> wrote: > > Hi, > > Running some tests with the C++ native client and looking at the code, I have > observed that when an error in a connection towards an endpoint (timeout, IO > error) is detected, not only the faulty connection is closed but the endpoint > is set to "not connected" status which eventually provokes that all other > open connections towards that endpoint are closed when used. > > I have not seen that behavior in the Java client, i.e., the Java client, when > it detects an error in a connection towards an endpoint, it closes that > connection but does not act on other connections towards that endpoint. > > Are my observations correct? > > If so, shouldn't the C++ native client be aligned with the Java client? > > Thanks, > > Alberto G.