The node abnormal condition program (DFHZNAC) can be called for any of several reasons:
To process conditions that are not associated with a known terminal, the dummy TCTTE is used. It is invoked by placing a TCTTE on the system error queue with a 1-byte code relating to the condition. Placing it on the queue makes the TCTTE ‘temporary OUTSERV’ (TCTTESOS); that is, the decision is pending the outcome of DFHZNAC.
The activate scan routine (DFHZACT) is responsible for attaching the CSNE transaction to run DFHZNAC; this is done during CICS® initialization. The CSNE transaction remains in the system until CICS or VTAM is quiesced. If DFHZNAC itself abends, or VTAM is closed and then restarted, DFHZACT attaches a new CSNE transaction when there is more work for DFHZNAC to do.
There is only ever one CSNE transaction in the system at any one time. (This should not be confused with the CSNE transaction that is attached by the remote delete processing of autoinstall.)
Once DFHZNAC has been called, it runs down the system error queue, processing each error for each TCTTE on the queue. When there is no more work to be done, DFHZNAC suspends itself, to be resumed by DFHZACT when further processing is required.
Note that the system error queue need not be empty before DFHZNAC terminates; errors can be left on the queue to be processed later. For example, in an XRF environment, some error codes cannot be handled until the alternate CICS system has taken over; that is, it has passed the ‘initialization complete’ stage. If DFHZNAC is passed a TCTTE indicating such an error, it leaves that entry on the queue.
Node abnormal condition program (NACP) processing involves mapping the error code (placed into the TCTTE by a DFHZERRM macro call) to a set of actions, performing any specific processing for that error code, accumulating the actions for all the error codes in that TCTTE, and then performing the actions.
Figure 69 shows the NACP error code processing. The numbers in Figure 69 refer to the following notes, which use the table entry for DFHZC3424 as the example:
DFHZNCM MSGNO=3424,
E1=S88,
E2=NULL,
E3=NULL,
E4=NULL,
ACT=(ABSEND,ABRECV,ABTASK,CLSDST,SIMLOG),
CODE=NSP02,
TYPE=ENTRY
In the example, TCTVRC5 contains X'5C', which equates to TCZNSP02 (ref CODE=NSP02).