Second phase PLT programs

During the final stages of CICS® initialization, most CICS services are available to PLT programs. These programs are specified in the second part of the PLTPI list (after the DFHDELIM entry).

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

The limitations on the services that are available to second phase PLTPI programs are as follows:
  • Attempting to access any external resource during PLT processing might fail depending on the state of the inter-system connection.
  • Because interregion communication (IRC) and intersystem communication (ISC) have pseudo-terminal entries associated with their function, you cannot run any IRC or ISC functions during PLTPI processing, including ISC over SNA and IP interconnectivity (IPIC). Second phase PLT programs must not issue any EXEC CICS commands, even INQUIRE commands, related to transaction routing (and therefore pseudo-terminals) that attempt to access remote resources. This restriction occurs if the remote resource is not available.
    The remote resource might be unavailable for one of the following reasons:
    • AUTOCONNECT=NO is specified on the connection definition.
    • The remote region is not running.
    • The remote resource in the remote region is not available.
    • The link is broken; because of a network problem, for example.

    However, if the connection with the remote region is available and the resource in the remote region is also available, this restriction does not apply.

    Note: A pseudo-terminal:
    • Must be a surrogate TCTTE that exists only in an AOR
    • Can be used only in a transaction routing environment
    • Cannot exist with distributed program link (DPL) requests
    • Cannot exist with any type of function shipping request
    • Cannot exist in a distributed transaction.
  • PLTPI programs can request services that could suspend the issuing task, but suspending the task can affect the time at which control is given to CICS. The suspension must not require the decision to resume to be taken by another task. PLTPI programs can issue EXEC CICS RUN TRANSID, EXEC CICS FETCH CHILD and EXEC CICS FETCH ANY commands. The issuing task could be suspended if the response from the child task is not yet available, which may affect the time at which control is given to CICS.
  • Although PLTPI programs can issue interval control START commands, the requested transactions are not attached before the initialization stages have completed, unless the ATTACH option is specified. START ATTACH allows a START command that is issued in a PLTPI program to take effect before initialization has completed. If you use START without the ATTACH option, the invoked transaction does not start until after the PLTPI programs have completed.
  • PLTPI programs must not issue memory dump requests.
  • PLTPI programs must not use the EXEC CICS PERFORM SHUTDOWN command. If the PLTPI uses this command, a severe error occurs in DFHDMDM. The EXEC CICS PERFORM SHUTDOWN IMMEDIATE command is allowed.
  • Second phase PLT programs can be written in Assembler, COBOL, PL/I or C/C++. They must not be Java™ programs because JVM servers start asynchronously to PLTPI programs.
  • Second stage initialization PLT programs do not require program resource definitions. If they are not defined, they are autoinstalled on the system (irrespective of the program autoinstall system initialization parameters). The autoinstall exit is not called to allow the definition to be modified. The programs are defined with the following attributes:
    LANGUAGE(ASSEMBLER)
    STATUS(ENABLED)
    CEDF(NO)
    DATALOCATION(BELOW)
    EXECKEY(CICS)
    EXECUTIONSET(FULLAPI)

    As a result, system-autoinstalled programs have a default CONCURRENCY setting of QUASIRENT, and a default API setting of CICSAPI. To run PLT programs with different CONCURRENCY or API settings, or for C or C++ programs that are compiled with the XPLINK compiler option, provide an appropriate resource definition. Alternatively, for Language Environment® conforming programs, use the CICSVAR runtime option to set the appropriate CONCURRENCY and API values. See Defining runtime options for Language Environment.

  • PLTPI programs must not use the EXEC CICS INVOKE SERVICE command. At this stage of CICS initialization, pipeline scans have not started, so web service requests will fail because the WEBSERVICE definitions, created as a result of the pipeline scan, have not been created yet.
  • You cannot use Debug Tool to debug a second phase PLT program.