배치 커스터마이징 개요
1. 배치 커스터마이징 제공 Interface
프로젝트에서 프로젝트 요구 사항에 따라 배치의 기능 정의 및 선/후 처리 등에 대하여 추가 개발을 해야 하는 경우가 있다. 그에 따라 배치의 기본적인 기능을 프로젝트에서 개빌/반영 할 수 있도록 Interface를 제공한다.
다음은 배치에서 제공하는 Interface에 대한 설명이다.
Package.Source | 설명 |
---|---|
bxm.batch.core.context.control. BatchControlParameters.java |
실행되고 있는 배치의 작업 정보(BXM_JOB_INFO)를 Load하고 제어처리하는 |
bxm.batch.core.context.control. DaemonControlParameters.java |
수행하고 있는 데몬배치의 작업 정보(BXM_JOB_DAEMON_INFO)에 대하여 제어 |
bxm.batch.core.context. BatchPreProcessor.java |
배치 수행 전에 호출 되는 Interface이다. 주로 배치 작업 제어를 처리하는 |
bxm.batch.core.context. BatchContextPreProcessor.java |
배치 수행 전에 호출 되는 Interface로 BatchPreProcessor Interface 호출 |
bxm.batch.core.context. BatchPostProcessor.java |
배치 수행이 완료(정상/오류 /중지 등)후에 호출이 되는 Interface이다. |
bxm.batch.core.context.control. BatchGroupCheckProcessor.java |
실행되고 있는 배치작업(Job)이 속해있는 그룹(BXM_JOB_GRP)에 대하여 제어 |
JobConfig.xml |
배치 공통 Job Configuration Xml 설정 파일이다. 배치작업 |
2. 배치 커스터마이징 Project
프레임워크에서는 배치 커스터마이징을 좀 더 쉽게 하게 위해서 커스터마이징 Project (bxm-batch-default-extension)를 제공한다.
다음은 배치에서 제공하는 주요 커스터마이징 Source에 대한 설명이다.
Package.Source | 설명 |
---|---|
bxm.batch.dft.context. DefaultBatchApplicationContext.java |
현재 수행하고 있는 배치의 Context 정보롤 가져오기 위하여 기본 배치 |
bxm.batch.dft.control. DefaultBatchControlParameter.java |
배치 작업 정보를 Load한다. |
bxm.batch.dft.control. DefaultDaemonControlParameter.java |
배치 데몬 작업 정보를 Load한다. |
bxm.batch.dft.context. DefaultBatchPreProcessor.java |
배치 선처리로서 배치 수행 가능여부를 판단하여 처리한다. |
bxm.batch.dft.context. DefaultBatchContextPreProcessor.java |
배치 Context 선처리로서 ServiceTraceContext, ContextHeadeer 등을 |
bxm.batch.dft.context. DefaultBatchPostProcessor.java |
배치 후처리로서 리소스 정리작업을 수행한다. |
bxm.batch.dft.control. DefaultBatchGroupCheckProcessor.java |
배치 그룹정보를 Load 한다. |
bxm.batch.dft.listener. DefaultJobListener.java |
스프링배치 Job 의 선/후처리시 호출 되는 Job Listener이다. |
bxm.batch.dft.listener. DefaultStepListener.java |
스프링배치 Step 의 선/후처리시 호출 되는 Job Listener이다. |
3. 배치 프레임워크 Instance Configuration 설정
개발한 커스터마이징 Source를 반영하기 위해서는 프레임워크 Instance Configuration 설정 파일(bxm-bxtch.xml 혹은 System Property) 에 적용하여야 한다.
다음은 배치 Instance Configuration 설정 파일의 한 예이다.
<batch-context commit-interval="100">
<batch-control-param classname="bxm.batch.dft.control.DefaultBatchControlParameter"/>
<daemon-control-param classname="bxm.batch.dft.control.DefaultDaemonControlParameter"/>
<batch-preprocessor classname="bxm.batch.dft.context.DefaultBatchPreProcessor"/>
<batch-context-preprocessor classname="bxm.batch.dft.context.DefaultBatchContextPreProcessor"/>
<batch-postprocessor classname="bxm.batch.dft.context.DefaultBatchPostProcessor"/>
<batch-batchgroup classname="bxm.batch.dft.control.DefaultBatchGroupCheckProcessor"/>
<job-listener classname="bxm.batch.dft.listener.DefaultJobListener" order="1"/>
<step-listener classname="bxm.batch.dft.listener.DefaultStepListener" order="1"/>
</batch-context>