HFZUTIL Import user exit

The following describes the HFZUTIL Import user exit.

Purpose

You can use the HFZUTIL Import user exit to:
  • Control the import of a fault entry during history file management by using the HFZUTIL batch utility with the IMPORT control statement. This control is provided by setting the UTL.PERFORM_ACTION data area field to 'Y' to import the entry or to 'N' not to import it. By default, the field UTL.PERFORM_ACTION is always set to 'Y' before invoking the exit. See Parameters for references to the UTL data area.

    When an entry has been successfully imported into the target history file, it is deleted from the source history file.

  • Provide the name of the associated dump data set to be created from an exported fault entry in UTL.IMPORT_DUMP_DSN. This name overrides any default name obtained from the RFRDSN, XDUMPDSN, or SDUMPDSN option in the IDIOPTLM configuration-options module. For details, see Customize Z Abend Investigator by using an HFZOPTLM configuration-options module.

When invoked

This exit is invoked once for each fault entry in a history file whenever the HFZUTIL batch utility is executed using the IMPORT control statement.

Parameters

How parameters are passed to the exit depends on the exit type, REXX or load module.

Z Abend Investigator initializes the parameter lists using current values for the particular fault and processing options in effect before invoking the Notification user exit.

REXX

Two stems are available to the exit:

The defined variable names are identical to the field names. For example, to access the field VERSION in the ENV data area, use the REXX variable ENV.VERSION.

Load module

At entry to this exit, R1 contains the 31-bit address of a parameter list comprising two fullwords:

Example

HFZROBEX is an example of an HFZUTIL user exit that is written in REXX.

This exit is included in the HFZ.SHFZSAM1 data set member HFZSROBT. See Figure 3 for details.
Figure 1. Sample REXX HFZUTIL user exit
/* REXX */
/* Dump data set names provided by this exit override the equivalent */
/* option setting in HFZOPTLM.                                       */
/* The relationship is as follows:                                   */
/* ENV.ASSOCIATED_DUMP_TYPE     HFZOPTLM option                      */
/* ---------------------------- ---------------                      */
/* 'S' SDUMP (SVC dump)         SDUMPDSN                             */
/* 'T' TDUMP (transaction dump) RFRDSN                               */
/* 'X' XDUMP (extended dump)    XDUMPDSN                             */
/* To disable the allocation of an associated dump data set, set     */
/* UTL.IMPORT_DUMP_DSN to 'NULLFILE'.                                */
if ENV.VERSION <> 5 then                                               
say 'Note: ENV data area version change - field usage review required!'
if UTL.VERSION <> 1 then                                               
say 'Note: UTL data area version change - field usage review required!'
ddsnhlq = 'HFZDUMP'                            /* <--- verify/change */
UTL.PERFORM_ACTION = 'Y'           /* Import current entry (default) */
if ENV.ASSOCIATED_DUMP_DSN <> "" then do                               
  t_parm = ENV.ASSOCIATED_DUMP_TYPE                         /* S/T/X */
  UTL.IMPORT_DUMP_DSN =,
    ddsnhlq"."t_parm"DUMP.&SYSNAME..D&YYMMDD..T&HHMMSS..S&SEQ."
end
exit 0

If the above sample exit existed as member ABC in data set X.Y.Z, then providing the following statements in your HFZUTIL batch utility history file management job would cause the exit to be invoked.

DD statement:
//HFZEXEC DD DISP=SHR,DSN=X.Y.Z
HFZUTIL batch utility control statement:
Exits(IMPORT(REXX(ABC)))