WebSphere Extended Deployment, Version 6.0.x     운영 체제: AIX, HP-UX, Linux, Solaris, Windows, z/OS

체크포인트 알고리즘

장기간 실행 환경(LREE)은 체크포인트 알고리즘을 사용하여 일괄처리 단계가 호출되는 글로벌 트랜잭션을 확약하는 시기를 결정합니다. 결과 알고리즘은 xJCL 정의를 통해 일괄처리 작업에 적용됩니다. xJCL에서 체크포인트 알고리즘에 대해 지정한 특성은 트랜잭션 제한시간 및 체크포인트 간격과 같은 체크포인트 작동에 대해 일괄처리 단계에 맞게 사용자 정의할 수 있습니다. WebSphere Extended Deployment는 시간 기반 체크포인트 알고리즘과 레코드 기반 체크포인트 알고리즘 둘 다 제공하며 추가 사용자 정의 체크포인트 알고리즘을 빌드할 수 있도록 서비스 프로바이더 인터페이스(SPI)를 정의합니다.

각 일괄처리 단계의 processJobStep 메소드 반복에서, LREE는 해당 단계에 적용된 체크포인트 알고리즘에 따라 글로벌 트랜잭션을 확약해야 하는지 여부를 결정합니다. 체크포인트 알고리즘의 콜백 메소드는 글로벌 트랜잭션이 확약되거나 시작되는 시기를 LREE가 알고리즘에 알릴 수 있도록 허용합니다. 이로서 알고리즘은 글로벌 트랜잭션의 라이프 사이클을 추적할 수 있습니다. processJobStep 메소드를 반복할 때마다, LREE는 알고리즘에서 ShouldCheckpointBeExecuted 콜백 메소드를 호출하여 트랜잭션을 확약해야 하는지 여부를 판별하므로 알고리즘은 이 메소드를 통해 체크포인트 간격을 제어합니다.

사용자 정의 체크포인트 알고리즘를 작성하기 위해 사용할 수 있는 체크포인트 알고리즘 SPI에 대해서는 InfoCenter 참조사항 섹션에 있는 체크포인트 알고리즘 SPI에 대한 일괄처리 API를 보십시오. 클래스 이름은 com.ibm.wsspi.batch.CheckpointPolicyAlgorithm입니다.

이 제품과 함께 두 가지의 체크포인트 알고리즘인 시간 기반 알고리즘과 레코드 기반 알고리즘이 제공됩니다. 두 알고리즘 모두 다음 섹션에서 설명합니다.

시간 기반 알고리즘

시간 기반 체크포인트 알고리즘은 지정된 시간 간격으로 글로벌 트랜잭션을 확약합니다. 다음은 xJCL에서 시간 기반 알고리즘을 선언하는 방법의 예제입니다.
<checkpoint-algorithm name="timebased">
     <classname>com.ibm.wsspi.batch.checkpointalgorithms.timebased</classname>
     <props>
           <prop name="interval" value="15" />
           <prop name="TransactionTimeOut" value="30" />
     </props>
</checkpoint-algorithm>

이전 예제의 TransactionTimeOut 특성과 간격 단위는 초 단위로 표시됩니다.

레코드 기반 알고리즘

레코드 기반 체크포인트 알고리즘은 일괄처리 단계의 processJobStep 메소드에 대해 지정된 반복 횟수만큼 글로벌 트랜잭션을 확약합니다. 각각의 processJobStep 메소드 호출은 하나의 레코드를 통해 반복되는 것으로 처리됩니다. processJobStep은 호출마다 일괄처리 데이터 스트림에서 여러 개의 레코드를 검색할 수 있지만 이 체크포인트 알고리즘에 대해 하나의 레코드는 processJobStep에 대한 한 번의 호출과 같습니다.

다음은 xJCL에서 레코드 기반 알고리즘을 선언하는 방법의 예제입니다.
<checkpoint-algorithm name="recordbased">
     <classname>com.ibm.wsspi.batch.checkpointalgorithms.recordbased</classname>
     <props>
           <prop name="recordcount" value="1000" />
           <prop name="TransactionTimeOut" value="60" />
     </props>
</checkpoint-algorithm>

이전 예제의 TransactionTimeOut 특성 단위는 초로 표시됩니다.

xJCL에 지정하지 않은 경우, 기본 트랜잭션 제한시간은 60초이고 기본 레코드 수는 10000입니다.

일괄처리 단계에 체크포인트 알고리즘 적용

체크포인트 알고리즘은 xJCL을 통해 일괄처리 작업에 적용됩니다. xJCL에서 여러 개의 체크포인트 알고리즘을 선언할 수 있며 각각의 일괄처리 단계에 다른 체크포인트 알고리즘을 적용할 수 있습니다. 하나의 일괄처리 단계에는 단 하나의 체크포인트 알고리즘만 적용할 수 있습니다.

다음은 xJCL에서 체크포인트 알고리즘을 적용하는 방법의 예제입니다.

<job name="PostingsSampleEar">

<checkpoint-algorithm name="timebased">
     <classname>com.ibm.wsspi.batch.checkpointalgorithms.timebased</classname>	
     <props>
           <prop name="interval" value="15" />
           <prop name=" TransactionTimeOut" value="30" />
     </props>
</checkpoint-algorithm>

<checkpoint-algorithm name="recordbased">
     <classname>com.ibm.wsspi.batch.checkpointalgorithms.recordbased</classname>
     <props>
           <prop name="recordcount" value="1000" />
           <prop name="TransactionTimeOut" value="60" />
     </props>
</checkpoint-algorithm>

<job-step name="Step1">
     <checkpoint-algorithm-ref name="timebased" />
</job-step>

<job-step name="Step2">
     <checkpoint-algorithm-ref name="recordbased" />
</job-step>
</job>



Related concepts
일괄처리 프로그래밍 모델

개념 주제    

이용 약관 | 피드백 마지막 갱신 날짜: Mar 21, 2006 11:34:03 AM EST
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=?topic=/com.ibm.websphere.xd.doc/info/scheduler/cxdbatchalg.html

© Copyright IBM 2005, 2006. All Rights Reserved.
이 Information Center는 Eclipse 테크놀러지로 강화되었습니다. (http://www.eclipse.org)