VSAM-RRDS


RRDS 被称为相对记录数据集。RRDS 集群类似于 ESDS 集群。唯一的区别是 RRDS 记录是通过相对记录号 (RRN)访问的,我们必须在 DEFINE CLUSTER 命令中编码NUMBERED 。以下是 RRDS 的主要特点 -

  • 相对记录数据集具有由相对记录号 (RRN)标识的记录,RRN 是相对于第一条记录的序列号。

  • RRDS 允许按编号访问记录,如记录 1、记录 2 等。这提供了随机访问,并假设应用程序有办法获取所需的记录号。

  • RRDS 数据集中的记录可以按相对记录编号顺序顺序访问,也可以通过提供所需记录的相对记录编号来直接访问。

  • RRDS 数据集中的记录存储在固定长度的槽中。每条记录都由其槽号引用,槽号可以从 1 到数据集中的最大记录数不等。

  • 可以通过将新记录插入到空槽中来写入 RRDS 中的记录。

  • 可以从 RRDS 集群中删除记录,从而留下一个空槽。

  • 使用固定长度记录或具有上下文含义的记录号的应用程序可以使用 RRDS 数据集。

  • RRDS 可以像任何其他文件一样在COBOL程序中使用。我们将在JCL中指定文件名,我们可以使用KSDS文件在程序内部进行处理。在 COBOL 程序中,将文件组织指定为RELATIVE ,您可以对 RRDS 数据集使用任何访问模式(顺序、随机或动态) 。

RRDS 文件结构

RRDS 文件结构中的空间被划分为固定长度的槽。插槽可以完全空闲或完全满。因此,可以将新记录添加到空槽中,并且可以从已填充的槽中删除现有记录。我们可以通过给出相对记录号直接访问任何记录。以下示例显示了数据文件的基本结构 -

数据组件

相对记录数 记录字段1 记录字段2
1 教程 观点
2 莫赫塔希姆 M。
3 尼尚特 马利克

定义 RRDS 集群

以下语法显示了我们在创建 RRDS 集群时可以使用哪些参数。

参数描述与 VSAM - Cluster 模块中提到的相同。

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 - 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 集群。