The initial code first tests the internal error code passed from DFHZNAC to see if it
belongs to a group that the NEP needs to handle. (The groups are identified by the
code you supply between the DFHSNEP INITIAL and FINAL macros. This is
described in “Generating the sample node error program” on page 469.) If the
particular error code is not of interest to the NEP, control is returned at once to
DFHZNAC, to take default actions.
Otherwise, the relevant node error table is located by a CICS LOAD request. (As
previously explained, this table should be resident in virtual storage.) The NEP code
will then locate the correct ESB within a selected NEB. The latter may be
permanently dedicated to the LU in error (a named NEB), or may be one taken
from the general pool.
The initial code then invokes the appropriate user logic for that error group. The
initial code also sets up pointers to the communication area, the NEB, and the ESB.
For details, see “Generating the sample node error program” on page 469.
The common routines in the NEP provide common services for your own logic.
They count and time stamp errors in the ESB, and test whether error thresholds
have been exceeded. They are not documented outside the sample listings. You
can generate a NEP without them if you prefer.
Your own code is inserted between the DFHSNEP TYPE=INITIAL and TYPE=FINAL
macros.
Note: If the user code you insert between the DFHSNEP macros contains EXEC
CICS commands, you must translate the commands, and enter the
translated code
between the DFHSNEP macros.
Each section of user logic, intended to handle a particular group of error types, is
headed by a macro of the type:
DFHSNEP TYPE=ERRPROC,CODE=(ab,cd,...),GROUP=n
where X'ab', X'cd',... are the DFHZNAC internal error codes you want to process,
and n is the number of the error group, and therefore also of the corresponding
ESB, within a NEB, in the node error table. Successive DFHSNEP
TYPE=ERRPROC macros should use groups 1, 2, 3, and so on.
The DFHSNEP TYPE=ERRPROC macros serve several purposes. They:
v Inform the NEP generation how many error groups there are
v Show which error types are to be included in each group
v Introduce the code for each group.
Note that any one DFHZNAC error code should only figure in one error group, and
that any code not mentioned is simply ignored by the NEP. You follow each
DFHSNEP TYPE=ERRPROC macro with your own logic. This should begin with
standard code to save registers, or set up addressability, which is best copied from
sample NEP listings.
CICS provides some standard error processors to handle specific errors on two
different types of LU. These are for non-SNA 3270s (BSC 3270s attached to
CICS-VTAM), and for interactive SNA logical units like a 3767. More information is
given in “When an abnormal condition occurs” on page 457.
background to VTAM error handling
454
CICS TS for OS/390: CICS Customization Guide