PLT:程序列表表
程序列表表 (PLT) 指定了要在CICS®启动和关闭期间运行的程序,以及要一起启用和禁用的程序组群。
为什么要编写多个 PLT 代码
- 指定希望在CICS启动的第二和第三个初始化阶段执行的程序列表。 为方便起见,在初始化过程中选择执行的程序列表称为PLTPI列表。 您还可以使用 PLTPI 程序作为 "恢复分区外暂存数据,或启用恢复过程中所需的退出功能所需处理的一部分。
任何要在CICS初始化期间运行的程序都必须在 PLT 中指定。 所选列表应在初始化时通过PLTPI=name系统初始化参数指定,其中name是 PLT 的一个或两个字符后缀,或者是包含所需程序列表的 PLT 的全名。
PLT 的执行分为两个阶段:- 第一阶段 PLT 程序在CICS初始化的第二阶段运行。 能在此阶段运行的 PLT 程序只有那些包含全局和任务相关用户退出程序启用命令的程序。 有关第一阶段 PLT 计划的编程信息,请参阅第一阶段 PLT 计划。
- 第二阶段 PLT 程序在CICS初始化的第三阶段运行。 有关第二阶段 PLT 程序的编程信息,请参阅第二阶段 PLT 程序。
- 指定要在受控关机的第一和第二静止阶段执行的程序列表。 为方便起见,关机期间选择执行的程序列表称为PLTSD列表。
任何要在CICS关闭期间运行的程序都必须在 PLT 中定义。 所选列表应在初始化时通过PLTSD=name系统初始化参数指定,其中name是 PLT 的一个或两个字符后缀,或者是包含所需程序列表的 PLT 的全名。
PLTSD 系统初始化参数中指定的 PLT 可在关机时由 CEMT PERFORM SHUTDOWN 命令中的 PLT 选项覆盖。
PLT 的执行有两个静止阶段。 有关编程信息,请参阅第一静止阶段 PLT 程序和第二静止阶段 PLT 程序。
- 通过主终端 ENABLE 或 DISABLE 命令指定一组要启用或禁用的程序列表。 使用 PLT 意味着主终端操作员只需一条命令就能启用或禁用一组程序,而不用为每个程序单独下达命令。
可以生成任意数量的 PLT,用于此处所述的目的。 每个 PLT 必须有一个唯一的名称。
将 PLT 计划置于何处
第一阶段的 PLT 程序必须放在 DFHRPL 连接数据集中,但第二阶段的 PLT 程序可以放在动态 LIBRARY 连接数据集中。 但是,如果第一阶段 PLTPI 程序尚未安装,CICS会扫描 LPA 以获取这些程序。
您可以使用哪些宏来定义 PLT 条目
- 控制部分:DFHPLT TYPE=INITIAL,它对 DFHPLT 没有影响,仅为兼容而支持
- 程序列表中的条目:DFHPLT TYPE=ENTRY
- 程序清单表结束:DFHPLT TYPE=FINAL (参见宏的格式)
- 由于CICS处理 PLT 的源代码,因此不需要组装 PLT。 您必须确保CICS在运行时可使用源代码,包括源代码引用的任何副本成员。 为此,可将源代码放在属于 IPL parmlib 并置的 parmlib 成员中,或者向 CICS JCL 添加用于指定 PLT 源代码位置的 DD 卡。 DD 语句应采用如下格式:
//DFHTABLE DD DSN=pds name,DISP=SHR确保 CICS 具有对 PARMLIB 或 DFHTABLE 并置中数据集的 READ 访问权。 有关 PLT 成员名称的更多信息,请参阅系统初始化参数 "PLTPI和 "PLTSD。
尝试装配 PLT 时,DFHPLT 宏的返回代码为 8,无法执行装配。
PLT 中包含的复制成员必须只包含 DFHPLT TYPE=ENTRY 语句、复制语句或注释。
在编写包含在 DFHPLT 中的 COPY 语句时,确保在成员名称前指定一个空白字符。
- 包含源代码的 PDS 成员必须指定打包模式为 PACK OFF,以便以标准格式保存源代码。 此外,由z/OS® ISPF"COPY命令调入的任何内容都必须是标准格式。
如果使用 PACK ON,CICS就无法在启动或关闭时适当处理源代码,由此产生的症状也各不相同。 例如,CICS已找到 PLT 成员,但其行为就好像 PLT 源中不存在分隔符 DFHDELIM。
要检查 PDS 成员的打包模式设置,请使用z/OS ISPF"PROFILE命令。 要关闭 PACK ON,请使用z/OS ISPF"PACK OFF命令。 更多信息,请参阅z/OS ISPF编辑和编辑宏中的PROFILE和PACK命令主题。
- CICS从 PARMLIB 或 DFHTABLE 中读取表源,并用它来控制 PLT 处理。 这涉及 CICS 从 DFHAPTB 发出 MVS 服务呼叫
IEFPRMLB req=allocate。 如果在 CICS 启动 JCL 中已提供 DFHTABLE DD 卡,则在运行开始时数据集已分配给 CICS 作业,并且 MVS 调用会导致发出以下信息消息:IEF761ICICAPPL IFproc DFHtable DFHSIPLT DD 已分配
在这种情况下,CICS会使用已分配的数据集。