PLT: program list table

A program list table (PLT) specifies programs that you want to run during CICS® startup and shutdown, and groups of programs that you want to enable and disable together.

Why you might want to code several PLTs

Consider the following reasons:
  • To specify a list of programs that you want to be executed in the second and third initialization stages of CICS startup. For more detail about the initialization stages, see Using post-initialization (PLTPI) programs. For programming information about restrictions on using programs in the initialization stages, see Writing initialization programs. The selected list should be specified at initialization time by the PLTPI=name system initialization parameter, where name is a one or two character suffix of the PLT or the full name of the PLT that contains the required list of programs.

    For convenience, the list of programs selected for execution during initialization is referred to as the 'PLTPI' list.

  • To specify a list of programs that you want to be executed during the first and second quiesce stages of controlled shutdown. The selected list should be specified at initialization time by the PLTSD=name system initialization parameter, where name is the one or two character suffix of the PLT or the full name of the PLT that contains the required list of programs.

    The PLT specified in the PLTSD system initialization parameter can be overridden at shutdown time by the PLT option in the CEMT PERFORM SHUTDOWN command.

    For convenience, the list of programs selected for execution during shutdown is referred to as the 'PLTSD' list.

  • To specify a list of programs that you want to have enabled or disabled as a group by a main terminal ENABLE or DISABLE command. This use of PLTs means that a main terminal operator can enable or disable a set of programs with just one command, instead of using a separate command for each program.
Any number of PLTs can be generated for the purposes described here, if the following conditions are met:
  1. Each PLT has a unique name.
  2. Each program named in a PLT either has a program resource definition entry in the CSD file, or is capable of being autoinstalled (that is, the appropriate system initialization parameters have been specified for program autoinstall).
    Note: PLTs should not be defined as programs in the CSD.

Where do you place PLT programs

First-phase PLT programs must be placed in the DFHRPL concatenated data sets, but second-phase PLT programs can be placed in a dynamic LIBRARY concatenation. However, CICS scans the LPA for phase 1 PLTPI programs if they are not already installed.

What macros can you use to define PLT entries

The following macros are available to define the PLT entries:
  • Control section: DFHPLT TYPE=INITIAL, which has no effect on DFHPLT and is supported for compatibility only
  • Entries in program list table: DFHPLT TYPE=ENTRY
  • End of program list table: DFHPLT TYPE=FINAL (see TYPE=FINAL (end of table))
Note:
  • It is not required to assemble PLTs because CICS processes the source code of PLTs. You must ensure that the source code is available to CICS at run time, and this includes any copy members referenced by the source. To achieve this, you can either place the source in a parmlib member that is part of the IPL parmlib concatenation, or add a DD card that specifies the PLT source location into the CICS JCL. The DD statement should be of the form: //DFHTABLE DD DSN=pds name,DISP=SHR

    Ensure CICS has READ access to data sets in PARMLIB or DFHTABLE concatenations. See the PLTPI and PLTSD system initialization parameters for more information about the PLT member name.

    Attempts to assemble a PLT will result in a return code of 8 from the DFHPLT macro, and the assembly will not be performed.

    Copy members included in a PLT must contain only DFHPLT TYPE=ENTRY statements, copy statements or comments.

    When you code COPY statements that are included in a DFHPLT, ensure to specify a single blank character before the member name.

  • The PDS members that contain the source code must specify the pack mode as PACK OFF so that the source code is saved in standard format. In addition, anything pulled in by the z/OS® ISPF COPY command must be in standard format.

    If PACK ON is used, CICS cannot process the source code appropriately during startup or shutdown, and the resulting symptoms vary. For example, CICS has found the PLT member but is acting as if the delimiter DFHDELIM is not present in the PLT source.

    To check the setting for pack mode of a PDS member, use the z/OS ISPF PROFILE command. To turn off PACK ON, use the z/OS ISPF PACK OFF command. For more information, see the PROFILE and the PACK command topics in z/OS ISPF Edit and Edit Macros.

  • CICS reads the source of the tables from PARMLIB or DFHTABLE and uses it to control PLT processing. This involves CICS issuing an MVS™ service call IEFPRMLB req=allocate from DFHAPTB. If a DFHTABLE DD card has already been provided within the CICS startup JCL, the data set is already allocated to the CICS job at the start of the run, and the MVS call results in the following information message being issued:
    IEF761I CICSAPPL IEFPROC DFHTABLE DFHSIPLT DD IS ALREADY ALLOCATED

    CICS will use the data set that is already allocated.