DB バッチ処理
DB バッチ処理に関する以下の説明は、 このバッチ・プログラムがご使用のアプリケーションにとって適切であるかどうかを判断するのに役立ちます。
DB バッチ・プログラムがアクセスできるデータ
DB バッチ・プログラムは、全機能データベース、 Db2 for z/OS® データベース、GSAM データベース、および z/OS ファイルにアクセスできます。 DB バッチ・プログラムは、DEDB や MSDB にはアクセスできません。
DB バッチ処理の使用
バッチ・プログラムは通常、オンライン・プログラムよりも長時間稼働する プログラムです。 多量のデータベースを更新する場合や、報告書を印刷する場合にバッチ・プロ グラムを使用します。 バッチ・プログラムは、単独で稼働する (データベースなどのリソースを他のプログラムと競合することがない) ため、制御領域から独立して実行できます。 データ共用を使用する場合は、DB バッチ・プログラムとオンライン・プログラムは全機能データベースに同時にアクセスできます。 バッチ・プログラムには、以下のような特徴があります。
- 通常、報告書などの多量の出力を作成します。
- 別のプログラムやユーザーによって実行されることはありません。 バッチ・プログラムは、通常、特定の時間間隔でスケジュールされ(例えば、 週ごとに)、JCL を使用して始動します。
- 早急には必要ない出力を作成します。 バッチ出力のターンアラウンド・タイムは、オンライン・プログラムのよう に重要ではありません。
DB バッチ・プログラムのリカバリー
バッチ・プログラムにチェックポイントを組み込み、障害が起こった場合にプログラムを再起動します。
チェックポイントの発行バッチ・プログラム内でチェックポイントを出して、データベース変更をコミットし、プログラムを再始動する場所を設けてください。 バッチ・プログラムにおいては、MPP、トランザクション指向の BMP、および IFP の場合とは異なり、コミット・ポイントは自動的には起こらないため、 バッチ・プログラム内でチェックポイントを出すことは重要です。
チェックポイントを出すことは、オンライン・システムとデータを共用している バッチ・プログラムでは特に重要です。 チェックポイントによってリソースが開放され、オンライン・プログラムがリソースを使用 できるようになります。 作成するすべてのバッチ・プログラムに最初からチェックポイントを 組み込んでおく必要があります。 その時点ではチェックポイントのサポートが必要ないかもしれませんが、後でチ ェックポイントを組み込むよりも、あらかじめ組み込んでおいたほうが簡単で す。 また、バッチ・プログラムから BMP に変換したり、データを共用したい場合 があるかもしれません。
チェックポイント (あるいはその他のシステム・サービス呼び出し) を出す場合、 プログラムに I/O PCB を指定する必要があります。 I/O PCB を得るには、プログラムの PSB 内で、 PSBGEN ステートメントに CMPAT=YES を指定して、互換性オプションを使用します。
GSAM DB はバックアウトされませんが、XRST 呼び出しを介した BMP の再始動プロセス中に再配置されます。 XRST 呼び出しは、データ・セット・ポインターを呼び出しで指定されたチェックポイント ID に再配置します。 アプリケーションは、起動されると、そのポイントから開始されて先へ進みます。 XRST 呼び出しで指定されたチェックポイント ID は、動的バックアウトまたはバッチ・バックアウトのいずれかによる非 GSAM DB のバックアウト先と同じ ID であることが必要です。
DB バッチ・プログラムが異常終了した場合にどのような事態が起こるかは、 システム・ログのためのストレージ・メディアのタイプによって異なります。 DASD (直接アクセス・ストレージ・デバイス) またはテープのいずれかにシステム・ログを保管するように指定できます。
DASD 上のシステム・ログシステム・ログが DASD に保管されている場合は、BKO 実行パラメーターを使用して、最後のコミット・ポイント以降にプログラムがデータベースに行った変更を IMS が動的にバックアウトするように指定できます。
関連資料: BKO 実行パラメーターの使用法については、「 IMS Version 15.3 System Definition」を参照してください。
データベース変更を動的にバックアウトすると、次のような利点があります。
- 障害が起きたプログラムによってアクセスされたデータを、すぐに他のプ ログラムで使用することができます。 バッチ・バックアウトを使用すると、データベース変更をバックアウトするために IMS バッチ・バックアウト・ユーティリティーが実行されるまで、他のプログラムはデータにアクセスできません。
- データを共用している 2 つのプログラムがデッドロックされた場合、そ のうちの 1 つは処理を続行することができます。 動的バックアウトではなく、 バッチ・バックアウトを使用した場合は、プログラムは両方とも失敗します。
IMS は、 IMS検出の障害が発生したとき (例えば、デッドロックが検出されたとき) に、バッチ・プログラムの動的バックアウトを実行します。 DASD へのロギングを行うことにより、バッチ・プログラムが SETS
、
ROLB
、および ROLS
システム・サービス呼び出しを
出すことが可能になります。 これらの呼び出しにより、 IMS はプログラムが行った変更を動的にバックアウトします。
関連資料: SETS
、 ROLB
、および ROLS
呼び出しについては、「 IMS バージョン 15.3 データベース管理」のデータベースのリカバリーおよびデータベース保全性の維持に関する情報を参照してください。
バッチ・アプリケーション・プログラムが異常終了し、バッチ・システム・ログがテープに保管されている場合は、 IMS バッチ・バックアウト・ユーティリティーを使用して、データベースに対するプログラムの変更をバックアウトする必要があります。