The sample shutdown assist programs

Source code versions of the default program are provided in Assembler, COBOL, and PL/I, in the CICSTS31.CICS.SDFHSAMP library. They are named DFHCESD, DFH0CESD, and DFH$CESD, respectively. All contain the same logic. Resource definitions of DFH0CESD and DFH$CESD and their associated transactions, SDA1 and SDA2, are in the sample CSD group DFH$SDAP. Definitions of DFHCESD and CESD are in the DFHSDAP CSD group (which is included in the default startup group list, DFHLIST).

If the restart manager (ARM) is active, and you use the default shutdown assist program during shutdown processing, ARM restarts the CICS® region after the region has completed shutting down. If you do not want ARM to restart the CICS region, amend the sample shutdown assist program by adding the NORESTART option to the command EXEC CICS PERFORM SHUT IMMEDIATE.

If you use one of the samples as the basis for your own program:

Considerations for your shutdown assist program

The shutdown assist task is a system task that behaves differently from a user task. If all user tasks have ended, shutdown continues to completion as quickly as possible, and CICS does not wait for the shutdown assist program to complete.

If your shutdown assist program loses control and then all user tasks terminate, control might not return to the program before shutdown completes. For example, if an EXEC CICS DELAY, WAIT EXTERNAL or SUSPEND command is coded in the program, and all user tasks complete before the interval elapse time expires, then the program does not regain control. You should bear this in mind if recoverable resources are updated by your program, because if the program loses control and then all user tasks complete, full commit and backout protection cannot be guaranteed. The EXEC CICS commands which might cause the program to lose control are not limited to those mentioned here.

Specifying REQID(DFHCESD) on an EXEC CICS DELAY command coded in your program results in early expiration of the unexpired DELAY request if all user tasks complete during the delay interval. In this case, the program regains control from the EXEC CICS command even though all non-system tasks have finished. However, bear in mind that the full interval elapse time might not have expired when the program regains control. If the EXEC CICS DELAY command is issued after all user tasks have completed, it might never expire, because CICS shutdown continues without resuming the system task.

Figure 60 shows some example messages generated by a run of the DFHCESD sample program.

