Vsam-esds
提供:Dev Guides
VSAM-ESDS
ESDSは、エントリシーケンスデータセットとして知られています。 エントリ順のデータセットは、いくつかの機能が追加された順次ファイル編成のように動作します。 記録に直接アクセスでき、安全のためにパスワードも使用できます。 ESDSデータセットのDEFINE CLUSTERコマンド内に NONINDEXED をコーディングする必要があります。 ESDSの主要な機能は次のとおりです-
- ESDSクラスターのレコードは、データセットに挿入された順序で保存されます。
- レコードは* Relative Byte Address(RBA)*として知られる物理アドレスによって参照されます。 ESDSデータセットに80バイトのレコードがあり、最初のレコードのRBAが0、2番目のレコードのRBAが80、3番目のレコードのRBAが160などであるとします。
- レコードは、*アドレス指定アクセス*と呼ばれるRBAによって順次アクセスできます。
- レコードは、挿入された順に保持されます。 最後に新しいレコードが挿入されます。
- ESDSデータセットでは、レコードの削除はできません。 ただし、非アクティブとしてマークできます。
- ESDSデータセットのレコードは、固定長でも可変長でもかまいません。
- ESDSはインデックス付けされていません。 キーはESDSデータセットに存在しないため、重複レコードが含まれる場合があります。
- ESDSは、他のファイルと同様にCOBOLプログラムで使用できます。 JCLでファイル名を指定し、プログラム内での処理にESDSファイルを使用できます。 COBOLプログラムでは、ファイル構成を Sequential として指定し、アクセスモードをESDSデータセットを使用して Sequential として指定します。
ESDSクラスターの定義
次の構文は、ESDSクラスターの作成中に使用できるパラメーターを示しています。 パラメーターの説明は、VSAM-クラスターモジュールで説明したものと同じです。
DEFINE CLUSTER (NAME(esds-file-name) -
BLOCKS(number) -
VOLUMES(volume-serial) -
NONINDEXED -
RECSZ(average maximum) -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number) -
[READPW(password)] -
[FOR(days)|TO(date)] -
[UPDATEPW(password)] -
[REUSE/NOREUSE]) -
DATA -
(NAME(esds-file-name.data))
例
次の例は、IDCAMSユーティリティを使用してJCLでESDSクラスターを作成する方法を示しています-
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DEFINE CLUSTER (NAME(MY.VSAM.ESDSFILE) -
NONINDEXED -
RECSZ(80 80) -
TRACKS(1,1) -
CISZ(4096) -
FREESPACE(3 3) ) -
DATA (NAME(MY.VSAM.ESDSFILE.DATA))
/*
Mainframesサーバーで上記のJCLを実行する場合。 MAXCC = 0で実行し、MY.VSAM.ESDSFILE VSAMファイルを作成します。
ESDSクラスターの削除
ESDSクラスターは、IDCAMSユーティリティを使用して削除されます。 DELETEコマンドは、カタログからVSAMクラスターのエントリーを削除し、オプションでファイルを削除することにより、オブジェクトが占有するスペースを解放します。
DELETE data-set-name CLUSTER
[ERASE/NOERASE]
[FORCE/NOFORCE]
[PURGE/NOPURGE]
[SCRATCH/NOSCRATCH]
上記の構文は、ESDSクラスターの削除中に使用できるパラメーターを示しています。 パラメーターの説明は、VSAM-クラスターモジュールで説明したものと同じです。
例
次の例は、IDCAMSユーティリティを使用してJCLでESDSクラスターを削除する方法を示しています-
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DELETE MY.VSAM.ESDSFILE CLUSTER
/*
Mainframesサーバーで上記のJCLを実行する場合。 MAXCC = 0で実行し、MY.VSAM.ESDSFILE VSAMクラスターを削除します。