Description
When sockets are initialised in TcpTransportChannel their timeout is set to SO_TIMEOUT (5000 millis). In the read loop in run(), it seems like this timeout is supposed to be set to infinite once the connection is established. This is reasonable since clients can subscribe to an empty destination for days without any traffic and there's no ping in the protocol. The timeout will be changed if the changeTimeout flag is set but there is no code setting this flag anywhere.
This means that all connections idle more than 5 seconds will time out. This in combination with AMQ-95 will render all connections (even HA) unusable after as they will time out and never be reused.