- Learn VSAM Tutorial
- VSAM - Home
- VSAM - Overview
- VSAM - Components
- VSAM - Cluster
- VSAM - ESDS
- VSAM - KSDS
- VSAM - RRDS
- VSAM - LDS
- VSAM - Commands
- VSAM - Alternate Index
- VSAM - Catalog
- VSAM - File Status
- VSAM - Interview Questions
- VSAM Useful Resources
- VSAM - Quick Guide
- VSAM - Useful Resources
- VSAM - Discussion
VSAM - 集群
VSAM集群在JCL中定义。JCL 使用IDCAMS实用程序创建集群。IDCAMS 是 IBM 开发的一个用于访问方法服务的实用程序。它主要用于定义VSAM数据集。
定义集群
以下语法显示了分组在Define Cluster、Data和Index下的主要参数。
.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 级别的参数仅适用于数据或索引组件。
我们将在下表中详细讨论每个参数 -
先生编号 | 参数及说明 |
---|---|
1 | 定义集群 Define Cluster命令用于定义集群并指定集群及其组件的参数属性。 |
2 | 姓名 NAME 指定我们为其定义集群的 VSAM 文件的名称。 |
3 | 积木 Blocks 指定分配给集群的块数。 |
4 | 成交量 卷指定将包含集群或组件的一个或多个卷。 |
5 | 索引/非索引/编号/线性 该参数可以采用三个值:INDEXED、NONINDEXED 或 NUMBERED,具体取决于我们创建的数据集的类型。对于键序 (KSDS) 文件,使用 INDEXED 选项。对于条目排序 (ESDS) 文件,使用 NONINDEXED 选项。对于相对记录 (RRDS) 文件,需要 NUMBERED 选项。对于线性 (LDS) 文件,需要 LINEAR 选项。该参数的默认值为 INDEXED。我们将在接下来的模块中详细讨论 KSDS、ESDS、RRDS 和 LDS。 |
6 | 雷克萨斯 记录大小参数有两个值:平均和最大记录大小。平均值指定文件中逻辑记录的平均长度,最大值表示记录的长度。 |
7 | 可用空间 可用空间指定为数据组件的控制间隔 (CI) 和控制区域 (CA) 保留的可用空间的百分比。该参数的默认值是零百分比。 |
8 | CISZ CISZ 称为控制间隔大小。它指定控制间隔的大小。 |
9 | 按键 Keys 参数仅在密钥序列 (KSDS) 文件中定义。它指定主键距第一列的长度和偏移量。该参数的取值范围为1~255字节。 |
10 | 读PW READPW参数中的值指定读取级别的密码。 |
11 | 为/至 此参数的值指定保留文件的时间量(以日期和天数表示)。此参数的默认值是零天。 |
12 | 更新PW UPDATEPW 参数中的值指定更新级别的密码。 |
13 | 重复使用/不重复使用 REUSE 参数允许定义可以重置为空状态的集群,而无需删除和重新定义它们。 |
14 | 数据-名称 簇的 DATA 部分包含数据集名称,其中包含文件的实际数据。 |
15 | 索引名称 簇的 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)) /*
如果您将在大型机服务器上执行上述 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]
上面的语法显示了我们可以与删除语句一起使用的参数。我们将在下表中详细讨论它们 -
先生编号 | 参数及说明 |
---|---|
1 |
擦除/不擦除 指定 ERASE 选项可覆盖为目录中的对象指定的 ERASE 属性。默认情况下采用 NOERASE 选项。 |
2 |
力/无力 指定 FORCE 选项可删除 SPACE 和 USERCATALOG,即使它们不为空。默认情况下采用 NOFORCE 选项。 |
3 |
净化/不净化 如果数据集尚未过期,PURGE 选项用于删除 VSAM 数据集。默认情况下采用 NOPURGE 选项。 |
4 |
划痕/无划痕 指定 SCRATCH 选项是为了从卷目录中删除对象的关联条目。它主要用于非 vsam 数据集,例如 GDG。默认情况下采用 NOSCRATCH 选项。 |
例子
以下是一个基本示例,展示如何在 JCL 中删除集群 -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEPNAME EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * DELETE MY.VSAM.KSDSFILE CLUSTER PURGE /*
如果您将在大型机服务器上执行上述 JCL。它应该以 MAXCC = 0 执行,并将删除 MY.VSAM.KSDSFILE VSAM 文件。