배치 커스터마이징 개요

1. 배치 커스터마이징 제공 Interface

프로젝트에서 프로젝트 요구 사항에 따라 배치의 기능 정의 및 선/후 처리 등에 대하여 추가 개발을 해야 하는 경우가 있다. 그에 따라 배치의 기본적인 기능을 프로젝트에서 개빌/반영 할 수 있도록 Interface를 제공한다.

다음은 배치에서 제공하는 Interface에 대한 설명이다.

배치 커스터마이징 주요 Interface Source
Package.Source 설명

bxm.batch.core.context.control.

BatchControlParameters.java

실행되고 있는 배치의 작업 정보(BXM_JOB_INFO)를 Load하고 제어처리하는
Interface이다.

bxm.batch.core.context.control.

DaemonControlParameters.java

수행하고 있는 데몬배치의 작업 정보(BXM_JOB_DAEMON_INFO)에 대하여 제어
처리하는 Interface이다. 참고로 BXM_JOB_DAEMON_INFO 테이블 및 컬럼을 수정
할 수 없으며 추가적 테이블 및 컬럼을 추가하여 처리제어 할 경우에만
커스터마이징을 할 수 있도록 한다.

bxm.batch.core.context.

BatchPreProcessor.java

배치 수행 전에 호출 되는 Interface이다. 주로 배치 작업 제어를 처리하는
경우에 사용된다.

bxm.batch.core.context.

BatchContextPreProcessor.java

배치 수행 전에 호출 되는 Interface로 BatchPreProcessor Interface 호출
후에 처리 된다. 배치 Context가 생성이 된 후 처리해야 할 작업이 있는
경우에 해당 Interface를 이용하여 처리 할 수 있으며, 온디맨드 배치의
경우에는 배치 Context가 생성이 된 후 에 호출이 된다.

bxm.batch.core.context.

BatchPostProcessor.java

배치 수행이 완료(정상/오류 /중지 등)후에 호출이 되는 Interface이다.
별도의 작업 로그를 남기는 등에 사용된다.

bxm.batch.core.context.control.

BatchGroupCheckProcessor.java

실행되고 있는 배치작업(Job)이 속해있는 그룹(BXM_JOB_GRP)에 대하여 제어
처리하는 Interface이다.

JobConfig.xml

배치 공통 Job Configuration Xml 설정 파일이다. 배치작업
Xml에서 공통적으로 Load 해야 할 부분이 있다면 해당 Xml을 수정처리하면
된다.

2. 배치 커스터마이징 Project

프레임워크에서는 배치 커스터마이징을 좀 더 쉽게 하게 위해서 커스터마이징 Project (bxm-batch-default-extension)를 제공한다.

다음은 배치에서 제공하는 주요 커스터마이징 Source에 대한 설명이다.

배치 커스터마이징 주요 Source
Package.Source 설명

bxm.batch.dft.context.

DefaultBatchApplicationContext.java

현재 수행하고 있는 배치의 Context 정보롤 가져오기 위하여 기본 배치
Runtime의 BatchApplicationContext를 Wrapping 처리한다.

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>

Copyright© Bankwareglobal All Rights Reserved.