1. 스프링 배치 메타 데이터
•
스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(Job, Step, JobParameters..)의 정보들을 저장, 업데이트, 조회할 수 있는 스키마 제공
•
과거, 현재의 실행에 대한 세부 정보, 실행에 대한 성공과 실패 여부 등을 관리함으로써 리스크 발생 시 빠른 대처 가능
•
DB와 연동할 경우 필수적으로 메타 테이블이 생성되어야함
2. DB 스키마 제공
•
파일 위치: /org/springframework/batch/core/schema-*.sql
•
DB 유형별로 제공
3. 스키마 생성 설정
•
수동 생성 - 쿼리 복사 후 직접 실행
•
자동 생성 - spring.batch.jdbc.initialize-schema 설정
◦
ALWAYS
▪
스크립트 항상 실행
▪
RDBMS 설정이 되어 있을 경우 내장 DB보다 우선적으로 실행
◦
EMBEDDED : 내장 DB일 때만 실행되며 스키마가 자동 생성됨. 기본값
◦
NEVER
▪
스크립트 항상 실행 안함
▪
내장 DB일 경우 스크립트가 생성이 안되기 때문에 오류 발생
▪
운영에서 수동으로 스크립트 생성 후 설정하는 것을 권장
Job 관련 테이블
•
BATCH_JOB_INSTANCE
◦
Job이 실행될 때 JobInstance 정보가 저장되며 job_name과 job_key를 키로 하여 하나의 데이터를 저장
◦
동일한 job_name과 job_key로 중복 저장될 수 없음
•
BATCH_JOB_EXECUTION
◦
job의 실행정보가 저장되며 Job 생성, 시작, 종료시간, 실행상태, 메시지 등을 관리
•
BATCH_JOB_EXECUTION_PARAMS
◦
Job과 함께 실행되는 JobParameter 정보를 저장
•
BATCH_JOB_EXECUTION_CONTEXT
◦
Job의 실행동안 여러가지 상태정보, 공유 데이터를 직렬화(JSON 형태)해서 저장
◦
Step 간 서로 공유 가능
Step 관련 테이블
•
BATCH_STEP_EXECUTION
◦
Step의 실행정보가 저장되며 생성, 시작, 종료시간, 실행상태, 메시지 등을 관리
•
BATCH_STEP_EXECUTION_CONTEXT
◦
Step의 실행동안 여러가지 상태정보, 공유 데이터를 직렬화(JSON 형태)해서 저장
◦
Step 별로 저장되며 Step 간 서로 공유할 수 없음