VSAM ファイル

CICS ® ファイル制御は、3 つの VSAM アクセス・モード (ローカル共用リソース (LSR)、非共用リソース (NSR)、およびレコード・レベル共用 (RLS)) をサポートします。

バッチ・ジョブとのデータ・セットの共用

非 RLS アクセス・モードでは、VSAM 共用オプション (使用可能な場合) またはジョブ制御共用を使用して、オンライン CICS 更新トランザクションとバッチ更新プログラムの間で直接データ・セットを共用することは推奨されません。 共用すると、アプリケーション・プログラムが正常に機能しているように見えるものの、誤ったデータが使用されることで、データの保全性に対するリスクが発生します。 このようなデータ保全性の喪失は、例えば、CICS 作業単位の実行中に、後で非 CICS ジョブによって更新されるレコードを CICS 作業単位が更新する場合に発生する可能性があります。 CICS 作業単位が異常終了した場合、CICS は CICS 作業単位の開始時の値までレコードをバックアウトします。これにより、非 CICS ジョブからの更新が破棄されます。

ファイル所有領域および RLS アクセス

複数の CICS 領域間でデータ・セットを共用するには、RLS アクセス・モードを使用するか、アプリケーション所有領域 (AOR) から機能シップを使用してファイル所有領域 (FOR) を使用します。 RLS モードでアクセスされるファイルはすべて各 CICS 領域に対してローカルと見なされるため、リカバリーの観点からは、RLS は AOR と FOR の間で行われるように分散作業単位を作成しません。 SMSVSAM サーバーが FOR の代わりになります。 ただし、RLS モードでアクセスされるデータ・セットには、SMSVSAM の役割およびそのロック管理について特別なリカバリーの考慮事項があります。

順方向リカバリー

VSAM ファイルの場合、 CICS VSAM Recovery for z/OS®などの順方向リカバリー・ユーティリティーを使用できます。これは、データ・セットへの何らかの物理的損傷の結果としてオンライン・バックアウト処理が失敗した場合に使用できます。 順方向リカバリーでは、以下の操作を実行します。
  • データ・セットのバックアップ・コピーを作成します。
  • 順方向リカバリー・ストリームでのファイル変更後イメージを記録します。 ファイルの順方向リカバリー・サポートを希望する場合は、CICS が自動的にこれを行います。
  • 順方向リカバリー・ユーティリティーを実行するジョブを作成し、入力として必要な可能性があるバックアップ・データ・セットおよびログ・ストリームを制御します。 CICS VSAM Recovery for z/OS は、ISPF ダイアログ・インターフェースを使用して順方向リカバリー・ジョブを自動的に構成します。

逆方向リカバリー

VSAM ファイルの逆方向リカバリーを確実に実行できようにするには、以下の点を考慮する必要があります。
  • キー順データ・セット (KSDS) および固定長および可変長両方の相対レコード・データ・セット (RRDS):
    • KSDS または RRDS データ・セットを参照するファイルが、LOG (ALL) を指定してリカバリー可能と指定されている場合、CICS は、中断された作業単位によって行われた更新、追加、および削除をバックアウトすることができます。
    • バックアウト障害については、 バックアウト失敗のリカバリーを参照してください。
  • 入力順データ・セット (VSAM-ESDS):
    • 新しいレコードは VSAM-ESDS の末尾に追加されます。 追加されたレコードは、物理的に削除できなくなります。 論理削除は、レコードでデータを変更することによってのみ実行できます。例えば、XFCLDEL グローバル・ユーザー出口プログラムを使用して、レコードに「論理削除」フラグを設定します。

      詳しくは、 トランザクション・バックアウト を参照してください。

レプリカ生成ロギング

データ・セットに LOGREPLICATE が定義されている場合、VSAM ファイルはレプリカ生成に関与できます。 LOGREPLICATE を定義すると、レプリカ生成機能による 2 番目のサイトでのファイル更新の複製が可能になります。

VSAM ファイルを使用してレプリケーション・ロギングを実装するときには、システム・トランザクション CFCT およびそれと関連付けられたプログラム DFHFCLJ1 を使用して、VSAM ファイルのタイアップ・レコードを複製ログに指定間隔で提供できます。

CFCT を有効にするには、 INITPARM システム初期設定パラメーターを INITPARM=(DFHFCLJ1='nn') の形式で指定します。 nn は、間隔を分単位で定義する 01 から 60 までの範囲の 2 桁の数値です。 この範囲外の間隔値を指定すると、メッセージ DFHFC6045 が発行され、デフォルト値の 30 分が代わりに使用されます。

INITPARM=(DFHFCLJ1='nn') を使用してシステムを始動した後に、LOGREPLICATE 属性で定義された VSAM ファイルが開かれたことを CICS が検出すると、DFHFCLJ1 は、DFHFCLJ、ファイル制御ロギング、およびジャーナリング・プログラムを指定された間隔で呼び出します。 詳しくは、 DFHFCLJ1 (ファイル制御タイアップ・レコード・レプリケーター)を参照してください。