728x90
반응형
SMALL
스프링 환경에서 스프링 배치를 통해서 통계 데이터를 주에 한번 씩 저장하고 있었다.
허나 여기서 문제점이 발생하게 된다.
배치 프로그램이 실패하게 된다.
에러 로그는 다음과 같다.

MYSQL 은 기본적으로 8시간으로 커넥션 연결이 없다면 연결을 끊어버린다.

DB의 커넥션이 닫혀있는 상태에서
애플리케이션은 그걸 모른 상태로 배치로 인해서 SQL 로직이 실행되기 때문에 당연히 오류가 발생하게 된다.

이로인해 배치프로그램이 DB 커넥션을 불인지 하고있는 상태에서 SQL작업을 진행했기때문에
DB로그에서는 connection errors 가 남아있는 것을 확인할 수 있다.
때문에 애플리케이션에서 DB커넥션에 접근하는 코드에는 validationQuery="select 1" 구문을 추가해 줌으로써
애플리케이션이 DB에 접근전에 DB커넥션이 열려있는지 확인한 다음 로직이 실행될 수 있도록 한다.
728x90
반응형
LIST