COBOL シミュレート可変長相対レコードデータ・セット (RRDS) は、Enterprise COBOL バージョン 4 でコンパイルされたプログラムではサポートされません。 これらのファイルは VSAM RRDS ファイルに変更する必要があります。
Enterprise COBOL バージョン 4 より前の、NOCMPR2 コンパイラー・オプションをサポートする COBOL コンパイラーでは、SIMVRD ランタイム・オプション・サポートを使用する場合、VSAM KSDS を使って COBOL シミュレート可変長 RRDS が使用できました。
COBOL プログラムで VSAM 可変長 RRDS および COBOL シミュレート可変長 RRDS を特定および記述するために使用するコーディングは、同様です。Enterprise COBOL バージョン 4 では、VSAM 可変長 RRDS サポートを使用しなければなりません。一般に、COBOL シミュレート可変長 RRDS から VSAM 可変長 RRDS サポートへマイグレーションするのに必要な処置は、ファイルの IDCAMS 定義を変更することだけです。
| ステップ | VSAM 可変長 RRDS | COBOL シミュレート可変長 RRDS |
|---|---|---|
| 1 | ORGANIZATION IS RELATIVE 節でファイルを定義します。 | 同じ |
| 2 | FD 項目を使って可変長サイズでレコードを記述します。 | 同じ。ただし、データ・セットにアクセスするすべての COBOLプログラムの FD 項目の中に、RECORD IS VARYING をコーディングしなければなりません。 |
| 3 | NOSIMVRD ランタイム・オプションを使用します。 | SIMVRD ランタイム・オプションを使用します。 |
| 4 | アクセス方式サービス・プログラムを通じて、VSAM ファイルを RRDS として定義します。 | アクセス方式サービス・プログラムを通じて、VSAM ファイルを以下のように定義します。DEFINE CLUSTER INDEXED KEYS(4,0) RECORDSIZE(avg,m)
|
シミュレート可変長 RRDS のステップ 2 で、可変長レコード・フォーマットを暗示するほかの言語エレメントをコーディングしても、COBOL シミュレート可変長 RRDS にはなりません。 例えば、以下のエレメントだけでは、シミュレート可変長 RRDS アクセスを使用しませんでした。したがって SIMVRD ランタイム・オプションは必要ありませんでした。
レコードを含み、出力用にオープンするファイルに対して、REUSE IDCAMS パラメーターを使用します。
エラー: シミュレート可変長相対データ・セットと真の VSAM RRDS データ・セットを処理する場合、COBOL ファイル定義と VSAM データ・セット属性が一致しないと OPEN ファイル状況 39 が発生します。