오류 허용 일반 일괄처리 단계는 입력 하나, 출력 스트림
하나 및 오류 스트림 하나에 대해 작업합니다. 일괄처리 루프의
각 반복 동안 이 단계는 일괄처리 데이터 스트림(BDS)
입력 스트림에서 단일 항목을 읽고 처리를 위해 BatchRecordProcessor
특성에 전달합니다.
시작하기 전에
BatchRecordProcessor 특성은 유효한 데이터 오브젝트 또는
허용 가능한 오류에 있는 널값을 리턴할 수 있습니다. 리턴값이
널인 경우, 입력 스트림에서 읽은 레코드가 오류 스트림에
로그되고 ThresholdPolicy 인터페이스에서 invalidRecordEncountered
메소드가 호출됩니다. 임계값 정책이 오류 허용 임계값에
도달했는지 여부를 판별합니다. 도달한 경우
STEP_CONTINUE_FORCE_CHECKPOINT_BEFORE_PROCESSING_CANCEL을 리턴하는데, 이것은
체크포인트를 강제 실행하고 작업을 재시작 가능 상태에 둡니다. 그렇지 않으면
작업은 정상적으로 계속합니다. BatchRecordProcessor.processRecord가 리턴하는 데이터가
유효한 경우 데이터가 BDS 출력 스트림으로 전달됩니다.
이 태스크 정보
오류 허용 단계를 구현하려면 다음 특성을
사용하십시오.
표 1. 필수 특성. 표에는 특성 이름, 값 및 설명이 포함되어 있습니다. 특성 이름 |
값 |
설명 |
threshold_policy |
Java 클래스 이름 |
com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy 인터페이스를
구현하는 클래스 |
BATCHRECORDPROCESSOR |
Java 클래스 이름 |
BatchRecordProcessor 인터페이스를 구현하는
클래스 |
표 2. 선택적 특성. 표에는 특성 이름, 값 및 설명이 포함되어 있습니다. 특성 |
값 |
설명 |
debug |
true 또는 false(기본값은 false) |
단계에서 추적 및 디버깅 사용 설정 |
EnablePerformanceMeasurement |
true 또는 false(기본값은 false) |
단계 내에서 사용되는 측정 시간 |
프로시저
- com.ibm.websphere.batch.devframework.steps.technologyadapters.BatchRecordProcessor 인터페이스를
구현하여 단계에 대한 비즈니스 로직을 제공하십시오.
단계에 대한
xJCL에서, 인터페이스의 구현으로 설정된 값을 갖는
BATCHRECORDPROCESSOR 특성을 선언하십시오. 예를 들어 다음과 같습니다.
...
<props>
<prop name="BATCHRECORDPROCESSOR"
value="com.ibm.websphere.batch.samples.tests.steps.InfrastructureVerificationTest"/>
</props>
...
- com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy 인터페이스를
구현하여 단계에 대한 임계값 정책을 제공하십시오. 또한 com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicy
또는 com.ibm.websphere.batch.devframework.thresholdpolicies.RecordBasedThresholdPolicy 같은 제품 구현을 사용할 수도 있습니다.
다음 코드 스니펫에서 보는 것처럼 xJCL에서 사용할
ThresholdPolicy를 선언하십시오.
...
<props>
<prop name="threshold_policy"
value="com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicy"/>
</props>
...
- BDS 입력 스트림 논리 이름을 inputStream으로,
BDS 출력 스트림 논리 이름을 outputStream으로,
오류에 대한 BDS 출력 스트림을 errorStream으로 설정하십시오.
논리 이름은 xJCL에서 선언됩니다. 예를 들어 다음과 같습니다.
<batch-data-streams>
<bds>
<logical-name>inputStream</logical-name>
<props>
....
</bds>
<bds>
<logical-name>outputStream</logical-name>
<props>
...
</bds>
<bds>
<logical-name>errorStream</logical-name>
<props>
...
</bds>
</batch-data-streams>
- 패키징을 위해 BatchPackager를 사용하는 동안,
jobstepclass 작업 단계 클래스에 대한 애플리케이션이
com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep로 설정되어야 합니다.
예를 들어,
WebSphere Extended Deployment Compute Grid
버전 6.1.1 사용:
ejbname.1=IVTStep1
jndiname.1=ejb/MyThresholdBatchStep
jobstepclass.1=com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep
WebSphere Extended Deployment Compute Grid
버전 8.0 사용:
...
<job-step name="Step1">
<classname>com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep</classname>
...