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.
- 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.
- 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 symptomsSymptom |
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 symptomsSymptom |
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 |
- 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.
- 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.
- 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 ADYSETxxADYSETxx 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.