Collective Intelligence

[SpribgBoot] DB 연결이 가끔씩 끊어지는 경우 본문

개발/Spring Framework

[SpribgBoot] DB 연결이 가끔씩 끊어지는 경우

유경파 2016. 3. 31. 16:04

중국에서 Spring Boot 를 사용해서 웹 서비스를 운영중에 이상하게 며칠마다 DB(MySQL, SQL Server) Connection 이 안되는 경우가 발생했다.

웹서비스는 잘~ 돌아가고 있는데 DB 연결이 안돼서 자꾸 에러를 뱉는것이 아닌가...

처음엔 네트워크 문제인줄 알고 (중국에서는 국외로 나가는 트래픽은 차단당하는 일이 허다해서...) 네트워크 담당자를 닥달했었는데

알고보니 아래와 같은 설정을 추가하면 된다고 한다.

Spring Framework 에도 비슷한 설정이 있는데 항상 기본 프로젝트를 만들어 두고 쓰다보니 놓쳤던 것 같다.

(각종 설정을 하기 귀찮아서 뼈대 프로젝트를 가지고 하루만에 서버 만들고 이랬는데 이게 독이 될 줄이야...) 


일단 아래의 두 설정은 DB 연결을 Validate할 때 사용한다.


 spring.datasource.testOnBorrow=true  
 spring.datasource.validationQuery=SELECT 1






주기적으로 연결체크를 하려면 아래 설정을 추가하면 된다

  spring.datasource.test-while-idle=true




아래 설정까지 하면 설정 체크 주기까지 조정할 수 있다.

 spring.datasource.time-between-eviction-runs-millis=xxx   (기본 5000)
 spring.datasource.min-evictable-idle-time-millis=xxx         (기본 60000)