VSAM - 集群



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 级别上的参数仅适用于数据或索引组件。

我们将在下表中详细讨论每个参数 -

序号 带描述的参数
1

DEFINE CLUSTER

Define Cluster 命令用于定义集群并为集群及其组件指定参数属性。

2

NAME

NAME 指定我们正在为其定义集群的 VSAM 文件的名称。

3

BLOCKS

Blocks 指定分配给集群的块数。

4

VOLUMES

Volumes 指定将包含集群或组件的一个或多个卷。

5

INDEXED / NONINDEXED / NUMBERED / LINEAR

此参数可以取三个值 INDEXED、NONINDEXED 或 NUMBERED,具体取决于我们正在创建的数据集类型。对于键顺序 (KSDS) 文件,使用 INDEXED 选项。对于条目顺序 (ESDS) 文件,使用 NONINDEXED 选项。对于相对记录 (RRDS) 文件,需要 NUMBERED 选项。对于线性 (LDS) 文件,需要 LINEAR 选项。此参数的默认值为 INDEXED。我们将在后续模块中详细讨论 KSDS、ESDS、RRDS 和 LDS。

6

RECSZ

记录大小参数有两个值,分别是平均记录大小和最大记录大小。平均值指定文件中逻辑记录的平均长度,最大值表示记录的长度。

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 部分包含主密钥和数据部分中对应记录的内存指针。当使用键顺序集群时定义它。

16

CATALOG

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]

以上语法显示了我们可以与 Delete 语句一起使用的参数。我们将在下表中详细讨论每个参数 -

序号 带描述的参数
1

ERASE / NOERASE

ERASE 选项指定覆盖在目录中为对象指定的 ERASE 属性。NOERASE 选项默认采用。

2

FORCE / NOFORCE

FORCE 选项指定即使 SPACE 和 USERCATALOG 不为空也删除它们。NOFORCE 选项默认采用。

3

PURGE / NOPURGE

PURGE 选项用于删除 VSAM 数据集,如果数据集未过期。NOPURGE 选项默认采用。

4

SCRATCH / NOSCRATCH

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 文件。

广告