Customizing Z Abend Investigator by using user exits

In order to provide greater flexibility and control of Z Abend Investigator operation, a set of user exit points have been created where user exits can get control during Z Abend Investigator operation. The user exits can be written in REXX, assembler, or high-level languages. They are normally passed two data structures. The first is a common environment structure passed to all user exits which provides the general information fields for the fault currently being processed. The second structure is normally fields to the particular exit being called. Some of the fields are used to pass information to the exits and others are for the user exit to pass data or required actions back to Z Abend Investigator. For exits written in REXX, the data is passed in stem variables rather than in structures, since this approach is more manageable for REXX.

Note: REXX is the only supported programming language for Formatting user exits.

The exits can be used to perform functions such as dynamically selecting the history file data set or compile listing data sets. They can also be used to notify users by messages or email that a fault has occurred plus many other uses.

Note: If a condition occurs that causes Z Abend Investigator Recovery Fault Recording (RFR) to be performed, no further user exits will be called during this fault analysis.

Options settings and selections made in user exits affect the current analysis only.

Figure 1 illustrates the exit points provided for real-time analysis, batch reanalysis, and interactive reanalysis, while Figure 2 illustrates the exit points provided for the HFZUTIL batch utility.
Figure 1. Z Abend Investigator analysis exit points (HFZDA)
faoug003 Diagram illustrating the points during the processing where the various types of user exits are invoked: First options processing is performed. When complete, the user exit is invoked. Then the analysis processing is performed, during which the user exit is invoked. When analysis processing is complete, the user exit is invoked. Then the report generation processing is performed, during which the and user exits are invoked. Then history file update processing is performed, after which the user exit is invoked.
Figure 2. HFZUTIL batch utility exit points
faoug004 Diagram illustrating user exit calls during HFZUTIL processing: First, control statement processing is performed. If IMPORT processing is requested, then the user exit is invoked for each fault entry in the history file. If DELETE processing is requested, then the user exit is invoked for each fault entry in the history file. If LISTHF processing is requested, then the user exit is invoked for each fault entry in the history file.

User exits are specified to Z Abend Investigator via the Exits option (see Exits), the DumpRegistrationExits option (see DumpRegistrationExits), or the RefreshExits option (see RefreshExits).

The HFZUTIL Import, HFZUTIL ListHF, and HFZUTIL Delete user exits operate with the HFZUTIL batch utility only. They use an Exits control statement; for details, see EXITS control statement.