First phase PLT programs

During the early stages of CICS® initialization processing, the only PLT programs that can run are those that contain the enabling commands for global and task-related user exit programs. These programs are specified in the first part of the PLTPI list (before the DFHDELIM statement), so you can enable exit programs that are needed during recovery.

First phase PLT programs are run during the second stage of CICS initialization, which is the phase that is returned as SECONDINIT by the EXEC CICS INQUIRE SYSTEM command or the XPI INQUIRE_SYSTEM call.

Dynamic LIBRARY resources are installed, or restored and reactivated, after first stage PLT programs run, but before second stage PLT programs run. First stage PLT programs must be included in data sets in DFHRPL, but second stage PLT programs can be included in, and loaded from, dynamic LIBRARY resources.

The following points apply to all first phase PLTPI programs:
  • The programs must be written in assembler language.
  • They must run AMODE 31 or AMODE 64.
  • The only EXEC CICS commands that they can contain are as follows:
    • ASSIGN APPLID
    • ASSIGN INITPARM
    • ENABLE
    • EXTRACT EXIT

    Because this stage occurs before recovery when initialization is incomplete, no other CICS services can be called.

  • If a first phase PLTPI program enables an exit program that issues any of the XPI calls INQUIRE_APP_CONTEXT, INQUIRE_MONITORING_DATA, MONITOR, TRANSACTION_DUMP, or WRITE_JOURNAL_DATA, it must not specify the START option on the EXEC CICS ENABLE COMMAND.
  • First phase PLTPI programs must not enable any task-related user exit program with the TASKSTART option.
  • Because first phase PLT programs run so early in CICS initialization, no resource definitions are available. You cannot use installed PROGRAM definitions (or the program autoinstall user program) to define first phase PLT programs to CICS, or define the user exit programs that are enabled by first phase PLT programs. Instead, CICS installs default definitions automatically. Even if program autoinstall is specified as active on the PGAIPGM system initialization parameter, the autoinstall user program is not called to allow the definitions to be modified.

    This type of autoinstall by CICS is known as system autoinstall.

    CICS defines first phase PLT programs, and the user exit programs that they enable, with the following attributes:
    LANGUAGE(Assembler)
    RELOAD(No)
    STATUS(Enabled)
    CEDF(No)
    DATALOCATION(Any)
    EXECKEY(CICS)
    EXECUTIONSET(Fullapi)
    CONCURRENCY(Quasirent)

    Always write global user exit programs to be threadsafe. However, the system-autoinstalled program definition specifies CONCURRENCY(Quasirent); that is, the exit programs are defined as quasi-reentrant. To define a first phase PLT global user exit program as threadsafe, specify the THREADSAFE keyword on the EXEC CICS ENABLE command. This value overrides the CONCURRENCY(QUASIRENT) setting on the system-autoinstalled program definition.

  • You cannot use Debug Tool to debug a first phase PLT program.