VSAM - RRDS

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
1TutorialPoint
2MohtashimM.
3NishantMalik

定义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集群.