📜  VSAM-RRDS

📅  最后修改于: 2020-11-22 17:21:21             🧑  作者: Mango


RRDS被称为相对记录数据集。 RRDS群集类似于ESDS群集。唯一的区别是,RRDS记录由相对记录号(RRN)进行访问,我们必须代码的号码里面的DEFINE CLUSTER命令。以下是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))      
/*

如果要在大型机服务器上执行上述JCL。它应以MAXCC = 0执行,并将创建MY.VSAM.RRDSFILE VSAM文件。

删除RRDS集群

使用IDCAMS实用程序删除RRDS群集。 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
/*

如果要在大型机服务器上执行上述JCL。它应以MAXCC = 0执行,并将删除MY.VSAM.RRDSFILE VSAM群集。