🗄️AWS/AWS

[AWS] Failed to validate connection

뉴발자 2025. 2. 18.
728x90

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

에러 상황

AWS의 RDB에서 wait_timeout을 3분으로 설정한 후 콘솔창에 아래와 같은 경고 메시지가 표시됐다.

 

 

에러 코드

WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection

 

 

 

해결 방법

해당 에러는 RDB에서 설정한 wait_timeout 설정과 hikari의 max-lifetime의 설정이 맞지않아서 발생하는 에러이다.

 

hikari의 lifetime은 30분이 기본값으로 설정되어 있기때문에 위와 같은 현상이 발생한다.

 

 

RDB는 설정된 wait_timeout에 따라 연결된 커넥션을 끊는다.

 

Spring 서버는 idle 상태의 커넥션을 max-lifetime이 지나면 새로운 커넥션을 생성하게 된다.

 

따라서, max-lifetime이 wait_timeout보다 짧아야 RDB가 커넥션을 끊기 전에

 

Spring 서버 스스로 연결을 끊고 커넥션을 맺기 때문에 위와 같은 현상이 발생하지 않게 된다.

 

 

실제로 hikari는 네트워크 지연을 고려하여 max-lifetime을 wait_timeout 보다 2~3초 짧게 줄 것을 권고한다.

 

Spring에서 아래의 설정을 추가해주면 해당 에러는 사라지게 된다.

 

  datasource:
    hikari:
      max-lifetime: 177000 # wait_timeout보다 2~3초 짧게 설정한다

 

 

참고 사이트

https://gksdudrb922.tistory.com/228

 

[Spring] Failed to validate connection

서비스 운영 중 아래와 같은 경고 로그가 지속적으로 생겼다. hikariPool - Failed to validate connection org.mariadb.jdbc.MariaDbConnection@7aa2f8a6 ((conn=463456) Connection.setNetworkTimeout cannot be called on a closed connection). P

gksdudrb922.tistory.com

 

 

 

 

 

 

 

 

 

 

728x90

댓글