Control hierarchy
- JCL DD statements override what is specified in user exits, job and program selection tables, routing criteria, and the global site options.
- User exits override job and program selection tables, routing criteria, and the global site options.
- The job selection table overrides what is specified in the program selection table, routing criteria, and the global site options. The program selection table is ignored when a match is found in the job selection table.
- The program selection table overrides what is specified in the routing criteria and global site options.
You can add DD statements to the execution JCL to override specifications in the Abend-AID tables and user exits.
Following are the types of Abend-AID DD statements that you can code:
- General usage
- IBM dump-related
- Processing control
- Report output
- Storage-related
- Record format
- IDMS-related
You can also install and modify the following Abend-AID tables and user exits to control Abend-AID processing at your site:
Abend-AID Optional Tables
- Job and program selection tables (CWJOBTAB and CWPGMTAB)
- Abend code tables (CWTABS01, CWTABU01, CWTABP01, CWTABL01)
- CSECT inclusion table (CWINCLUD)
- CSECT bypass table (CSECTBYP).
Abend-AID User Exits
- Processing control (CWEXIT01)
- Report routing and control (CWEXIT02)
- Customized storage display (CWEXIT03).
See Customizing-batch-Abend-AID-with-user-coded-programs-and-exits for information about the user exits.
This section describes the following tasks:
Task 1: Understand the general use of DD statements
Following is a description of the general usage of DD statements:
//SYSUDUMP DD or //SYSABEND DD or //SYSMDUMP DD | Any one of these DD statements will invoke Abend-AID. Abend-AID does not write to any of these DD statements. |
//ABENDAID DD SYSOUT | Abend-AID writes to this DD when writing to SYSOUT only. This DD is required to be present to receive Abend-AID output for SNAP-AID. If there is an error while writing to a report data set, Abend-AID output is written to this DD. If it is not present in the JCL, it may be dynamically allocated. |
//ABNLHELP DD DUMMY | Includes the Abend-AID Help pages in the Abend-AID report. These pages are not displayed in the Abend-AID Viewer. Table Override: //ABNLHELP DD overrides the Display Help Text in Abend-AID Report CWGLOBAL option, which suppresses the Help pages. Table Usage: Help pages can be either displayed or suppressed globally by using the Display Help Text in Abend-AID Report CWGLOBAL option. |
//ABNLIGNR DD DUMMY | Suppresses Abend-AID and allows normal IBM dump processing. |
//ABNLIGNS DD DUMMY | Suppresses SNAP-AID and allows normal processing to continue. |
//ABNLIGNS DD DUMMY | Suppresses SNAP-AID and allows normal processing to continue. |
//ABNLLIST DD DSN | Specifies a BMC source shared directory or source listing file in the job JCL that is used to merge the source into the Abend-AID report. |
//ABNLLPDS DD DSN | Specifies a single partitioned (PDS or PDSE) data set with members that contain COBOL compiled source listings. These listings may be used to provide the source code of the statement in error in cases where no matching COBOL listing is found in a BMC source listing. The program's name, compile date, time and release level must match the listing's member name, compile date, time and release level exactly to be considered for inclusion. |
//ABNLTERM DD DSN | Specifies an Abend-AID report data set for Abend-AID output. |
//ABNLTERM DD SYSOUT | Routes Abend-AID output to SYSOUT in 72-column format, in addition to writing to the Abend-AID report data set. |
//ABNLWIDE DD DUMMY | Specifies 121-column output when the default is 72 columns. |
Task 2: Control IBM processing of batch Abends
Following is a description of the IBM-related DD statements:
//ABNLDUMP DD DUMMY | Requests printing of the normal IBM dump in addition to the Abend-AID report. Dump output is routed to //SYSUDUMP DD SYSOUT or //SYSABEND DD SYSOUT. It is not routed to the Abend-AID report data set or to Abend-AID-specific SYSOUTs. See Overridesbelow. |
//ABNLFMTD DD DUMMY | Requests printing of only the formatted control blocks part of the IBM dump as defined by your installation. See Overrides. |
//ABNLNODP DD DUMMY | Suppresses printing of the normal IBM dump routed to //SYSUDUMP DD SYSOUT or //SYSABEND DD SYSOUT. Mutually Exclusive: //ABNLDUMP and //ABNLFMTD are mutually exclusive of //ABNLNODP. |
Overrides
User Exit Override: //ABNLDUMP, //ABNLFMTD, or //ABNLNODP DD takes precedence over printing or suppressing the IBM dump as specified in the CWEXIT01 abend-handling user exit and the abend-handling tables below.
Method of Hierarchy: The abend-handling user exit and tables are listed by precedence; that is, each one listed takes priority over the ones below.
- CWEXIT01
- CWJOBTAB
- CWPGMTAB
- CWTABS01, CWTABU01, CWTABP01, CWTABL01.
Task 3: Control Abend-AID processing
Use the following DD statements to control Abend-AID processing.
Enabling Abend-AID
Following is a description of the ABNLENAB DD statement:
//ABNLENAB DD DUMMY | Enables Abend-AID processing when it has been disabled in the CWGLOBAL table. If //ABNLENAB DD is present in the JCL, it can be overridden, and Abend-AID processing will be ignored. See Bypassing Abend-AID below. Table Override: Use //ABNLENAB DD to override the Disable Abend-AID Processing global option, which disables Abend-AID processing. See Disable Abend-AID processing for more information about this global option. |
Bypassing Abend-AID
After Abend-AID processing is active, it can be bypassed in the following ways:
- Include the //ABNLIGNR DD DUMMY statement to ignore Abend-AID processing for a particular job step.
- Include the //ABNLIGNS DD DUMMY statement to ignore SNAP-AID processing for a particular job step.
- Use the CWEXIT01 processing control exit to ignore Abend-AID processing for a specific abend code or job name.
- Use the CWEXIT02 user exit to bypass Abend-AID processing.
- Use the CWJOBTAB selection table to bypass Abend-AID processing based on a specific job name or job name prefix. Use the CWPGMTAB selection table to bypass Abend-AID processing based on a specific program name or program name prefix.
Suppressing duplicate reports
Setting Abend-AID global options can suppress the creation of duplicate reports in shared directories. The following items are used to determine if a report is a duplicate of an existing report:
- Program name
- Error offset within the program
- Error code
- LE condition
- Job name (optional)
- System ID (optional)
When an error occurs, Abend-AID does the following:
- If duplicate dump suppression is not enabled, a new report is created.
- If duplicate dump suppression is enabled, through the global option, batch dump profile option, or DD statement override, Abend-AID makes a request to Common Shared Services (CSS) to determine whether the dump should be suppressed. If the dump is indeed a duplicate, it is suppressed and its history information is added to the original report. Otherwise, a new report is created.
- Duplicate dump suppression is limited to shared directories.
- Two DD statements that can be used to override the global options and batch dump capture profiles for dump suppression:
//ABNLNDUP DD DUMMY | When duplicate dump suppression is used, a report for an error in a job step is not suppressed. Table Override: Use //ABNLNDUP DD to override the Enable duplicate dump suppression global option. See Enable duplicate dump suppression (Y/N) for more information about this global option. “Enable duplicate dump suppression (Y/N)” for more information about this global option. |
//ABNLYDUP DD DUMMY | Causes a report for an error in a job step to always be considered for suppression using JOBNAME, but not SYSID. Table Override: Use //ABNLYDUP DD to override the Enable duplicate dump suppression global option. See Enable duplicate dump suppression (Y/N) for more information. |
See Modify Batch Dump Capture Profiles for more information about controlling duplicate dump suppression.
Task 4: Control where Abend-AID reports are routed
This section discusses how to control where Abend-AID report output is routed. Abend-AID output can be routed to one of the following destinations:
- Abend-AID report shared directory
- Abend-AID report database attached to a shared directory
- Abend-AID report file
- Sequential file
- SYSOUT.
Report Data sets — Shared Directories, Databases, and DDIO Files
Abend-AID uses the Abend-AID Viewer/Abend-AID Web Browser Interface to provide interactive viewing of reports and source listings.
Abend-AID report data sets, or specifically, report shared directories and the report databases attached to them, as well as DDIO source listing files, must be preallocated and preformatted. Refer to the Common Shared Servicesfor information about defining, allocating, and formatting report data sets.
Abend-AID reports can be routed to the site default shared directory or to selected report data sets in any of the following ways:
- Specify a single default Abend-AID report shared directory name in the CWROUTE default set during installation.
- Specify an Abend-AID report data set name in the output processing user exit, CWEXIT02.
- Use the //ABNLTERM DD DSN to specify an Abend-AID report data set name. For example, insert the card //ABNLTERM DD DSN=MY.ABEND.REPORTS to route Abend-AID reports to that report data set.
- CWJOBTAB.
The following overrides occur:
- The //ABNLTERM DD statement overrides what is specified in CWEXIT02, CWJOBTAB, and batch Abend-AID online customization.
- CWEXIT02 overrides what is specified in CWJOBTAB and batch Abend-AID online customization.
- CWJOBTAB overrides what is specified in batch Abend-AID online customization.
Defining a Sequential File
Use the //ABNLTERM DD DSN statement in your JCL to route the Abend-AID output to a sequential file. The DCB attributes must be RECFM=VBA and LRECL=133. Otherwise, Abend-AID issues the error message ABONL-2. If Abend-AID is unable to open this file, a valid //ABENDAID DD will be used.
User Exit Override: The //ABNLTERM DD DSN overrides the Abend-AID file name specified in the output processing user exit, CWEXIT02.
Table Override: The //ABNLTERM DD DSN overrides the Abend-AID shared directory from CWJOBTAB or batch Abend-AID online customization.
Mutually Exclusive: //ABNLTERM DD DSN and //ABNLTERM DD SYSOUT are mutually exclusive.
Routing Output to SYSOUT
Use the //ABNLTERM DD SYSOUT statement in your JCL to route the Abend-AID output to SYSOUT. For example, an //ABNLTERM DD SYSOUT=* card in your JCL routes the Abend-AID report to the MSGCLASS destination as coded on the JOB card.
Specifying Narrow Output
Use the //ABNLTERM DD SYSOUT statement to route output in narrow (72-column) format.
Specifying Wide Output
Use the //ABNLWIDE DD DUMMY statement to specify 121-column output when the default report width has been changed to 72 columns.
User Exit Override - CWEXIT02: The //ABNLTERM DD DSN overrides the Abend-AID file name specified in the output processing user exit, CWEXIT02.
Table Override: The //ABNLWIDE DD statement overrides the following tables:
- CWJOBTAB
- CWPGMTAB
Task 5: Control the format of Abend-AID reports
Controlling Report Format
Viewing or printing Abend-AID reports can be done in a narrow (72-column) or wide (121-column) format when routed to SYSOUT or a sequential file. The report format in the Abend-AID report data set cannot be altered. Refer the following table to determine the column width of the Abend-AID report.
ABNLTERM Decision Table
Use narrow column width format global option setting, CWJOBTAB, or CWPGMTAB (ONLINE=) | //ABNLTERM | FORMAT |
N | N | 121 on //ABENDAID |
N | Y | 72 on //ABNLTERM |
Y | N | 72 on //ABENDAID |
Y | Y | 72 on //ABNLTERM |
Storage-related
Use these DD statements to control displaying program working storage and control block information in the Abend-AID report. Mutually exclusive DD statements are noted.
Overrides
Use the following DD statements to override the specific program working storage and control block settings made in these tables:
Table Override:
- CWTABS01
- CWTABU01
- CWTABP01
- CWTABL01
//ABNLALL DD DUMMY | Requests formatting of all program storage and data management control blocks. Mutually Exclusive: //ABNLALL DD and |
//ABNLNONE DD DUMMY | Suppresses formatting of all program storage and data management control blocks. Mutually Exclusive: //ABNLNONE DD and |
//ABNLPCBS DD DUMMY | Requests displaying of the Abend-AID data management control blocks section. Mutually Exclusive: //ABNLPCBS DD and |
//ABNLNCBS DD DUMMY | Suppresses displaying of the Abend-AID data management control blocks section. Mutually Exclusive: //ABNLNCBS DD and |
//ABNLWSPT DD DUMMY | Requests displaying of the Abend-AID Program Storage section. Mutually Exclusive: //ABNLWSPT DD and |
//ABNLNWSP DD DUMMY | Suppresses displaying of the Abend-AID Program Storage section. Mutually Exclusive: //ABNLNWSP DD and //ABNLWSPT DD |
//ABNLINCL DD DUMMY | Causes all active load modules to be considered for CSECT inclusion when the CWINCLUD table is present. See CSECT Inclusion Table (CWINCLUD)for additional information. These are the effects on the Program Storage section: •Without CWINCLUD, the report shows all Assembler CSECTs on the calling chain. •With CWINCLUD only, Assembler CSECTs in load modules on the calling chain are eligible for inclusion in the report. •With CWINCLUD and ABNLINCL, Assembler CSECTs in all currently loaded modules of the abending task are eligible for inclusion in the report. |
Special COBOL INCLUDE processing is applied after all //ABNLINCL DD DUMMY and CWINCLUD processing. CSECTS not selected as a result of //ABNLINCL DD DUMMY and CWINCLUD pattern will be considered for inclusion in the report. See Display COBOL storage no longer active for more information. |
Record format
Following is a description of the //ABNLSPRT DD statement:
//ABNLSPRT DD DUMMY | Displays the entire record in the file summary section of the Abend-AID report when the default has been changed by the Show the entire current record global option to NO. Table Override: Global option |
IDMS-Related
Following is a description of the IDMS-related DD statements:
//ABNLIGNI DD DUMMY | Bypasses only the Abend-AID for IDMS reporting facility. |
This DD statement does not affect any other Abend-AID report processing, including SNAP-AID | |
//ABNLIDTR DD SYSOUT | Used by Abend-AID for IDMS to produce a dynamic trace output. Traces and displays all calls made to the IDMS database. |
//ABNLIFRE DD DUMMY | Causes the work areas that are acquired by Abend-AID for IDMS for each bind run unit to be freed when a finish is issued. |
Dynamically Allocated Report Output DD Statements
When Abend-AID needs to dynamically allocate a DD statement to SYSOUT for report output, it uses the #XAAMKDD dynamic allocation program, summarized in a subsequent section. When the statement needed is ABENDAID or SYSUDUMP, the #XAAMKDD program uses as a model the existing CEEDUMP, SYSUDUMP, PLIDUMP, or PL1DUMP statement, or the override you specified via Model DD name to be used batch Abend-AID global option. It searches for each individually, in that order of priority, rather than using the first that it finds.
Abend-AID requires the //ABENDAID DD statement to generate report output for non- abending error conditions, in the situations noted here:
- An application-program error condition in LE
- An application program call to SNAPAID.
When a DD statement is required, Abend-AID first checks for it in the execution JCL. If it is not present, Abend-AID takes the following action:
- Dynamically allocates the ABENDAID statement if the application-program error condition has occurred in LE.
- Dynamically allocates the ABENDAID statement if so requested in the SNAPAID call parameter list in the application program.
When it is dynamically allocating a DD statement, Abend-AID may obtain input data by the methods described below.
- Uses the data in the parameter list when the request comes from a user call to SNAPAID and a parameter list was specified.
- Models the allocation on the existing CEEDUMP, SYSUDUMP, PLIDUMP, or PL1DUMP statement when one or more of the following conditions exist:
- The call is from LEAID
- A specified SNAPAID parameter list lacks required data
- A SNAPAID parameter list is not specified
- Modeling was specified in the #XAAMKDD program and a model was found.
- Abend-AID refers to the global options for dynamic allocation under the following conditions:
- No model is found
- The model cannot be used for some reason
- No model was specified in the #XAAMKDD program.
Task 6: Control Abend-AID processing with table settings
Batch Abend-AID provides the following tables:
- Abend Code Tables:
- CWTABS01: Specifies Abend-AID processing by system completion code.
- CWTABU01: Specifies Abend-AID processing by user completion code.
- CWTABP01: Specifies Abend-AID processing by PL/I on-code.
- Language Environment Condition Code Table (CWTABL01): Specifies Abend-AID processing by Language Environment (LE) condition codes.
- Job and Program Selection Tables:
- CWJOBTAB: Directs or suppresses Abend-AID processing by job name
- CWPGMTAB: Directs or suppresses Abend-AID processing by program name.
- CSECT Bypass Table (CSECTBYP): Suppresses display of Program Storage for specific non-COBOL CSECTs.
- CSECT Inclusion Table (CWINCLUD): Provides CSECT information not normally included in the Abend-AID storage dump.
- Common Shared Services Translation Tables:
- CWCMTRHT: Hexadecimal to EBCDIC translation table for horizontal dump format.
- CWCMTRVT: Hexadecimal to EBCDIC translation table for vertical dump format.
Abend code tables (CWTABS01, CWTABU01, and CWTABP01)
The abend code tables contain the recommended settings for dump and output generation in response to most abends, including user abends.
The abend code tables are:
- CWTABS01: Specifies Abend-AID processing by system completion code.
- CWTABU01: Specifies Abend-AID processing by user completion code.
- CWTABP01: Specifies Abend-AID processing by PL/I on-code.
The abend code tables let you choose the type of diagnostic output provided, based on the abend code and whether the abend is solved by Abend-AID. If an abend code is not in the table, the default abend code entry determines the output options. The default abend code entries are:
- CWTABS01: S=(D,Y,Y), U=(D,Y,Y)
- CWTABU01: S=(N,Y,Y), U=(N,Y,Y)
- CWTABP01: S=(N,Y,Y), U=(D,Y,Y)
The source code and JCL used to create abend code tables are located in the following members of the Abend-AID installation library (hlq.CTL):
- CWTABSXX: Source code for recommended system completion code table
- JCLASYST: JCL to assemble and link the CWTABS01
- CWTABUXX: Source code for recommended user completion code table
- JCLAUSRT: JCL to assemble and link the CWTABU01
- CWTABPXX: Source code for recommended PL/I on-code table. Abend-AID abending PL/I support searches CWTABP01 before CWTABU01 when a U3001 abend is issued.
- JCLAPLIT: JCL to assemble and link the CWTABP01 table.
Each table segment is limited to 1950 bytes. A larger table generation results in an MNOTE 12 error during assembly. If one of the tables becomes too large, create a second table with a name ending with 02. For example, if CWTABU01 fills up, create a second table named CWTABU02 to contain the rest of the user abend codes. If more tables become necessary, create CWTABU03, and so on.
Abend code table instructions
The table consists of the following assembler macro instructions, which are contained in the Abend-AID installation sample library (hlq.CTL):
- CWINIT
- ACODE
- CWEND.
Each instruction is described below.
CWINIT
Names the control section and must be the first instruction.
ACODE
Defines the abend code. Each entry into the abend code table follows this format:
ACODE syntax
ACODE CODE=Axxxx,S=(D,Y,Y),U=(D,Y,Y),ENV=I|D|R,RC=xxxxxxxx
CODE
There are three types of abend code tables, each containing a unique code. Valid codes for Axxxx are:
- Sxxx: Specifies a system abend code of xxx to use in CWTABS01.
- Uxxxx: Specifies a user abend code of xxxx to use in CWTABU01.
- Pxxxx: Specifies a PL/I on-code of xxxx to use in CWTABP01.
S
Specifies the diagnostic information option for an application program abend that Abend-AID considers to be solved.
–IBM dump option: Valid entries are:
D: | Default. Complete IBM snap dump follows the Abend-AID report. |
N: | No IBM dump follows the Abend-AID report. |
F: | Only the formatted operating system control blocks of the IBM dump follow the Abend-AID report. |
–Data management control blocks option: Valid entries are:
Y: | Default. Displays all file control blocks. |
N: | Suppresses file control blocks. |
C: | Displays only the control blocks of the file causing the error. |
–Program storage display option: Valid entries are:
Y: | Default. Displays program storage or CSECTs for all programs on the calling chain. |
N: | Suppresses program storage. |
U
Specifies the diagnostic information option for an application program abend that Abend-AID considers to be unsolved.
–IBM dump option: Valid entries are:
D: | Default. Complete IBM snap dump follows the Abend-AID report. |
N: | No IBM dump follows the Abend-AID report. |
F: | Only the formatted operating system control blocks of the IBM dump follow the Abend-AID report. |
–Data management control blocks option: Valid entries are:
Y: | Default. Displays all file control blocks. |
N: | Suppresses file control blocks. |
C: | Displays only the control blocks of the file causing the error. |
–Program storage display option: Valid entries are:
Y: | Default. Displays program storage or CSECTs for all programs on the calling chain. |
N: | Suppresses program storage. |
ENV
Use this keyword to specify the output options for abends occurring in a specific environment. Code an additional entry for the same abend code without the ENV option. This supplies Abend-AID with the output options for abends occurring in a nonspecific environment. Valid entries are:
I: | Specifies the output option for an IMS-issued abend. |
D: | Specifies the output option for a DUO-issued abend or for an abend in a program running under DUO. |
R: | Specifies the output option for the reason code value specified by the RC keyword. Generally used for Db2 abends. |
RC
Specifies the eight-character reason code contained in register 15. Use this field when ENV=R is specified. If register 15 is equal to the specified reason code, the output option for the ACODE entry is used.
The following examples illustrate various ACODE options.
Example 1:
col 10 | v
ACODE CODE=S213,S=(N,N,N),U=(D,Y,Y)
If the S213 abend is solved, Abend-AID performs the following tasks:
- Suppresses the normal dump
- Does not display file control blocks
- Does not display program storage.
If the S213 abend is unsolved, for example, if an invalid return code or the S213 abend is issued via the ABEND macro, Abend-AID performs the following tasks:
- Produces a normal dump
- Displays all open file control blocks
- Displays all program storage.
Example 2:
ACODE CODE=S0C7,S=(N,Y,Y),U=(D,Y,Y)
If the S0C7 abend is solved, Abend-AID performs the following tasks:
- Suppresses the dump
- Displays file control blocks for all open files
- Displays program storage.
If the S0C7 abend is unsolved, for example, if a S0C7 abend is not in the region and no file problem is found, Abend-AID performs the following tasks:
- Produces the dump
- Displays file control blocks for all open files
- Displays program storage.
CWEND
Generates the table delimiter and end statement. CWEND must be the last instruction.
Language Environment condition code table (CWTABL01)
The Language Environment (LE) condition code table customizes settings that control which diagnostic information Abend-AID provides and whether Abend-AID requests a dump from the operating system. Each condition code can be individually customized with these settings.
If a program encounters a condition code that is not in the table, default condition code entries determine which diagnostic information is presented. CWTABL01, as initially installed from the Abend-AID MVS product installation media, contains only default entries. Since certain LE error conditions correspond to actual abends, these default entries instruct Abend-AID to use settings from the corresponding entry in table CWTABS01, CWTABU01, or CWTABP01.
Add custom settings to the LE condition code table, CWTABL01, if certain LE error conditions require different diagnostic information than is produced by settings in CWTABS01, CWTABU01, or CWTABP01. Member CWTABLXX in the Abend-AID installation library (hlq.CTL) contains the assembler source code for the table installed from the product installation media. You customize the table by modifying the member with the LECOND macro, summarized below. Assemble and link the customized table using the JCL in member JCLALECT in the Abend-AID installation library (CTL).
Each table is limited in size to 1950 bytes. Source code that yields a larger table causes an MNOTE 12 error during assembly. If the table becomes too large, create a second table named CWTABL02.
LE Condition code table instructions
The table consists of the following assembler macro instructions, which are contained in the Abend-AID installation library (CTL):
- CWINIT
- CWEND
- LECOND.
Each instruction is described below.
CWINIT
Names the control section and must be the first instruction.
CWEND
Generates the table delimiter and end statement, and must be the last instruction.
LECOND
Use LECOND to override or add to the default settings of CWTABL01. Each entry follows this format:
LECOND macro syntax
name LECOND CODE=DDDxxxxL,IGNORE=N,TAB=N,S=(D,Y,Y),U=(D,Y,Y)
name
Optional symbol.
CODE
Names the LE condition code to which these settings apply. No CEE3250C code is allowed in the table because of the nature of the error it represents.
DDD: | Prefix identifier, typically CEE (common run-time), IGZ (COBOL run- time), or IBM (PL/I run-time). |
xxxx: | Numerical identifier. |
L: | Level of severity. |
IGNORE
Specifies whether Abend-AID will ignore this LE condition. Valid entries are:
N: | Default. Abend-AID produces a report. |
Y: | Abend-AID ignores occurrences of this error condition and does not produce a report. |
TAB
Specifies if Abend-AID will use settings from CWTABS01, CWTABU01, or CWTABP01 instead of settings from CWTABL01. Valid entries are:
N: | Default. Settings from CWTABL01 are used. |
Y: | Settings from CWTABS01, CWTABU01, or CWTABP01 are used. |
S
Specifies the diagnostic information option for an application program error that Abend-AID considers to be solved.
–Operating system dump option: Valid entries are:
N: | Default. Abend-AID does not request a dump from the operating system. |
D: | Abend-AID requests a U4039-8 dump from the operating system. |
–Data management control blocks option: Valid entries are:
Y: | Default. Abend-AID displays control blocks of all open files. |
N: | Abend-AID does not display control blocks of any files. |
C: | Abend-AID displays control blocks of only the file in error. |
–Program storage display option: Valid entries are:
Y: | Default. Abend-AID displays program storage of all programs on the active calling chain. |
N: | Abend-AID does not display program storage of any programs. |
U
Specifies the diagnostic information option for an application program error that Abend-AID considers to be unsolved.
–Operating system dump option: Valid entries are:
D: | Default. Abend-AID requests a U4039-8 dump from the operating system. |
N: | Abend-AID does not request a dump from the operating system. |
–Data management control blocks option: Valid entries are:
Y: | Default. Abend-AID displays control blocks of all open files. |
N: | Abend-AID does not display control blocks of any files. |
C: | Abend-AID displays control blocks of only the file in error. |
–Program storage display option: Valid entries are:
Y: | Default. Abend-AID displays program storage of all programs on the active calling chain. |
N: | Abend-AID does not display program storage of any programs. |
Job and program selection tables (CWJOBTAB and CWPGMTAB)
The job and program selection tables (CWJOBTAB and CWPGMTAB) are optional tables that suppress or direct Abend-AID processing for specific job or program names. Both tables can be used to direct selected Abend-AID output to the 72-column output format. CWJOBTAB can be used to route Abend-AID output to a specified report data set that overrides the entry in the report routing CWROUTE load module.
Abend-AID scans the CWJOBTAB table to compare entries in it with the current job name. A true condition (either equal or not equal) invokes the specified option. If no true condition is found in CWJOBTAB, then Abend-AID scans the CWPGMTAB table in the same way, but it also scans all program names in the load lists that are pointed to by program request blocks. If no match occurs, processing continues through Abend-AID.
The Abend-AID installation library (hlq.CTL) provides three samples, two for CWJOBTAB and one for CWPGMTAB:
- CWJOBTAB: Provides an IBM dump, in addition to the Abend-AID report, for all jobs named ZZZZZZZZ.
- CWJOBTB1: Routes the Abend-AID report based on job name.
- CWPGMTAB: Provides an IBM dump, in addition to the Abend-AID report, for all programs named $$.
Incorporate the CWJOBTAB and CWPGMTAB tables into Abend-AID processing by linking them into the Abend-AID customization load library. Sample JCL required to install the tables is in the Abend-AID installation sample library (CTL) members JCLJOBTB for CWJOBTAB and JCLPGMTB for CWPGMTAB.
Job and program selection tables instructions
The tables consist of the following assembler macro instructions, which are contained in the Abend-AID installation library:
- CWINIT
- CWEND
- SELECT
Each instruction is described below.
CWINIT
Names the control section and must be the first instruction. The PREFIX=+ameter must be used.
CWEND
Generates the table delimiter and end statement, and must be the last instruction.
SELECT
The SELECT macro builds the CWJOBTAB and CWPGMTAB tables.
SELECT macro syntax
anylabel SELECT NAME=COMPWARE,LENGTH=8,OPTION=IGNR, X DISPL=0,OP=EQ,ONLINE=NO
NAME
In CWJOBTAB, this specifies the job name. In CWPGMTAB, it refers to a program name pattern. There are no system defaults. Valid entries are one to eight, user- defined characters.
LENGTH
Specifies the length of the field to be compared. Valid entries range from one to eight. The default is eight.
OPTION
Specifies the processing option if the condition is true. Valid entries are:
DUMP: | Process by Abend-AID and request the IBM dump. |
FMTD: | Process by Abend-AID and produce only the formatted portion of the IBM dump. |
IGNR: | Default. Bypass Abend-AID processing. Abend-AID terminates and all user exits are ignored. |
NODP: | Process by Abend-AID and suppress the dump. |
PROC: | Process by Abend-AID. |
DISPL
Specifies the displacement, relative to zero, in the job or program name where the comparison will be made. Valid entries range from zero to seven. The default is 0 (zero).
OP
Specifies an equal or not equal comparison. Valid entries are:
EQ: | Default. Equal comparison. |
NE: | Not equal comparison. |
ONLINE
Controls the width of the Abend-AID report written to the SYSUDUMP, SYSABEND, and ABENDAID DDs. Valid entries are:
YES: | Display all output in 72-column format. |
NO: | Default. Display all output 121-column format. |
You can also request the 72- or 121-column format with the Use narrow column width format batch Abend-AID global option.
A JCL DD override
ROUTE
Valid only with the job selection table, CWJOBTAB. Specifies the routing destination of the Abend-AID report. There are no system defaults. Valid entries are:
SYSOUT: | Route Abend-AID output to a SYSOUT destination in addition to the report data set. |
GLOBAL: | Route Abend-AID output to the report data set specified in the report routing CWROUTE load module. |
Any valid data set name: | Route Abend-AID output to a site-defined report data set. |
You can also specify report output destinations with the following:
- Report routing CWROUTE load module
- The output-processing exit, CWEXIT02. See Task 3: Customize routing of reports and/or ignore a failure (CXEXIT02).
- An //ABNLTERM DD statement
The following examples illustrate SELECT options:
Job Name Examples
Example 1
Ignores jobs that do not have TS in the second and third characters of the job name. Use the 72-column output format for those jobs that have TS in the second and third characters of the job name.
Example 2
Always requests a dump for job TPMON.
Example 3
Valid only with the job selection table, CWJOBTAB. Routes jobs beginning with PAY to report data set ABENDAID.PAYROLL.RPTFILE. Routes jobs beginning with Db2 to report data set ABENDAID.DB2.RPTFILE.
ROUTE=’ABENDAID.PAYROLL.RPTFILE’
RTEDB2 SELECT NAME=DB2,OPTION=PROC,DISPL=0,OP=EQ,LENGTH=3, X
ROUTE=’ABENDAID.DB2.RPTFILE’
Program Name Examples
Example 1
Ignores Abend-AID for any step with program name MYPROG.
Although not coded, the following defaults are also in effect for Example 1:
Example 2
Ignores Abend-AID for any step with program names that begin with SEC.
Although not coded, the following defaults are also in effect for Example 2:
Example 3
Ignores Abend-AID for any step with program names that end with AUDIT.
Although not coded, the following defaults are also in effect for Example 3:
CSECT Bypass Table (CSECTBYP)
The CSECT bypass table (CSECTBYP) is an optional table that suppresses the display of program storage for specific non-COBOL CSECTs. For example, these CSECTs can be COBOL ILBO subroutines, IMS control programs, or common Assembler routines whose storage is not needed.
Abend-AID includes a default CSECT bypass table. To use it, link-edit the CSECT bypass table with Abend-AID system control modules in the SMP/E load library. Refer to member JCLCSECT to change the CSECTBYP table. JCLCSECT contains current source code and JCL to assemble and link the CSECT bypass table.
CSECTBYP syntax
CSECT
Specifies the CSECTs to suppress the display of program storage. Enclose the CSECT names in quotes and separate them by commas. The number of characters between the quotes determines the length of each name. Do not use special characters for wildcard characters in the CSECT name mask. The following example shows how to code CSECTBYP.
Example:
|
v
TITLE ’Abend-AID CSECT BYPASS TABLE’
CSECTBYP CSECT=(’ILBO’,’DFS’,’DUO ’)
The example specifies not to format program storage for CSECTs beginning with either ILBO or DFS (IMS control programs), or the CSECT DUO.
CSECT Inclusion Table (CWINCLUD)
The CSECT inclusion table (CWINCLUD) is an optional table that triggers the display of selected CSECTs in storage that are not normally included in Abend-AID’s Program
Storage section. Common data areas, utility subroutines, and FORTRAN labeled common areas fall into this CSECT category. Add an //ABNLINCL DD statement to the abending job’s JCL for load modules in the region to be considered for inclusion. The format of this statement is //ABNLINCL DD DUMMY.
These are the effects on the Program Storage section:
- Without CWINCLUD, the report shows all programs on the calling chain.
- With CWINCLUD only, selected Assembler CSECTs in load modules on the calling chain are eligible for inclusion in the report.
- With CWINCLUD and ABNLINCL, selected Assembler CSECTs in all currently loaded modules of the abending task are eligible for inclusion in the report.
The CSECT inclusion table name must be CWINCLUD. Link-edit the table into the Abend-AID non-SMP/E load library member CWINCLUD. The JCL to assemble and link- edit the table is in member JCLINCLD. Member CWINCLUD contains a sample source code program. The CSECT inclusion table requires no special terminator. The table consists of the following assembler macro instructions, which are contained in the Abend-AID installation library (hlq.CTL):
- CWINIT
- PATTERN
- CWEND
Each instruction is defined below.
CWINIT
Names the control section and must be the first instruction.
PATTERN
Defines the pattern to use when matching CSECT names. All matching CSECTs in load modules on the RB chain are displayed.
The sample CWINCLUD table contains a number of sample CSECT names that are coded using the PATTERN macro.
PATTERN macro syntax
xxxx
Specifies the string containing the characters and special symbols used in the comparison process.
MULTC
Specifies, for this PATTERN macro expansion only, the special symbol used to match a character string. The default value is a hyphen (–).
SINGLEC
Specifies, for this PATTERN macro expansion only, the special symbol used to match any single character. The default value is a question mark (?).
SINGLEN
Specifies, for this PATTERN macro expansion only, the special symbol used to match a single numeric character. The default value is a plus sign (+).
LEN
Sets the scan length to a value from 1 to 8, indicating the number of characters compared. The default is 8.
The following examples illustrate the various options for the PATTERN macro:
Example 1
Prints CSECTs starting with TAB.
|
v
PATTERN TAB-
Example 2
Prints CSECTs starting with any single character, followed by a single numeric character, followed by TAB, and ending with one to three characters.
PATTERN +-TAB$,SINGLEN=–,SINGLEC=+,MULTC=$
Example 3
Prints CSECTs starting with CTR and ending in five numeric characters.
Example 4
Prints CSECTs starting with X and having a T as the second to the last character.
Example 5
Prints a CSECT starting with AB, ending with X, and having one to five characters between AB and X
CWEND
This macro must be the last instruction. Generates the table delimiter and end statement.
Common shared services translation tables (CWCMTRHT and CWCMTRVT)
When necessary, Abend-AID displays storage areas in both hexadecimal and character representation. These storage areas may appear in two different formats:
- Horizontal dump format — for example, the TGT for a COBOL program.
- Vertical dump format — for example, a current or previous record for a particular ddname.
Installation of a customized translation table is an optional step in the CSS installation customization procedure. Refer to the Enterprise Common Components Installation and Configuration guide for information about sample JCL to assemble and link the translation tables.