1. 기본 개념
- 프레임워크에서 유지 및 관리하는 키/값으로 된 컬렉션으로 StepExecution 또는 JobExecution 객체의 상태(state)를 저장하는 공유 객체
- DB 에 직렬화 한 값으로 저장됨 - { “key” : “value”}
- 공유 범위
- Step 범위 – 각 Step 의 StepExecution 에 저장되며 Step 간 서로 공유 안됨
- Job 범위 – 각 Job의 JobExecution 에 저장되며 Job 간 서로 공유 안되며 해당 Job의 Step 간 서로 공유됨
- Job 재 시작시 이미 처리한 Row 데이터는 건너뛰고 이후로 수행하도록 할 때 상태 정보를 활용한다



2. 실습
https://github.com/Woody-log/spring-batch-practice/tree/chapter02/executionContext


첫 번째 실행에서 RuntimeExcepcetion 이 발생하지만 BATCH_JOB_EXECUTION_CONTEXT 테이블엔 해당 값이 저장된걸 확인할 수 있다. 두 번째 실행에선 테이블에 데이터를 불러왔기 때문에 조건문이 실행되지 않고 정상적으로 실행된다.
'Spring Batch' 카테고리의 다른 글
JobRepository 란? (0) | 2022.03.05 |
---|---|
StepContribution 이란? (0) | 2022.03.05 |
StepExecution 이란? (0) | 2022.03.05 |
Step 이란? (0) | 2022.03.01 |
JobExecution 이란? (0) | 2022.03.01 |