バッチ・プログラミング・モデル
バッチ・アプリケーションは、Enterprise JavaBeans (EJB) ベースの Java™ Platform Enterprise Edition (Java EE) アプリケーションです。 これらのアプリケーションは、アプリケーション用バッチ・ジョブの開始をバッチ・ランタイム環境で管理可能にする、いくつかの明確に定義されたインターフェースに従っています。
- バッチ・ジョブ・ステップ
- バッチ・ジョブは、1 つ以上のバッチ・ステップで構成することができます。 ジョブ内のすべてのステップが順次処理されます。1 つのバッチ・アプリケーションを複数のステップに分割することで、バッチ・アプリケーション内の個別のタスクを分離することができます。 バッチ・ステップは、com.ibm.websphere.batch.BatchJobStepInterface インターフェースを実装することで作成できます。 このインターフェースは、バッチ・ランタイムがバッチ・アプリケーションを実行するために開始するバッチ・ステップのビジネス・ロジックを提供します。
- バッチ・コントローラー Bean
- バッチ・アプリケーションには、製品ランタイムに用意されたステートレス・セッション Bean が含まれています。 このステートレス・セッション Bean は、ジョブ・ステップ・コントローラーとして機能します。 このコントローラー・ステートレス・セッション Bean は、バッチ・アプリケーションごとに 1 回、アプリケーション・デプロイメント記述子で宣言されます。
- バッチ・データ・ストリーム
- BatchDataStream インターフェースのメソッドにより、バッチ・ステップで使用されているデータ・ストリームをバッチ・ランタイム環境で管理することができます。 例えば、メソッドの 1 つでは、ストリームから現在のカーソル情報を取得することで、バッチ・ステップによってどれだけのデータが処理されたかを追跡することができます。
- チェックポイント・アルゴリズム
- バッチ・ランタイム環境では、チェックポイント・アルゴリズムを使用して、バッチ・ステップが開始されるグローバル・トランザクションをコミットする頻度を決定します。 バッチ・ジョブの XML ジョブ制御言語 (xJCL) 定義によって、使用するチェックポイント・アルゴリズムが規定されます。 xJCL のチェックポイント・アルゴリズムに指定されたプロパティーによって、チェックポイントの動作 (トランザクションのタイムアウトやチェックポイント間隔など) をバッチ・ステップ用にカスタマイズできます。 製品には、時間ベースのチェックポイント・アルゴリズムおよびレコード・ベースのチェックポイント・アルゴリズムが用意されています。 追加のカスタム・チェックポイント・アルゴリズムを作成するためのチェックポイント・アルゴリズム SPI も用意されています。
- 結果アルゴリズム
- 結果アルゴリズムは、バッチ・プログラミング・モデルのオプション・フィーチャーです。 結果アルゴリズムは、XML ジョブ制御言語 (xJCL) によってバッチ・ステップに適用されます。 これらのアルゴリズムは、バッチ・ジョブの戻りコードを操作するために使用されます。 また、これらのアルゴリズムは、ステップの戻りコードに基づいたトリガーのプレースホルダーでもあります。
- バッチ・ジョブの戻りコード
- バッチ・ジョブの戻りコードは、システム およびユーザー という 2 つのグループに分かれます。
システムの戻りコードは、負の整数として定義されます。
ユーザー・アプリケーションの戻りコードは、正の整数として定義されます。
システムおよびユーザーのどちらの範囲にも、ゼロ (0) の戻りコードが含まれます。
システムの戻りコードの範囲にユーザー・アプリケーションの戻りコードが指定されると、ジョブおよびシステムのログに警告メッセージが記録されます。
注: アプリケーションがジョブ戻りコードの値を設定できた場合でも、その値は、ジョブが正常に完了したときのみに返されます。 ジョブが実行の失敗または再起動可能の状況で失敗した場合、返される値は、前述の表で説明したランタイムセットの負の戻りコードの 1 つです。