Vsam-rrds

提供:Dev Guides
移動先:案内検索

VSAM-RRDS

RRDSは、相対レコードデータセットとして知られています。 RRDSクラスターはESDSクラスターに似ています。 唯一の違いは、RRDSレコードが*相対レコード番号(RRN)によってアクセスされることです。DEFINECLUSTERコマンド内で *NUMBERED をコーディングする必要があります。 RRDSの主要な機能は次のとおりです-

  • 相対レコードデータセットには、*相対レコード番号(RRN)*で識別されるレコードがあります。これは、最初のレコードに相対的なシーケンス番号です。
  • RRDSでは、レコード1、レコード2などのような番号でレコードにアクセスできます。 これはランダムアクセスを提供し、アプリケーションプログラムが目的のレコード番号を取得する方法を持っていることを前提としています。
  • RRDSデータセット内のレコードには、目的のレコードの相対レコード番号を指定することで、相対レコード番号順に、または直接アクセスできます。
  • RRDSデータセットのレコードは、固定長のスロットに保存されます。 各レコードは、そのスロットの番号によって参照されます。番号は、1からデータセット内のレコードの最大数までさまざまです。
  • RRDSのレコードは、空のスロットに新しいレコードを挿入することで書き込むことができます。
  • レコードはRRDSクラスターから削除できるため、空のスロットが残ります。
  • RRDSデータセットを使用できる固定長のレコードまたはコンテキストの意味を持つレコード番号を使用するアプリケーション。
  • RRDSは、他のファイルと同様に COBOL プログラムで使用できます。 JCLでファイル名を指定し、KSDSファイルを使用してプログラム内で処理できます。 COBOLプログラムでは、ファイル編成を RELATIVE として指定し、RRDSデータセットで任意のアクセスモード*(シーケンシャル、ランダム、またはダイナミック)*を使用できます。

RRDSファイル構造

スペースは、RRDSファイル構造の固定長スロットに分割されます。 スロットは、完全に空であるか、完全にいっぱいのいずれかです。 したがって、新しいレコードを空のスロットに追加したり、既存のレコードを空いているスロットから削除したりできます。 相対レコード番号を指定することで、どのレコードにも直接アクセスできます。 次の例は、データファイルの基本構造を示しています-

データコンポーネント

Relative Record Number Record Field 1 Record Field 2
1 Tutorial Point
2 Mohtashim M.
3 Nishant Malik

RRDSクラスターの定義

次の構文は、RRDSクラスターの作成中に使用できるパラメーターを示しています。

パラメーターの説明は、VSAM-クラスターモジュールで説明したものと同じです。

DEFINE CLUSTER (NAME(rrds-file-name)     -
BLOCKS(number)                           -
VOLUMES(volume-serial)                   -
NUMBERED                                 -
RECSZ(average maximum)                   -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number)                             -
[READPW(password)]                       -
[FOR(days)|TO(date)]                     -
[UPDATEPW(password)]                     -
[REUSE/NOREUSE])                       -
DATA                                     -
   (NAME(rrds-file-name.data))

次の例は、IDCAMSユーティリティを使用してJCLでRRDSクラスターを作成する方法を示しています-

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.RRDSFILE)  -
   NUMBERED                                -
   RECSZ(80 80)                            -
   TRACKS(1,1)                             -
   REUSE                                   -
   FREESPACE(3 3) )                        -
   DATA (NAME(MY.VSAM.RRDSFILE.DATA))
/*

Mainframesサーバーで上記のJCLを実行する場合。 MAXCC = 0で実行し、MY.VSAM.RRDSFILE VSAMファイルを作成します。

RRDSクラスターの削除

RRDSクラスターは、IDCAMSユーティリティを使用して削除されます。 DELETEコマンドは、カタログからVSAMクラスターのエントリーを削除し、オプションでファイルを削除することにより、オブジェクトが占有するスペースを解放します。

DELETE data-set-name CLUSTER
[ERASE/NOERASE]
[FORCE/NOFORCE]
[PURGE/NOPURGE]
[SCRATCH/NOSCRATCH]

上記の構文は、RRDSクラスターの削除中に使用できるパラメーターを示しています。 パラメーターの説明は、VSAM-クラスターモジュールで説明したものと同じです。

次の例は、IDCAMSユーティリティを使用してJCLでRRDSクラスターを削除する方法を示しています-

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DELETE MY.VSAM.RRDSFILE CLUSTER
/*

Mainframesサーバーで上記のJCLを実行する場合。 MAXCC = 0で実行し、MY.VSAM.RRDSFILE VSAMクラスターを削除します。