エラー・トレラントな汎用のバッチ・ステップでは、1 つの入力ストリーム、1 つの出力ストリーム、および 1 つのエラー・ストリームが使用されます。バッチ・ループの反復ごとに、このステップでは、バッチ・データ・ストリーム (BDS) の入力ストリームから 1 つのエントリーが読み取られ、処理のために BatchRecordProcessor プロパティーに渡されます。
始める前に
BatchRecordProcessor プロパティーは、有効なデータ・オブジェクトを返すか、許容エラーではヌル値を返します。戻り値がヌルの場合は、入力ストリームから読み取られたレコードがエラー・ストリームにログオンし、invalidRecordEncountered メソッドが ThresholdPolicy インターフェースで呼び出されます。しきい値ポリシーにより、エラー・トレラントなしきい値に達しているかどうかが判別されます。達している場合は、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>
...