Any program that is to execute during CICS® initialization
must be specified in a program list table (PLT), and the suffix of
that PLT must be named on the program list table post initialization
(PLTPI) system initialization parameter.
There are two phases of program list table (PLT) execution, separated
by the DFHDELIM statement in the PLT.
During the early stages of CICS initialization
processing, the only PLT programs that can execute are those containing
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). This allows you to enable those exit programs
that are needed during recovery.
The following points apply to all first phase PLTPI programs:
- The
programs must be written in assembler language.
- They must run AMODE 31.
- The only EXEC CICS commands they should contain are:
- ASSIGN APPLID
- ASSIGN INITPARM
- ENABLE
- EXTRACT EXIT
Because this stage occurs before recovery when initialization
is incomplete, no other CICS services can be invoked.
- If a first phase PLTPI program enables an exit program that issues
any of the XPI calls 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.
- You do not have to define first phase PLTPI programs to CICS.
If you do not, default definitions are installed automatically by CICS.
Note that this happens whether or not program autoinstall is specified
as active on the PGAIPGM system initialization parameter. The autoinstall
user program is not invoked to allow the definitions
to be modified. The programs are defined with the following attributes:
LANGUAGE(Assembler)
RELOAD(No)
STATUS(Enabled)
CEDF(No)
DATALOCATION(Below)
EXECKEY(CICS)
EXECUTIONSET(Fullapi)
CONCURRENCY(Quasirent)
If
any of the default attributes are unsuitable, you must define the
programs statically (by defining entries in the CSD and installing
the definitions).
- You cannot use Debug Tool to debug a first phase PLT program.
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). The limitations on the services that are available
to second phase PLTPI programs are described below.
- 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. In
other words, second phase PLT programs must not issue any EXEC CICS
commands--even INQUIRE commands--that attempt to access
remote resources.
- PLTPI programs may request services that could suspend the issuing
task. (But note that this affects the time at which control is given
to CICS.) The SUSPEND must not require the decision
to resume to be taken by another task.
- Although PLTPI programs can issue interval control START commands,
the requested transactions are not attached before the initialization
stages have completed. Because this cannot happen until after the
PLTPI programs themselves have been completed, the latter must not
be dependent on anything that the requested transactions might do.
- PLTPI programs must not issue dump requests.
- PLTPI programs must not use the EXEC CICS PERFORM SHUTDOWN command,
or a severe error will occur in DFHDMDM. The EXEC CICS PERFORM SHUTDOWN
IMMEDIATE command is allowed.
Second
stage initialization and second stage quiesce PLT programs do not
require program resource definitions. If they are not defined, they
are system autoinstalled (irrespective of the program autoinstall
system initialization parameters). This means that 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.
- For those threadsafe PLT programs that
- are defined with the OPENAPI value for the API attribute, or
- are C or C++ programs compiled with the XPLINK compiler option
provide an appropriate resource definition, or alternatively,
for Language Environment® conforming programs,
use the CICSVAR runtime option to set the appropriate CONCURRENCY
and API values. See the CICS Application Programming Guide.


- You cannot use Debug Tool to debug a second phase PLT program.
Because recovery processing does not take place until PLTPI processing
is complete, PLT programs may fail during an emergency restart if
they attempt to access resources protected by retained locks. If PLT
programs are not written to handle the LOCKED exception condition,
they abend with an AEX8 abend code.
If successful completion of PLTPI processing is essential before
your CICS applications are allowed to start, consider
alternative methods of completing necessary PLT processing. You may
have to allow emergency restart recovery processing to finish, and
then complete the failed PLTPI processing when the locks have been
released.
[[ Contents Previous Page | Next Page Index ]]