JobExplorer는 실행 중인 Job 및 Step의 execution을 검색하기 위한 시작지점으로, Repository에 접근하여 배치작업에 대한 정보를 얻는다.
JobExplorer에서는 Repository에 있는 Execution의 데이터를 사용하기 위해서 Repository에 접근한다.JobExplorer은 repository의 데이터를 오직 읽을 수만 있다.
public interface JobExplorer { List<JobInstance> getJobInstances(String jobName, int start, int count); JobExecution getJobExecution(Long executionId); StepExecution getStepExecution(Long jobExecutionId, Long stepExecutionId); JobInstance getJobInstance(Long instanceId); List<JobExecution> getJobExecutions(JobInstance jobInstance); Set<JobExecution> findRunningJobExecutions(String jobName); }
JobExplorer인터페이스의 기본 구현 클래스로는 SimpleJobExplorer을 제공한다. SimpleJobExplorer는 멤버변수로 JobInstanceDao,JobExecutionDao, StepExecutionDao, ExecutionContextDao 구성되어 DB에 접근하여 아래의 기능들을 제공한다.
메소드명 | 설 명 | 파라미터 |
---|---|---|
getJobExecutions | jobInstance를 이용하여 JobExecutions을 얻는다. | jobInstance |
findRunningJobExecutions | jobName을 이용하여 실행중인 Job의 JobExecutions을 얻는다. | jobName |
getJobExecution | Job의 execution Id를 이용하여 JobExecutions을 얻는다. | executionId |
getParameters | Job의 Execution id를 이용하여 Parameters를 얻는다. | executionId |
getStepExecution | Job의 execution Id와 Step의 execution Id를 이용하여 StepExecution을 얻는다. | jobExecutionId,stepExecutionId |
getJobInstance | Jobinstance Id를 이용하여 JobInstance를 얻는다. | instanceId |
getJobInstances | start 인덱스부터 count만큼의 JobInstances을 얻는다. | jobName, int start, int count |
getJobInstance | jobExecution를 이용하여 JobInstance를 얻는다. | jobExecution |
JobExplorer의 생성을 도와주는 FactoryBean클래스가 제공되어서 이를 사용하면 더욱 손쉽게 설정할 수 있다.JobExplorerFactoryBean을 이용하여 JobExplorer 설정시에는 dataSource의 설정이 필수이다.
<bean id="jobExplorer" class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean" p:dataSource-ref="dataSource" />
✔JobRepository의 설정에서 테이블 접두사를 변경했다면, JobExplorer의 설정 시에도 동일한 테이블 접두사로 변경해야 한다.
<bean id="jobExplorer" class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean" p:dataSource-ref="dataSource" p:tablePrefix="BATCH_" />