バッチ・ジョブ・ステップ
バッチ・アプリケーションのタスクはバッチ・ステップに分割できます。 バッチ・ステップは、com.ibm.websphere.batch.BatchJobStepInterfance インターフェースを実装する Plain Old Java™ Object (POJO) クラスとして実装されます。バッチ・ジョブ・ステップは順次実行されます。
BatchJobStepInterface のコールバック・メソッドにより、グリッド・エンドポイントはバッチ・ジョブの実行時にバッチ・ステップを実行できます。
バッチ・ステップには、バッチ・ジョブの一部として実行されるバッチ可能ビジネス・ロジックが含まれています。 通常、バッチ・ステップには、バッチ・データ・ストリームからレコードを読み取り、そのレコードを使用してビジネス・ロジックを実行し、引き続き次のレコードを読み取るコードが含まれています。 バッチ・ステップ・クラスの processJobStep メソッドは、バッチ・ループ内のグリッド・エンドポイントによって呼び出されます。 このメソッドには、データに対して実行するようにバッチ可能なすべてのロジックが含まれています。
グリッド・エンドポイントは、バッチ・ステップ・クラスのメソッドをグローバル・トランザクション内で呼び出します。 このグローバル・トランザクションは、グリッド・エンドポイントによって管理されます。 トランザクションの動作 (トランザクションのタイムアウトやトランザクションのコミット間隔など) は、ステップが属するバッチ・ジョブと関連付けられたチェックポイント・アルゴリズムによって制御されます。
コールバック・メソッド | 説明 |
---|---|
setProperties(java.util.Properties properties) | XML ジョブ制御言語 (xJCL) で定義されたプロパティーを、java.util.Properties オブジェクト内のバッチ・ステップで使用できるようにします。 このメソッドは、グローバル・トランザクション内で呼び出されます。 |
void createJobStep() | 初期化されたことをステップに知らせます。 バッチ・データ・ストリームへのハンドルの取得などの初期化ロジックはここに配置できます。 このメソッドは、グローバル・トランザクション内で呼び出されます。 |
int processJobStep() | このメソッドの戻りコードの整数がステップの処理の終了を示すまで、バッチ・ループ内でグリッド・エンドポイントによって繰り返し呼び出されます。 どの戻りコードを返せるかについては、バッチ API の BatchConstants を確認してください。 BatchConstants.STEP_CONTINUE という戻りコードは、バッチ・ループ内でこのメソッドを引き続き呼び出すようにグリッド・エンドポイントにシグナル通知します。 BatchConstants.STEP_COMPLETE という戻りコードは、ステップが終了したため、destroyJobStep を呼び出すようにグリッド・エンドポイントに指示します。 |
int destroyJobStep() | 完了したことをステップに知らせます。 このメソッドの整数戻りコードは任意であるため、バッチ・アプリケーションの開発者が選択できます。 この戻りコードはグリッド・エンドポイント・データベースに保存され、バッチ・ステップの戻りコードを表します。 結果アルゴリズムがバッチ・ジョブと関連付けられている場合、そのアルゴリズムにはこの戻りコードが渡されます。 バッチ・ジョブの xJCL に戻りコード・ベースの条件ロジックがある場合、グリッド・エンドポイントはこの戻りコードを使用してそのロジックを評価します。 |
現在、BatchJobStepInterface の getProperties() メソッドは、グリッド・エンドポイントによって呼び出されません。 このメソッドは、対称性を維持するため、また、今後の使用に備える目的でインターフェースに組み込まれています。