RRDS称为相对记录数据集. RRDS集群类似于ESDS集群.唯一的区别是RRDS记录由相对记录号(RRN)访问,我们必须在DEFINE CLUSTER命令中编码 NUMBERED .以下是RRDS的主要特征 :
- 相对记录数据集具有由相对标识的记录记录编号(RRN),这是相对于第一条记录的序列号.
- RRDS允许按记录1的数字访问记录,记录2,依此类推.这提供了随机访问,并假设应用程序有办法获得所需的记录号.
- RRDS数据集中的记录可以按顺序访问记录号码顺序,或直接通过提供所需记录的相对记录号.
- RRDS数据集中的记录存储在固定长度的槽中.每个记录由其插槽编号引用,编号可以从1到数据集中的最大记录数.
- RRDS中的记录可以是通过将新记录插入空槽来编写.
- 可以从RRDS群集中删除记录,从而留下空槽.
- 使用固定长度记录或具有可使用RRDS数据集的上下文含义的记录编号的应用程序.
- RRDS可以在 COBOL 程序中使用,就像任何其他文件一样.我们将在JCL中指定文件名,我们可以使用KSDS文件来处理程序内部.在COBOL程序中,将文件组织指定为 RELATIVE ,您可以使用任何访问模式(顺序,随机或动态)和RRDS数据集.
RRDS文件结构
空间在RRDS文件结构中分为固定长度的插槽.插槽可以完全空置或完全充满.因此,可以将新记录添加到空槽中,并且可以从填充的槽中删除现有记录.我们可以通过提供相对记录号直接访问任何记录.以下示例显示了数据文件的基本结构 :
数据组件
相对记录编号 | 记录字段1 | 记录字段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))
示例
以下示例说明如何在JCL中创建RRDS集群使用IDCAMS实用程序 :
//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群集
使用IDCAMS删除RRDS群集效用. DELETE命令从目录中删除VSAM集群的条目,并可选择删除该文件,从而释放该对象占用的空间.
DELETE data-set-name CLUSTER [ERASE / NOERASE] [FORCE / NOFORCE] [PURGE / nopURGE] [SCRATCH / NOSCRATCH]
上面的语法显示了删除RRDS群集时我们可以使用的参数.参数说明与VSAM - Cluster模块中提到的相同.
示例
以下示例显示如何使用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集群.