VALIDATION

커넥션 유효성 검사는 죽은 연결을 대여 전에 걸러낸다

DB 재시작, NAT·방화벽 idle timeout, 네트워크 단절 뒤에는 풀 안에 half-open 연결이 남아 첫 쿼리에서 실패할 수 있다.

maxLifetimekeepaliveisValid
Idle 종료DB, NAT, 방화벽이 idle socket을 먼저 끊음
Pool 보유풀은 socket 사망을 모른 채 idle 객체를 보유
대여 전 확인isValid, testQuery, timeout 확인
교체실패 연결을 폐기하고 새 연결을 생성

설정 감각: maxLifetime은 DB/proxy 제한보다 짧게, keepaliveTime은 maxLifetime보다 짧게, validation timeout은 요청 SLA 안에 둔다.