分配 OSAM 数据集

要分配 OSAM (溢出顺序存取方法) 单个或多个卷,请在使用 SPACE 参数装入数据集时使用 JCL。

如果您对 DASD 存储器和卷的安装控制使得必须提前保留 OSAM 数据集,或者如果您决定消息队列数据集需要多个卷,那么可以预分配 OSAM 数据集。

限制:

如果要预分配多卷数据集,请在要使用的所有卷上分配扩展数据块。 必须在最后一个卷上的数据集控制块 (DSCB) 中正确指示数据集结束。

建议的方法是对需要空间的每个卷使用一次 IEFBR14 实用程序; 请勿仅使用 IEFBR14 实用程序并为多卷数据集指定 DD 语句。 此操作仅将扩展数据块放在第一个卷上,而不指示哪个卷是数据集的最后一个卷。

您可以分配 OSAM 数据集以利用 z/OS® DFSMS 对大格式连续数据集的支持,这可能会超过每个卷 65 535 个磁道。 这允许将更多数据存储在更少的卷上,从而帮助最大限度地减少连续数据集,这些数据集会增大并跨越许多卷的存储硬件。

要启用对 DFSMS 大型连续数据集的支持,请在用于分配 OSAM 数据集的 JCL 中指定 DSNTYPE=LARGE ,并使数据集联机,如下所示:

您可以启用 OSAM 数据集以使用 z/OS V1.12 或更高版本中提供的扩展地址卷 (EAVs)。 要使 OSAM 数据集能够使用 EAVs ,请在分配数据集时在 VOLSER 参数上指定 EAV 卷。 此外,您可以指定属性 EATTR 以指示数据集是否支持扩展属性。

限制: 无法与 IMS V11 系统共享对其指定了 EATTR=OPT 的数据集,因为该版本不支持扩展属性。

样本 OSAM 数据集分配 JCL 显示建议的 OSAM 数据集分配 JCL。 如果要分配大型连续 OSAM 数据集,请参阅 用于分配大型连续 OSAM 数据集的样本 JCL

如果必须对 OSAM 数据集进行编目,请使用 IEHPROGM 或访问方法服务 (AMS) 来确保所有卷都包含在目录条目中。

注意: 请勿复用多卷 OSAM 数据集扩展数据块,而不首先刻划和重新分配空间。 否则,可以在数据集的最后一个卷的 DSCB 中保留无效的文件结束标记,这将导致在数据集中间的某个位置嵌入 EOF 标记。

样本 OSAM 数据集分配 JCL

//OSAMALL  JOB
//S1      EXEC PGM=IEFBR14
//EXTENT1   DD DSNAME=OSAM.SPACE,DISP=(,KEEP),
//             UNIT=SYSDA,VOLSER=AAAAAA,
//             SPACE=(CYL,(10,5))
//S2      EXEC PGM=IEFBR14
//EXTENT2   DD DSNAME=OSAM.SPACE,DISP=(,KEEP),
//             UNIT=SYSDA,VOLSER=BBBBBB,
//             SPACE=(CYL,(15,5))
⋮
//LAST    EXEC PGM=IEFBR14
//EXTENTL   DD DSNAME=OSAM.SPACE,DISP=(,KEEP),
//             UNIT=SYSDA,VOLSER=LLLLLL,
//             SPACE=(CYL,(15,5))

用于分配大型连续 OSAM 数据集的样本 JCL

//OSAMALBG   JOB
//S1        EXEC  PGM=IEFBR14
//EXTENT1  DD  VOL=SER=AAAAAA,SPACE=(CYL,(20,5)),UNIT=3390,
//          DSN=OSAM.LARGE.SPACE,DISP=(,KEEP),DSNTYPE=LARGE