When connection is lost and failover is configured, on 0-8/0-9/0-9-1 code paths the failover thread is started to restore the connection. The failover thread tries to acquire a failover mutex to re-establish the connection. In some occasions the failover mutex can be hold in JMS methods for a time longer than failover timeout (for example, sending of message with producer flow control on when flow is blocked). As result of it, the failover process is aborted and connection is closed.
Making the failover method invocation timeout configurable would allows us to work around the issue described above by increasing the failover timeout.
The proper fix of this issue would be making of failover occurrence absolutely transparent for the client code.