Соединение может «испортиться» в любое время. Следовательно, независимо от того, когда проверяется соединение, даже если оно проверяется непосредственно перед раздачей из пула, всегда есть вероятность, что пользователь попытается использовать плохое соединение.
Проекты пула соединений, над которыми я работал, решили справиться с этой неопределенностью, не решая ее. Они предполагают, что соединение в пуле является хорошим, если у них нет конкретных доказательств, а это означает, что какое-то исключение вытекает из пользователя соединения.
Некоторые типы ошибок и исключений могут означать, что каждое соединение в пуле теперь признано недействительным.
Я видел некоторые особые ситуации, когда такой подход не идеален. В этих случаях могут быть использованы другие решения. Например, возможно, сервер, для которого вы запрограммировали соединение, перезагружается каждое утро в 2 часа ночи. В этом случае таймер может запускаться один раз в день после перезапуска сервера (возможно, в 3 часа ночи) и проверять и, вероятно, делать недействительными все соединения в пуле.
Я бы предложил, однако, чтобы вы позволили каждому особому случаю диктовать решение так, как оно требуется.