バッチ・アプリケーションは、Enterprise JavaBeans (EJB) ベースの Java 2 Platform Enterprise Edition (J2EE) アプリケーションです。 これらのアプリケーションは、 バッチ・ランタイム環境がアプリケーションを宛先とするバッチ・ジョブの開始を 管理できるようにするいくつかの明確に定義されたインターフェースに準拠します。 POJO ベースのバッチ・アプリケーションの作成は、 バッチ・アプリケーションの作成において推奨される方法です。
バッチ・ジョブは 1 つ以上のバッチ・ステップで構成されます。 ジョブ内のすべてのステップは、順番に処理されます。バッチ・アプリケーションを複数のステップに分割することにより、バッチ・アプリケーション内の個別タスクを分離できます。 バッチ・ステップは、WebSphere Extended Deployment 提供のホーム、ビジネスおよびキーのインターフェースを使用する、 ローカルのコンテナー管理パーシスタンス・エンティティー Bean として実装されます。 バッチ・ステップ EJB のビジネス・インターフェース com.ibm.websphere.batch.BatchJobStepLocalInterface は、バッチ・ランタイム環境がバッチ・アプリケーションを制御するために呼び出すメソッドを提供します。
ジョブ・スケジュールを実行依頼し、ジョブが特定の時間に処理されるようにすることができます。また、 ジョブが 1 日または 1 週間などの特定の時刻に繰り返されるように、ジョブ・スケジュールを構成できます。ジョブを実行依頼する用意ができたら、 ジョブの実行の開始日時を指定することによって、実行依頼を遅延させることができます。
バッチ・アプリケーションは、そのデプロイメント記述子で、特別のステートレス・セッション Bean を宣言する必要があります。この Bean は、バッチ・ジョブ・コントローラーとして機能します。 また、バッチ・アプリケーションで使用されているすべてのバッチ・ステップ・エンタープライズ Bean へのエンタープライズ Bean 参照を含まなければなりません。 この Bean の実装はバッチ・アプリケーションではなく、WebSphere Extended Deployment によって提供されます。 Bean はバッチ・アプリケーション・デプロイメント記述子でのみ宣言する必要があります。 各バッチ・アプリケーションにつき 1 つのコントローラー Bean のみ定義できます。
1 つのバッチ・ステップは、それに関連したゼロまたはそれ以上のバッチ・データ・ストリーム (BDS) を持つことができます。 BDS は、com.ibm.websphere.batch.BatchDataStream インターフェースを実装する Java クラスです。 BDS は、バッチ・ステップで処理されるデータを含む入力ストリームを読み取る Java オブジェクトです。 BDS はさらに、データを読み取るのではなく、データを書き込む出力ストリームにもなります。
BatchDataStream インターフェースのメソッドにより、バッチ・ランタイム環境が、 バッチ・ステップによって使用されているデータ・ストリームを管理することが可能になります。 例えば、メソッドの 1 つは、現在のカーソルの情報をストリームから取得し、 どれだけの量のデータがバッチ・ステップによって処理されたかの追跡を続けます。
バッチ・ランタイム環境は、バッチ・ステップが呼び出されるグローバル・トランザクションをどの程度の頻度でコミットするかを判定するために、 チェックポイント・アルゴリズムを使用します。 バッチ・ジョブの XML ジョブ制御言語 (xJCL) 定義で、使用されるチェックポイント・アルゴリズムを定義します。 xJCL のチェックポイント・アルゴリズムに指定されるプロパティーにより、トランザクションのタイムアウトやチェックポイントの間隔などのチェックポイントの動作をバッチ・ステップ用にカスタマイズできます。WebSphere Extended Deployment には、時間ベースおよび記録ベースのチェックポイント・アルゴリズムが用意されています。 追加のカスタム・チェックポイント・アルゴリズムの構築用として、チェックポイント・アルゴリズム SPI も提供されています。
バッチ・アプリケーションは、J2EE エンタープライズ・アーカイブ (EAR) ファイル内の 標準 Java 2 Platform Enterprise Edition (J2EE) EJB アプリケーションとしてパッケージされます。 バッチ・ステップ・エンティティー・エンタープライズ Bean およびバッチ・データ・ストリームのクラスをパッケージして、 このアプリケーションを使用してバッチ・ステップをパッケージする必要があります。 また、バッチ・ジョブ・コントローラー Bean も、各バッチ・アプリケーションの エンタープライズ Bean デプロイメント記述子で宣言する必要があります。 標準の J2EE 開発ツールを使用して、バッチ・アプリケーション EAR ファイルの開発と パッケージを行います。
結果アルゴリズムはバッチ・プログラミング・モデルのオプショナル機能です。 結果アルゴリズムは XML ジョブ制御言語 (xJCL) を通してバッチ・ステップに適用されます。 そのアルゴリズムは、バッチ・ジョブの戻りコードを操作するために使用されます。 また、結果アルゴリズムはステップ・リターン・コードに基づくトリガーのプレースホルダーです。
バッチ・ジョブの戻りコードは、システム とユーザー という 2 つのグループに分類されます。 システム戻りコードは、負の整数で定義されます。ユーザー・アプリケーションの戻りコードは、正の整数で定義されます。システムおよびユーザーのいずれのコード範囲にもゼロ (0) の戻りコードが含まれます。ユーザー・アプリケーションの戻りコードが、システム戻りコードの範囲に指定されると、ジョブ・ログおよびシステム・ログに警告メッセージが記載されます。