반응형
문제
오라클 클라우드에서 동작하는 스프링 프로젝트에서 어느순간 데이터베이스에 접근할 수 없는 상황이 발생했다.
원인
이 문제는 커넥션 풀의 커넥션이 존재하지만 이미 연결이 끊어졌기 때문에 발생한 것이었다.
나의 경우에는 트래픽이 거의 없어서 8시간동안 사용되지않은 커넥션들이 풀에 남아있었고 이 커넥션들을 이용해서 처리를하려고 하여 해당 문제가 발생한 것이다.
히카리 CP에서 커넥션 풀의 수명을 제어하는 maxLifetime 기본 값은 30분이다.
해결
데이터베이스(MySQL)의 wait_timeout 설정을 확인해보았다.
wait_timeout으로 설정된 시간동안 커넥션이 사용되지 않으면 커넥션 연결이 종료된다.
SHOW VARIABLES LIKE 'wait_timeout';
wait_timeout 28800 // 8시간
커넥션 풀에 있는 커넥션들이 wait_timeout 이전에 종료되고 새로 커넥션을 만들도록 maxLifetime 설정을 추가하였다.
이 설정으로 문제가 해결되는지 지켜봐야 할 것 같다…
참고
반응형