I need to force database failover under some circumstances even if currently active database is available.
So I have implemented ValidConnectionChecker interface which checks for those circumstances and throws specific SQLException.
I have also implemented ExceptionSorter so that it considers that specific SQLException to be fatal.
However ExceptionSorter's isExceptionFatal is not called if exception was returned by ValidConnectionChecker's isValidConnection method (hence the connection is destroyed and new one is created against the same database).
Is that correct behaviour? If yes, is there any way to force failover even if pinging connection succeeds?