- 学习 VSAM 教程
- VSAM - 首页
- VSAM - 概述
- VSAM - 组件
- VSAM - 集群
- VSAM - ESDS
- VSAM - KSDS
- VSAM - RRDS
- VSAM - LDS
- VSAM - 命令
- VSAM - 备用索引
- VSAM - 目录
- VSAM - 文件状态
- VSAM - 面试问题
- VSAM 有用资源
- VSAM - 快速指南
- VSAM - 有用资源
- VSAM - 讨论
VSAM - ESDS
ESDS 指的是按顺序输入的数据集 (Entry Sequenced Data Set)。按顺序输入的数据集的行为类似于顺序文件组织,但包含更多功能。我们可以直接访问记录,并出于安全目的使用密码。必须在 DEFINE CLUSTER 命令中为 ESDS 数据集编码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 - 集群模块中提到的相同。
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 集群
ESDS 集群使用 IDCAMS 实用程序删除。DELETE 命令删除 VSAM 集群在目录中的条目,并可选地删除文件,从而释放对象占用的空间。
DELETE data-set-name CLUSTER [ERASE / NOERASE] [FORCE / NOFORCE] [PURGE / NOPURGE] [SCRATCH / NOSCRATCH]
上述语法显示了删除 ESDS 集群时可以使用哪些参数。参数描述与 VSAM - 集群模块中提到的相同。
示例
以下示例演示了如何使用 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 集群。