목차

Step Information

개요

개발자 편의성을 위하여 Step의 설정 항목을 입력받아 배치 작업 파일 템플릿을 자동으로 생성해주는 마법사를 제공한다.

설명

배치 작업 설정 항목 중 Step 내에 설정할 수 있는 기본적인 항목을 사용자가 입력하는 마법사를 제공한다.

항목설명기본값
Job ID 배치 작업 파일 생성시 하나의 프로세스를 나타내는 작업명 Step을 Add할 Job의 ID
Step Type 한번에 하나의 Step을 처리하는 Normal과 여러 쓰레드가 분산 수행되어 파일을 나눠 처리할 수 있는 Partition(File) 중 택일하여 설정 가능 Normal
Step ID 하나의 Job내부에서 독립적으로 일어나는 프로세스명 사용자 지정
next Step 혹은 Decision이 하나이상 등록되어진 상태에서 현재 등록 중인 Step 다음 수행될 Step 또는 Decision 지정 사용자 지정
Reader 입력 자원의 타입에 따라 Item을 입력받기 위한 설정 사용자 지정
Writer 출력 자원의 타입에 따라 Item을 출력하기 위한 설정 사용자 지정
Commit-Interval 한 transaction에 처리되는 자원의 양 (1이상) 사용자 지정
Step Listeners Step 수행 중 발생한 이벤트를 처리하기 위한 설정 사용자 지정
Chunk Listeners Chunk 수행 중 발생한 이벤트를 처리하기 위한 설정 사용자 지정
Shared values 하나의 Job내에 여러 Step들이 하나의 Key를 통해 정보를 공유하기 위한 Key 설정 사용자 지정

배치 작업의 구성요소에 대해 더 자세한 설명이 필요한 경우 다음을 참고한다.

주의
✔ 하나의 Job 내에 두 개 이상의 Step을 등록할 경우 반드시 Next를 지정해주어야 한다.
✔ next 등록시 무한 루프를 돌지 않도록 Step 혹은 Decision을 등록해야 한다.

✔ Spring의 경우 bean id 중복을 불허하기 때문에 전자정부 프레임워크 배치개발환경에서도 기존에 등록된 bean id의 중복 등록을 방지하고 있다.

next 설정

SampleStep1 설정 SampleStep2 설정

Shared values 설정

  1. Shared values를 사용할 경우 Shared values 탭에서 Shared values 우측의 Add를 클릭한다.


  2. 공유하고자 하는 Key를 선택 및 설정하고 OK를 클릭한다.
    ✔ Shared values란 작업간 정보 공유 관리로 Job내의 Step을 수행하던 중에 나온 결과값을 다른 Step에서 사용할 수 있다.
    ✔ Shared values는 다음과 같이 사용할 수 있다.


설정 XML 예시 보기

위의 위자드 사용 예제를 통해 Shared Value를 설정한 XML이다. XML에 보이듯이 TestStep1에서 설정한 'FlatFileItemReader.read.count'가 Key값으로 설정 되있는 것을 볼 수 있다.
결과적으로 TestStep1에서 'FlatFileItemReader.read.count' Key에 해당하는 정보를 TestStep2에서 'FlatFileItemReader.read.count' Key를 통해 사용할 수 있게 된다.

<job id="TestJob" restartable="true" xmlns="http://www.springframework.org/schema/batch">
        <step id="TestStep1" next="TestStep2">
            <tasklet>
                <chunk reader="TestJob.TestStep1.FixedFlatFileItemReader" writer="TestJob.TestStep1.DelimitedFlatFileItemWriter" commit-interval="3" />
            </tasklet>
            <listeners>
                <listener>
                    <bean class="org.springframework.batch.core.listener.ExecutionContextPromotionListener"
	 xmlns="http://www.springframework.org/schema/beans">
                        <property name="keys">
                            <list>
                                <value>FlatFileItemReader.read.count</value>
                            </list>
                        </property>
                    </bean>
                </listener>
            </listeners>
        </step>
        <step id="TestStep2">
            <tasklet>
                <chunk reader="TestJob.TestStep2.FixedFlatFileItemReader" writer="TestJob.TestStep2.DelimitedFlatFileItemWriter" commit-interval="3" />
            </tasklet>
        </step>
    </job>