Formatting user exit

Note: The normal load module format user exit is not supported as a Formatting user exit. However, a special load module format user exit, HFZXUFMT, is available. For details, see The HFZXUFMT load module Formatting user exit.

Purpose

This exit can be used to create a user-specific section in the analysis report, which can, for example, be used to format data areas which are specific to the application environment being analyzed.

These are different ways to invoke exits of this type:

  1. By using the Exits option.

    This option results in a User analysis report section being inserted between the System-Wide Information section and the Abend Job Information section. For details on specifying the Exits option, see Exits.

    In the real-time or batch reanalysis report, the user analysis section is inserted between the System-Wide Information section and the Abend Job Information section as shown in the following:
    ⋮
    <H1> S Y S T E M - W I D E   I N F O R M A T I O N
    ⋮
    <H1> U S E R<H1> A B E N D   J O B   I N F O R M A T I O N
    In the interactive reanalysis report, the user analysis section is selectable from the Interactive Reanalysis Report display as shown in the following:
    1.  Synopsis
    2.  Event Summary
    3.  System-Wide Information
    4.  User
    5.  Abend Job Information
    6.  Options in Effect

    The data from all invoked Formatting user exits is included in the report.

    The default "User" heading can be changed by setting UFM.USEROPTIONTITLE to a different value. The last value set by any Formatting user exit is used.

  2. By using the EXEC command.

    This option is only available from the interactive reanalysis report. For details on using the EXEC command, see EXEC.

  3. By making available a load module in an APF-authorized library named HFZXUFMT. For more information about this type of Formatting user exit, see The HFZXUFMT load module Formatting user exit.

The Formatting exit is initially provided with information about the point-of-failure event in the exit-specific UFM data area. (See Parameters for references to the UFM data area.) However, information for any event can be obtained by using the HFZEventInfo command. This process is described in HFZEventInfo command.

Information about the existence of a load module, including its load address and length, can be obtained using the HFZModQry command. This process is described in HFZModQry command.

To obtain storage from the analyzed environment, or to write data to the report, extra commands are available:
Evaluate
This command is used to retrieve storage from the analyzed environment.

Details of this command are provided in Evaluate command.

List
This command is used to print storage in the report.

Details of this command are provided in List command.

Note
This command is used to print a line of text in the report.

Details of this command are provided in Note command.

In addition to using the List and Note commands, a HTML-like tag language is available for greater flexibility in formatting the information for the report. Details of these tags are provided in Formatting tags.

The tagged text is passed back to Z Abend Investigator using the HFZWRITE command, in one of three different ways:

  1. Using a quoted string
    Example:
    HFZWRITE '<p>Paragraph text.'

    Either single quotes (') or double quotes (") can be used to enclose the string. However, both characters must be of the same type.

    If the string contains characters of the same type as those used to enclose the string, then these must be repeated twice. That is, to pass back the string
    'The TCB's address is not zero'
    specify
    'The TCB''s address is not zero'
  2. Using a variable
    Example:
    data = '<p>Paragraph text.'
    HFZWRITE data
  3. Using the UFM data area
    Example:
    UFM.DATA_BUFFER = '<p>Paragraph text.'
    UFM.DATA_LENGTH = length(UFM.DATA_BUFFER)
    HFZWRITE

    This method is primarily provided for non-REXX exits.

    The List and Note commands can be used intermixed with the tag language without any formatting side effects.

When invoked

This exit is invoked during formatting of the analysis report, regardless of the execution mode of Z Abend Investigator. Additionally, exits of this type can be invoked on demand from the interactive reanalysis report by using the EXEC command—for details, see User-specific report formatting.

Parameters

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

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.

Sample Formatting user exits

The following REXX samples are provided as data set members of HFZ.SHFZSAM1.

If a sample exit existed as member HFZSUFMn in data set X.Y.Z, then providing the following options in either the HFZCNF00 configuration member or the HFZOPTS user options file would cause it to be invoked during analysis:
DataSets(HFZEXEC(X.Y.Z))
Exits(FORMAT(REXX(HFZSUFMn)))

Alternatively, the exit could be invoked from the interactive reanalysis report by entering the EXEC HFZSUFMn command.

HFZSUFM1
Sample Z Abend Investigator Formatting user exit to display TCB information.
HFZSUFM2
Sample Z Abend Investigator Formatting user exit to display CICS CWA information.
HFZSUFM3
Sample Z Abend Investigator Formatting user exit to use with Hogan applications.
HFZSUFM4
Sample Z Abend Investigator Formatting user exit to use with an MVS dump-analysis batch job to create a fault entry in a designated history file. Optionally, the exit can write a WTO message or send an email with information about the fault entry that was created.
HFZSUFM6
Sample Z Abend Investigator Formatting user exit to format LE CAA and CIB.
HFZSUFM7
Sample Z Abend Investigator Formatting user exit to display Name/Token values.