VSAM データ・セットはすべて、アクセス方式サービス・プログラム DEFINE コマンドを介して事前定義し、カタログしなければなりません。 VSAM データ・セットに関する情報の大部分は、カタログに入っているので、最小限の DD または環境変数情報のみを指定するだけで構いません。
VSAM ファイル (索引付き、相対、および順次) の割り振りは、COBOL ファイルの割り振りに関する一般的な規則に従います。
環境変数を使用して VSAM ファイルを割り当てる場合、変数名は大文字でなければなりません。 通常、関係がある変数は、入力およびデータ・バッファーだけです。以下のオプションを示された順番で指定する必要があります。他のオプションを指定してはなりません。
VSAM ファイルおよび対応する export コマンドに必要な基本 DD ステートメントは、次のとおりです。
//ddname DD DSN=dsname,DISP=SHR,AMP=AMORG export evname="DSN(dsname),SHR"
いずれの場合も、dsname は、アクセス方式サービス・プログラムの DEFINE CLUSTER コマンドまたは DEFINE PATH コマンドで使用した名前と同じ名前でなければなりません。データ・セットは既にカタログされているため、DISP は OLD または SHR でなければなりません。JCL を使用する際に MOD を指定すると、そのデータ・セットは OLD として扱われます。
AMP は、データ・セットについてプログラムによって提供される情報を補足する VSAM JCL パラメーターです。AMP が有効になるのは、プログラムが VSAM ファイルをオープンしたときです。AMP パラメーターを介して設定されたパラメーターは、カタログ内の情報またはプログラムによって提供される情報に優先します。AMP パラメーターは、次の場合にのみ必要です。
//ddname DD DUMMY,AMP=AMORG
//ddname DD DSN=VSAM.dsname,DISP=SHR,
// AMP=('BUFNI=4,BUFND=8')
環境変数を使用して VSAM データ・セットを割り振る場合は、AMP を指定することはできません。
VSAM 基本クラスターの場合は、SELECT 節の後の ASSIGN 節で指定した名前と同じシステム名 (DD 名または環境変数名) を指定してください。
COBOL プログラムで代替索引を使用する場合は、基本クラスターのシステム名 (DD ステートメントまたは環境変数) だけでなく、各代替索引パスごとのシステム名も指定する必要があります。プログラム内で代替索引パスのシステム名を明示的に宣言するための言語メカニズムはありません。このため、それぞれの代替索引パスのシステム名 (DD 名または環境変数名) を以下のガイドラインに従って作成する必要があります。
例えば、基本クラスターのシステム名が ABCD である場合、プログラム内のファイルに定義された最初の代替索引パスは ABCD1、2 番目の代替索引パスのシステム名は ABCD2 となり、以後同様に続きます。
基本クラスター・システム名とシーケンス番号を合わせた長さが 8 文字を超える場合は、システム名の基本クラスター部分の右側が切り捨てられ、連結結果が 8 文字になるよう切り詰められます。例えば、基本クラスターのシステム名が ABCDEFGH である場合、最初の代替索引パスのシステム名は ABCDEFG1、10 番目の代替索引パスのシステム名は ABCDEF10 となり、以後同様に続きます。
関連タスク
ファイルの割り振り