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, IDIXUFMT, is available. For details, see The IDIXUFMT 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 IDIXUFMT. For more information about this type of Formatting user exit, see The IDIXUFMT 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 IDIEventInfo command. This process is described in IDIEventInfo command.

Information about the existence of a load module, including its load address and length, can be obtained using the IDIModQry command. This process is described in IDIModQry 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 Fault Analyzer using the IDIWRITE command, in one of three different ways:

  1. Using a quoted string
    Example:
    IDIWRITE '<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.'
    IDIWRITE data
  3. Using the UFM data area
    Example:
    UFM.DATA_BUFFER = '<p>Paragraph text.'
    UFM.DATA_LENGTH = length(UFM.DATA_BUFFER)
    IDIWrite

    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 Fault Analyzer. 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

Fault Analyzer 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 IDI.SIDISAM1.

If a sample exit existed as member IDISUFMn in data set X.Y.Z, then providing the following options in either the IDICNF00 configuration member or the IDIOPTS user options file would cause it to be invoked during analysis:

DataSets(IDIEXEC(X.Y.Z))
Exits(FORMAT(REXX(IDISUFMn)))

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

IDISUFM1
Sample Fault Analyzer Formatting user exit to display TCB information.
IDISUFM2
Sample Fault Analyzer Formatting user exit to display CICS CWA information.
IDISUFM3
Sample Fault Analyzer Formatting user exit to use with Hogan applications.
IDISUFM4
Sample Fault Analyzer 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.
IDISUFM6
Sample Fault Analyzer Formatting user exit to format LE CAA and CIB.
IDISUFM7
Sample Fault Analyzer Formatting user exit to display Name/Token values.