1
DB 재시작
기존 TCP 세션이 끊기지만, 앱의 풀은 바로 그 상태를 모두 알지 못한다.
핵심은 풀 크기 부족이 아니라 stale connection 제거다. 빌려주기 전에 검사하고, 오래된 커넥션은 더 빨리 교체해야 한다.
기존 TCP 세션이 끊기지만, 앱의 풀은 바로 그 상태를 모두 알지 못한다.
재시작 전 커넥션은 끊겼고, 이후에 새로 만든 커넥션만 정상이다.
요청이 어떤 커넥션을 빌리느냐에 따라 성공하거나, 바로 실패한다.
java.sql.SQLException: Broken pipe ... while using pooled connection
DB 재시작 직후 이런 로그가 보이면, 풀 안의 끊긴 커넥션이 재사용되는지 확인한다.
간헐 실패의 이유는 “가끔만 죽은 커넥션이 선택되기 때문”이다. 따라서 우선순위는 풀 확대보다 검증과 수명 정책 조정이다.