VSAM群集在 JCL 中定义. JCL使用 IDCAMS 实用程序来创建集群. IDCAMS是由IBM开发的用于访问方法服务的实用程序.它主要用于定义VSAM数据集.
定义集群
以下语法显示了在定义集群下分组的主要参数,数据和索引.
.DEFINE CLUSTER (NAME(vsam-file-name) -BLOCKS(number) -VOLUMES(volume-serial) -[INDEXED / NONINDEXED / NUMBERED / LINEAR] -RECSZ(average maximum) -[FREESPACE(CI-Percentage,CA-Percentage)] -CISZ(number) -[KEYS(length offset)] -[READPW(password)] -[FOR(days)|TO(date)] -[UPDATEPW(password)] -[REUSE / NOREUSE] ) -DATA - (NAME(vsam-file-name.data)) -INDEX - (NAME(vsam-file-name.index)) -CATALOG(catalog-name[/password]))
CLUSTER级别的参数适用于整个群集. DATA或INDEX级别的参数仅适用于数据或索引组件.
我们将在下表中详细讨论每个参数 :
Sr.No | 带参数的参数 |
---|---|
1 | DEFINE CLUSTER 定义群集命令用于定义群集并指定群集及其组件的参数属性. |
2 | NAME NAME指定我们为其定义群集的VSAM文件的名称. |
3 | BLOCKS Blocks指定为集群分配的块数. |
4 | VOLUMES 卷指定一个或多个将包含集群或组件的卷. |
5 | INDEXED/NONINDEXED/NUMBERED/LINEAR 此参数可以取三个值INDEXED,NONINDEXED或NUMBERED,具体取决于我们创建的数据集类型.对于密钥序列(KSDS)文件,使用INDEXED选项.对于输入顺序(ESDS)文件,使用NONINDEXED选项.对于相对记录(RRDS)文件,需要NUMBERED选项.对于线性(LDS)文件,需要LINEAR选项.此参数的默认值为INDEXED.我们将在即将发布的模块中讨论有关KSDS,ESDS,RRDS和LDS的更多信息. |
6 | RECSZ 记录大小参数有两个值,即平均值和最大记录大小. Average指定文件中逻辑记录的平均长度,Maximum表示记录的长度. |
7 | FREESPACE Freespace指定为数据组件的控制间隔(CI)和控制区域(CA)保留的可用空间百分比.此参数的默认值为零百分比. |
8 | CISZ CISZ称为控制间隔大小.它指定了控制间隔的大小. |
9 | KEYS Keys参数仅在按键排序(KSDS)文件中定义.它指定主键与第一列的长度和偏移量.此参数的值范围为1到255个字节. |
10 | READPW READPW参数中的值指定读取级别的密码. |
11 | FOR/TO 此参数的值指定保留文件的日期和天数.此参数的默认值为零天. |
12 | UPDATEPW UPDATEPW参数中的值指定更新级别的密码. |
13 | REUSE/NOREUSE REUSE参数允许定义群集,可以将其重置为空状态而不删除并重新定义它们. |
14 | DATA - NAME 集群的DATA部分包含数据集名称,其中包含文件的实际数据. |
15 | INDEX-NAME 集群的INDEX部分包含数据部分中相应记录的主键和内存指针.它是在使用Key Sequenced群集时定义的. |
16 | CATALOG 目录参数表示将在其下定义文件的目录.我们将在即将发布的模块中单独讨论目录. |
示例
以下是一个基本示例,展示如何在JCL中定义集群 :
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C//STEP1 EXEC PGM = IDCAMS//SYSPRINT DD SYSOUT = *//SYSIN DD * DEFINE CLUSTER (NAME(MY.VSAM.KSDSFILE) - INDEXED - RECSZ(80 80) - TRACKS(1,1) - KEYS(5 0) - CISZ(4096) - FREESPACE(3 3) ) - DATA (NAME(MY.VSAM.KSDSFILE.DATA)) - INDEX (NAME(MY.VSAM.KSDSFILE.INDEX))/*
如果您将在Mainframes服务器上执行上述JCL.它应该以MAXCC = 0执行,它将创建MY.VSAM.KSDSFILE VSAM文件.
删除集群
要删除VSAM文件,需要使用IDCAMS实用程序删除VSAM群集. DELETE命令从目录中删除VSAM集群的条目,并可选择删除该文件,从而释放该对象占用的空间.如果VSAM数据集未过期,则不会删除它.要删除此类数据集,请使用PURGE选项.
DELETE data-set-name CLUSTER [ERASE / NOERASE] [FORCE / NOFORCE] [PURGE / NOPURGE] [SCRATCH / NOSCRATCH]
上面的语法显示了我们可以参数与Delete语句一起使用.我们将在下表&minus中详细讨论它们;
Sr.No | 带描述的参数 |
---|---|
1 | ERASE/NOERASE ERASE指定选项以覆盖为目录中的对象指定的ERASE属性.默认情况下采用NOERASE选项. |
2 | FORCE/NOFORCE FORCE选项被指定为删除SPACE和USERCATALOG,即使它们不为空.默认情况下采用NOFORCE选项. |
3 | PURGE/NOPURGE 如果数据集没有,则PURGE选项用于删除VSAM数据集过期.默认情况下采用NOPURGE选项. |
4 | SCRATCH/NOSCRATCH 指定SCRATCH选项以从中删除对象的关联条目卷目录.它主要用于GDG等非vsam数据集.默认情况下采用NOSCRATCH选项. |
示例
以下是显示如何在JCL中删除集群的基本示例 :
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C//STEPNAME EXEC PGM = IDCAMS//SYSPRINT DD SYSOUT = *//SYSIN DD * DELETE MY.VSAM.KSDSFILE CLUSTERPURGE/*
如果您将在大型机服务器上执行上述JCL.它应该以MAXCC = 0执行,它将删除MY.VSAM.KSDSFILE VSAM文件.