Figure 60. Example messages generated by the sample DFHCESD program
 16.14.08 JOB09120  +DFHTM1715 IYLX1 CICS is being quiesced by userid CICSUSER in transaction CEMT
                                       at netname IGCS21F.
 16.14.08 JOB09120  +DFHDM0102I IYLX1 CICS is quiescing.
 16.14.08 JOB09120  +DFHTM1781 IYLX1 CICS shutdown cannot complete because some non-system user tasks
                                       have not terminated.
 16.14.09 JOB09120  +DFHCESD  IYLX1    SHUTDOWN ASSIST TRANSACTION CESD STARTING. SHUTDOWN IS NORMAL.
 16.14.09 JOB09120  +DFHCESD  IYLX1    LIST OF SHUNTED UNITS OF WORK IN THE SYSTEM FOLLOWS.
 16.14.09 JOB09120  +DFHCESD  IYLX1    SHUNTED TRANSACTION RFI4, TERMID S21F, UNIT OF WORK ABE7194B52539603
 16.16.09 JOB09120  +DFHCESD  IYLX1    THERE ARE NOW 0100 TASKS STILL IN THE SYSTEM.
 16.16.26 JOB09120  +DFHDU0303I IYLX1 Transaction Dump Data set DFHDMPA closed.
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID KK07, TERMID     , USERID CICSUSER, TASKNO 000113
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID KK15, TERMID     , USERID CICSUSER, TASKNO 000119
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID KK16, TERMID     , USERID CICSUSER, TASKNO 000120
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID KK23, TERMID     , USERID CICSUSER, TASKNO 000127
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID KK24, TERMID     , USERID CICSUSER, TASKNO 000128
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID KK29, TERMID     , USERID CICSUSER, TASKNO 000133
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID KK36, TERMID     , USERID CICSUSER, TASKNO 000139
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID KK38, TERMID     , USERID CICSUSER, TASKNO 000140
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID KK47, TERMID     , USERID CICSUSER, TASKNO 000144
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK07, TERMID     , USERID CICSUSER, TASKNO 000161
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK15, TERMID     , USERID CICSUSER, TASKNO 000167
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK16, TERMID     , USERID CICSUSER, TASKNO 000168
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK23, TERMID     , USERID CICSUSER, TASKNO 000175
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK24, TERMID     , USERID CICSUSER, TASKNO 000176
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK29, TERMID     , USERID CICSUSER, TASKNO 000181
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK36, TERMID     , USERID CICSUSER, TASKNO 000187
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK38, TERMID     , USERID CICSUSER, TASKNO 000188
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK44, TERMID     , USERID CICSUSER, TASKNO 000189
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK47, TERMID     , USERID CICSUSER, TASKNO 000192
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK49, TERMID     , USERID CICSUSER, TASKNO 000194
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RSD1, TERMID S234, USERID CICSUSER, TASKNO 000418
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK49, TERMID     , USERID CICSUSER, TASKNO 000424
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK47, TERMID     , USERID CICSUSER, TASKNO 000426
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK44, TERMID     , USERID CICSUSER, TASKNO 000429
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK23, TERMID     , USERID CICSUSER, TASKNO 000437
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK16, TERMID     , USERID CICSUSER, TASKNO 000444
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X134, USERID CICSUSER, TASKNO 000531
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X150, USERID CICSUSER, TASKNO 000532
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X141, USERID CICSUSER, TASKNO 000533
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X124, USERID CICSUSER, TASKNO 000534
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X147, USERID CICSUSER, TASKNO 000535
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X152, USERID CICSUSER, TASKNO 000536
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X178, USERID CICSUSER, TASKNO 000537
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X158, USERID CICSUSER, TASKNO 000538
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X168, USERID CICSUSER, TASKNO 000540
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X127, USERID CICSUSER, TASKNO 000542
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X176, USERID CICSUSER, TASKNO 000543
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X122, USERID CICSUSER, TASKNO 000545
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X149, USERID CICSUSER, TASKNO 000546
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X145, USERID CICSUSER, TASKNO 000547
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X117, USERID CICSUSER, TASKNO 000548
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X128, USERID CICSUSER, TASKNO 000550
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X126, USERID CICSUSER, TASKNO 000551
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X162, USERID CICSUSER, TASKNO 000552
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X143, USERID CICSUSER, TASKNO 000553
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X164, USERID CICSUSER, TASKNO 000554
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X133, USERID CICSUSER, TASKNO 000555
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X121, USERID CICSUSER, TASKNO 000556
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X113, USERID CICSUSER, TASKNO 000558
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X160, USERID CICSUSER, TASKNO 000559
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X170, USERID CICSUSER, TASKNO 000560
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X120, USERID CICSUSER, TASKNO 000561
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X115, USERID CICSUSER, TASKNO 000562
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X139, USERID CICSUSER, TASKNO 000563
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X137, USERID CICSUSER, TASKNO 000564
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X110, USERID CICSUSER, TASKNO 000565
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X157, USERID CICSUSER, TASKNO 000566
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X154, USERID CICSUSER, TASKNO 000567
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X112, USERID CICSUSER, TASKNO 000568
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X177, USERID CICSUSER, TASKNO 000569
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X156, USERID CICSUSER, TASKNO 000570
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X125, USERID CICSUSER, TASKNO 000571
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X130, USERID CICSUSER, TASKNO 000572
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X155, USERID CICSUSER, TASKNO 000573
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X119, USERID CICSUSER, TASKNO 000574
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X174, USERID CICSUSER, TASKNO 000575
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK51, TERMID     , USERID CICSUSER, TASKNO 000576
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X142, USERID CICSUSER, TASKNO 000577
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X179, USERID CICSUSER, TASKNO 000578
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X132, USERID CICSUSER, TASKNO 000579
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X135, USERID CICSUSER, TASKNO 000580
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X118, USERID CICSUSER, TASKNO 000581
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X175, USERID CICSUSER, TASKNO 000582
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X131, USERID CICSUSER, TASKNO 000583
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X163, USERID CICSUSER, TASKNO 000584
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X159, USERID CICSUSER, TASKNO 000585
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X111, USERID CICSUSER, TASKNO 000586
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X151, USERID CICSUSER, TASKNO 000587
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X169, USERID CICSUSER, TASKNO 000588
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X171, USERID CICSUSER, TASKNO 000589
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X166, USERID CICSUSER, TASKNO 000590
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK07, TERMID     , USERID CICSUSER, TASKNO 000591
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X153, USERID CICSUSER, TASKNO 000593
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X114, USERID CICSUSER, TASKNO 000594
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X148, USERID CICSUSER, TASKNO 000596
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X173, USERID CICSUSER, TASKNO 000597
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X136, USERID CICSUSER, TASKNO 000598
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X165, USERID CICSUSER, TASKNO 000599
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X116, USERID CICSUSER, TASKNO 000600
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X123, USERID CICSUSER, TASKNO 000601
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X144, USERID CICSUSER, TASKNO 000602
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X129, USERID CICSUSER, TASKNO 000603
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X172, USERID CICSUSER, TASKNO 000604
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X167, USERID CICSUSER, TASKNO 000605
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X138, USERID CICSUSER, TASKNO 000606
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X161, USERID CICSUSER, TASKNO 000607
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X146, USERID CICSUSER, TASKNO 000608
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID RFS1, TERMID X140, USERID CICSUSER, TASKNO 000609
 16.16.26 JOB09120  +DFHCESD  IYLX1    PURGING TRANID SK52, TERMID     , USERID CICSUSER, TASKNO 000613
 16.16.27 JOB09120  +DFHCESD  IYLX1    LIST OF SHUNTED UNITS OF WORK IN THE SYSTEM FOLLOWS.
 16.16.27 JOB09120  +DFHCESD  IYLX1    SHUNTED TRANSACTION RFI4, TERMID S21F, UNIT OF WORK ABE7194B52539603
 16.16.28 JOB09120  +DFHCESD  IYLX1    THERE ARE NOW 0081 TASKS STILL IN THE SYSTEM.
 16.16.31 JOB09120  +DFHCESD  IYLX1    THERE ARE NOW 0073 TASKS STILL IN THE SYSTEM.
 16.16.43 JOB09120  +DFHCESD  IYLX1    THERE ARE NOW 0072 TASKS STILL IN THE SYSTEM.
 16.16.45 JOB09120  +DFHCESD  IYLX1    THERE ARE NOW 0070 TASKS STILL IN THE SYSTEM.
 16.16.47 JOB09120  +DFHCESD  IYLX1    THERE ARE NOW 0004 TASKS STILL IN THE SYSTEM.
 16.17.05 JOB09120  +DFHCESD  IYLX1    LIST OF SHUNTED UNITS OF WORK IN THE SYSTEM FOLLOWS.
 16.17.05 JOB09120  +DFHCESD  IYLX1    SHUNTED TRANSACTION RFI4, TERMID S21F, UNIT OF WORK ABE7194B52539603
 16.17.07 JOB09120  +DFHZC2316 IYLX1 VTAM ACB is closed
 16.17.09 JOB09120  +DFHCESD  IYLX1    THERE ARE NOW 0002 TASKS STILL IN THE SYSTEM.
 16.17.09 JOB09120  +DFHTM1782I IYLX1 All non-system tasks have been successfully terminated.
 16.17.30 JOB09120  +DFHRM0131 IYLX1 Resynchronization required with IRC resources.
 16.17.30 JOB09120  +DFHRM0131 IYLX1 Resynchronization required with LU62 resources.
 16.17.30 JOB09120  +DFHRM0131 IYLX1 Resynchronization required with IND resources.
 16.17.40 JOB09120  +DFHRM0203 IYLX1 There are 1 indoubt, 0 commit-failed and 0 backout-failed UOWs.
 16.17.56 JOB09120  +DFHRM0130 IYLX1 Recovery manager has successfully quiesced.
 16.18.01 JOB09120  +DFHKE1799 IYLX1    TERMINATION OF CICS IS COMPLETE.

Related reference
Shutdown assist program (DFHCESD)
Actions of the default program, DFHCESD
[[ Contents Previous Page | Next Page Index ]]