Performing dump suppression

To perform dump suppression, DAE builds a symptom string, if the data for it is available. If the symptom string contains the minimum problem data, DAE uses the symptom string to recognize a duplicate SVC dump or SYSMDUMP dump requested for a software error. When installation parameters request suppression, DAE suppresses the duplicate dump. The following describes DAE processing.
  1. DAE obtains problem data. DAE receives the data in the system diagnostic work area (SDWA) or from values in a SYMREC parameter on the SDUMP or SDUMPX macro that requested the dump.
    • The ESTAE routine or the functional recovery routine (FRR) of the failing program supplies module-level information, such as the failing load module name and the failing CSECT name.
    • The system supplies system-level data, such as the abend and reason codes, the failing instruction, and the register/PSW difference.

      If the failing component does not supply the failing load module name or CSECT name, the system determines the name, if possible. In this case, the name may be IEANUC0x.

  2. DAE forms a symptom string. DAE adds a descriptive keyword to each field of problem data to form a symptom. DAE forms MVS™ symptoms, rather than RETAIN® symptoms. DAE combines the symptoms for a requested dump into a symptom string.

    The following tables show the required and optional symptoms. SDWA field names are given for the symptoms the failing program must provide to enable dump suppression. The tables have both MVS and RETAIN symptoms so that you can relate the MVS symptoms DAE uses to the RETAIN symptoms you might use to search the RETAIN data base. An MVS symptom string must contain at least five symptoms that are not null. DAE places symptoms into strings in the order shown in the tables.

    Table 1 summarizes the required symptoms, which are first and must be present.
    Table 1. Summary of required symptoms
    Symptom SDWA Field MVS Keyword RETAIN Keyword
    Name of the failing load module SDWAMODN MOD/name RIDS/name#L
    Name of the failing CSECT SDWACSCT CSECT/name RIDS/name
    Table 2 summarizes the optional symptoms, which must follow the required symptoms. DAE needs at least three of these optional symptoms to make a useful symptom string.
    Table 2. Summary of optional symptoms
    Symptom SDWA Field MVS Keyword RETAIN Keyword
    Product/component identifier with the component identifier base SDWACID, SDWACIDB PIDS/name PIDS/name
    System completion (abend) code   AB/S0hhh AB/S0hhh
    User completion (abend) code   AB/Udddd AB/Udddd
    Recovery routine name SDWAREXN REXN/name RIDS/name#R
    Failing instruction area   FI/area VALU/Harea
    PSW/register difference   REGS/hhhhh REGS/hhhhh
    Reason code, accompanying the abend code or from the REASON parameter of the macro that requests the dump   HRC1/nnnn PRCS/nnnn
    Subcomponent or module subfunction SDWASC SUB1/name VALU/Cname
  3. DAE tries to match the symptom string from the dump to a symptom string for a previous dump of the same type, that is, SVC dump or SYSMDUMP. When DAE finds a match, DAE considers the dump to be a duplicate.

    When DAE is started, it selects active symptom strings to be used to determine which dumps to suppress. An active symptom is one where either the string was created for a unique dump within the last 60 days, or its dump count was updated within the last 60 days.

    The systems in a sysplex can share the DAE data set to suppress duplicate dumps across the sysplex. While each system in a sysplex can use its own DAE data set, IBM® recommends that systems in a sysplex share a DAE data set so that:
    • DAE can write a dump on one system and suppress duplicates on other systems in the sysplex.
    • Only one DAE data set is required, rather than a data set for each system.

    See Defining a DAE data set for more information, including recommended names for the data set.

  4. DAE updates the symptom strings in storage and, when the dump is written to a dump data set, in the DAE data set, if updating is requested.
    • For a unique symptom string, DAE adds a new record. The record contains the symptom string, the dates of the first and last occurrences, the incidence count for the number of occurrences, and the name of the system that provided the string.
    • For a duplicate symptom string, DAE updates the incidence count for the string, the last-occurrence date, and the name of the last system that found the string.

    If updating is requested, DAE examines the incoming dump requests against captured dumps. If the incoming dump's symptom string matches any dump on the captured dump queue, it is suppressed. Updates are done when the DAE data set is updated.

    In a sysplex, changes to the in-storage strings of other systems are made after the shared DAE data set is updated. If an incident is occurring at about the same time on multiple systems, multiple dumps will be generated — but only one per system. Dumps on other systems are suppressed after one of the dumps is written, the DAE data set updated, and the updates propagated to the other systems.

    If the system with the original dump fails before it writes the captured dump, the dump will not be suppressed the next time it is requested.

  5. DAE suppresses a duplicate dump, if DAE is enabled for dump suppression.

    Note that, if you specify an ACTION of SVCD, TRDUMP, or NOSUP on a SLIP command, the command overrides DAE suppression and the system writes the dump. Also, dumps requested by the DUMP operator command are not eligible for suppression.

    When DAE does not suppress a dump, the symptom string is in the dump header; you can view it with the IPCS VERBEXIT DAEDATA subcommand. DAE also issues informational messages to indicate why the dump was not suppressed.

    DAE suppresses a dump when all of the following are true:
    • DAE located in the dump the minimum set of symptoms.
    • The symptom string for the dump matches a symptom string for a previous dump of the same type.
    • Either of the following is true:
      • The current ADYSETxx parmlib member specifies SUPPRESS for the type of dump being requested and the VRADAE key is present in the SDWA.
      • The current ADYSETxx parmlib member specifies SUPPRESSALL for the type of dump being requested and the VRANODAE key is absent from the SDWA.
    Table 3 shows the effect of the VRADAE and VRANODAE keys on dump suppression when SUPPRESS and SUPPRESSALL keywords are specified in the ADYSETxx parmlib member. For SUPPRESS, the VRANODAE key can be present or absent; the system does not check it. The table assumes that the symptom string from the dump has matched a previous symptom string.
    Table 3. VRADAE and VRANODAE keys on dump suppression when SUPPRESS and SUPPRESSALL keywords are specified in ADYSETxx
    ADYSETxx Option VRADAE Key in SDWA VRANODAE Key in SDWA Dump Suppressed?
    SUPPRESS Yes N/A Yes
    SUPPRESS No N/A No
    SUPPRESSALL Yes No Yes
    SUPPRESSALL No Yes No
    SUPPRESSALL No No Yes
    SUPPRESSALL Yes Yes No

    The only way to ensure that a dump is not suppressed, regardless of the contents of the ADYSETxx parmlib member, is to specify the VRANODAE key in the SDWA.