General considerations when writing initialization and shutdown programs

If you are writing initialization and shutdown programs, consider how this affects your PLT, PLTPI, and PLTSD programs.

The following information applies to both initialization and shutdown programs:
  • Terminate all PLT programs with an EXEC CICS RETURN command.
  • PLT programs receive control in primary-space translation mode. For information about translation modes, see z/Architecture Principles of Operation. PLT programs must return control to CICS® in the same mode, and must restore any general-purpose registers or access registers that they use.
  • All PLTPI programs run under the CICS internal transaction name, CPLT. Therefore, because CICS internal transactions are defined with the WAIT indoubt attribute set to YES, an indoubt failure that occurs while a PLTPI program is running causes the relevant UOW to be shunted. The PLTPI program abends ASP1, and CICS runs the next program defined in the PLTPI table, if any.
  • PLTSD programs run under the transaction that issued the PERFORM SHUTDOWN command. The CEMT transaction is defined with WAIT(YES). Therefore, if shutdown is as the result of a CEMT PERFORM SHUTDOWN command or the Shutdown option from the CICS Explorer® Regions operations view, an indoubt failure that occurs while a PLTSD program is running causes the UOW to be shunted. If, however, shutdown is as the result of a user transaction issuing an EXEC CICS PERFORM SHUTDOWN command, whether an indoubt failure causes the UOW to be shunted or a forced decision taken depends on the indoubt attributes of the user transaction. For details of the indoubt options of the CEDA DEFINE TRANSACTION command, see TRANSACTION attributes.
  • The TRANSACTION resource definition for CEMT specifies TASKDATALOC(ANY). The CEMT transaction therefore uses 31-bit storage above the 16 MB line. If you use CEMT to shut down CICS and have PLTSD programs that are AMODE(24), an AEZC abend will occur. To avoid this situation, modify the shutdown program so that it is AMODE(31) and update the appropriate program definition.