开发手册 欢迎您!
软件开发者资料库

VSAM - ESDS

VSAM ESDS - 从基本概念到高级概念,从简单而简单的步骤学习VSAM,其中包括概述,组件,集群,KSDS,ESDS,RRDS,LDS,命令,备用索引,目录和文件状态。

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集群.