- 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-静电放电分析仪
ESDS 被称为条目排序数据集。条目排序数据集的Behave类似于顺序文件组织,但包含更多功能。我们可以直接访问记录,出于安全目的,我们也可以使用密码。我们必须在 ESDS 数据集的 DEFINE CLUSTER 命令内编写NONINDEXED代码。以下是 ESDS 的主要特点 -
ESDS 簇中的记录按照插入数据集的顺序存储。
记录通过物理地址引用,称为相对字节地址(RBA)。假设在 ESDS 数据集中,我们有 80 字节记录,第一个记录的 RBA 将为 0,第二个记录的 RBA 将为 80,第三个记录的 RBA 将为 160,依此类推。
记录可以通过 RBA 顺序访问,这称为寻址访问。
记录按照插入的顺序保存。新记录将插入到末尾。
ESDS 数据集中的记录无法删除。但它们可以被标记为不活动。
ESDS 数据集中的记录可以是固定长度或可变长度。
ESDS 是非索引的。ESDS 数据集中不存在键,因此它可能包含重复记录。
ESDS 可以像任何其他文件一样在 COBOL 程序中使用。我们将在JCL中指定文件名,我们可以使用ESDS文件在程序内部进行处理。在 COBOL 程序中,将文件组织指定为顺序,访问模式指定为带有 ESDS 数据集的顺序。
定义 ESDS 集群
以下语法显示了我们在创建 ESDS 集群时可以使用哪些参数。参数描述与 VSAM - Cluster 模块中提到的相同。
DEFINE CLUSTER (NAME(esds-file-name) - BLOCKS(number) - VOLUMES(volume-serial) - NONINDEXED - RECSZ(average maximum) - [FREESPACE(CI-Percentage,CA-Percentage)] - CISZ(number) - [READPW(password)] - [FOR(days)|TO(date)] - [UPDATEPW(password)] - [REUSE / NOREUSE]) - DATA - (NAME(esds-file-name.data))
例子
以下示例展示了如何使用 IDCAMS 实用程序在 JCL 中创建 ESDS 集群 -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * DEFINE CLUSTER (NAME(MY.VSAM.ESDSFILE) - NONINDEXED - RECSZ(80 80) - TRACKS(1,1) - CISZ(4096) - FREESPACE(3 3) ) - DATA (NAME(MY.VSAM.ESDSFILE.DATA)) /*
如果您将在大型机服务器上执行上述 JCL。它应该以 MAXCC = 0 执行,并将创建 MY.VSAM.ESDSFILE VSAM 文件。
删除 ESDS 集群
使用 IDCAMS 实用程序删除 ESDS 集群。DELETE 命令从目录中删除 VSAM 簇的条目,并可选择删除文件,从而释放对象占用的空间。
DELETE data-set-name CLUSTER [ERASE / NOERASE] [FORCE / NOFORCE] [PURGE / NOPURGE] [SCRATCH / NOSCRATCH]
上面的语法显示了我们在删除 ESDS 集群时可以使用哪些参数。参数描述与 VSAM - Cluster 模块中提到的相同。
例子
以下示例显示如何使用 IDCAMS 实用程序删除 JCL 中的 ESDS 集群 -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEPNAME EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * DELETE MY.VSAM.ESDSFILE CLUSTER /*
如果您将在大型机服务器上执行上述 JCL。它应该以 MAXCC = 0 执行,并将删除 MY.VSAM.ESDSFILE VSAM 集群。