Before linking to the node error program, DFHZNAC inserts the primary and
secondary printer netnames and terminal IDs into the communication area,
indicating also whether either printer is eligible for a print request. DFHZNAC links
to the node error program with no default actions set.
On return from the node error program, DFHZNAC checks the additional system
parameter TWAUPRRC in the communication area (see Figure 25 on page 459)
and, based on its contents, performs one of the following actions:
v If your NEP sets TWAUPRRC to X'FF' (−1), DFHZNAC assumes that the node
error program has disposed of the data to be printed and therefore takes no
further action.
v If your NEP sets TWAUPRRC to zero, DFHZNAC assumes that no printer is
available and takes no further action.
v If your NEP sets TWAUPRRC to neither zero nor −1, DFHZNAC assumes that
one of either field TWAPNETN or field TWAPNTID is set. (If both are set,
TWAPNTID(termid) takes precedence.) An interval control PUT is performed to
the provided terminal. The transaction to be initiated is CSPP (print program),
and the time interval is zero.
– If an error occurs on the interval control PUT, DFHZNAC writes the
‘DFHZC2496 IC FAILURE’ message to the destination CSNE. DFHZNAC then
links to the node error program again with the TWAUPRRC field set to −2.
This is done to give the node error program a last chance to dispose of the
data. On the second return from the node error program to DFHZNAC, the
latter reexamines TWAUPRRC. If TWAUPRRC is −1, then the node error
program has disposed of the data.
– If no error occurs on the interval control PUT, DFHZNAC checks for the
following printer conditions:
- ‘Out of service’
- ‘Intervention required’
- Any condition other than RECEIVE or TRANSCEIVE status.
If one of these conditions is true, DFHZNAC issues the ‘DFH2495 PRINTER
OUTSERV/IR/INELIGIBLE-REQ QUEUED’ message to the destination CSNE.
Finally, DFHZNAC terminates any print requests on the originating terminal and
performs normal action flag processing on that terminal.
Coding for session failures
Following some categories of error associated with logical unit or path failures, the
session between CICS and the logical unit may be lost. The default action taken by
DFHZNAC may be to put the TCTTE out of service.
A method of automatically reacquiring the session is for your node error program to
alter the default DFHZNAC actions and to keep the TCTTE in service. Your node
error program can then issue an EXEC CICS START TERMID(name) command
against that TCTTE for a transaction written in a similar manner to the CICS “good
morning” signon message (CSGM). When the transaction is initiated using
automatic transaction initiation (ATI), CICS tries to reacquire the session. If the
session fails again, DFHZNAC is reinvoked and the process is repeated.
The time specified on the EXEC CICS START command is determined by
installation-dependent expected-mean-time-to values.
user-written node error programs
Chapter 9. Writing a node error program 477