📅  最后修改于: 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文件结构中,空间分为固定长度的插槽。插槽可以完全空闲或完全满。因此,可以将新记录添加到空插槽,并可以从已填充的插槽中删除现有记录。我们可以通过提供相对记录号直接访问任何记录。以下示例显示了数据文件的基本结构-
Relative Record Number | Record Field 1 | Record Field 2 |
---|---|---|
1 | Tutorial | Point |
2 | Mohtashim | M. |
3 | Nishant | Malik |
以下语法显示了在创建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文件。
使用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群集。