ESDS称为条目序列数据集.入门序列数据集的行为类似于顺序文件组织,其中包含更多功能.我们可以直接访问记录,出于安全考虑,我们也可以使用密码.我们必须在ESF数据集的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实用程序创建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 /*
如果您将在Mainframes服务器上执行上述JCL.它应该以MAXCC = 0执行,它将删除MY.VSAM.ESDSFILE VSAM集群.