Customizing batch Abend-AID with user-coded programs and exits
This section contains information on tailoring batch Abend-AID’s processing to meet specific requirements of your site. Abend-AID calls the following user-coded programs and exits when they are made available as load modules or program objects.
- Customized Diagnostics
- Customized Help Text (CWHELP)
- Processing Control (CWEXIT01)
- Report Routing and Control (CWEXIT02)
- Customized Storage Display (CWEXIT03)
- Termination Processing (AAXTERM)
- Abend-AID Macros
This section provides information about the following tasks:
Task 1: Customize Abend diagnostics
Customized diagnostics can be created for both system and user abends. These customized diagnostics can supplement or replace the Abend-AID diagnostic text for any abend. The customized text is displayed in the Error Analysis section of the Abend-AID report. Diagnostic information from the Abend-AID work area is made available for use in user-coded diagnostic programs via mapping macro USERCOMM. Sample programs and assembly/link JCL can be found in the Abend-AID installation library (hlq.CTL).
Sample program:
CWDIAG
Assembly/link JCL:
JCLDIAG
Sample program and assembly/link JCL for S0C4:
JCLDIAG4
Sample program and assembly/link JCL for S0C7:
JCLDIAG7
Macros used:
UKINIT (which expands USERCOMM), UKTXT, UKEND
Naming conventions:
The module name must be in the format #XAannnn where,
#XA: IBM MVS
a: Environment. Valid entries are:
A: System abend codes and non-IMS and non-DUO user abend codes
I: IMS user abend codes
D: DUO user abend codes
nnnn: Abend code. Valid entries are:
For user abends: Four-digit user abend code. For example, #XAA0001 for a U0001 abend.
For non-program interrupt system abends (non-S0Cx): Three-digit system abend code followed by the letter A. For example, #XAAB78A for an SB78 abend.
For program-interrupt abends S0C7, S0C9, S0CB: Three-digit system abend code followed by the letter B. For example, #XAA0C7B for a S0C7 abend.
For all other program-interrupt abends: The four characters 0CXA. See the note below regarding important naming considerations. For example, #XAA0CXA for a S0C4 abend.
Naming considerations:
Existing Abend-AID diagnostic modules also follow the above naming convention. When creating a customized diagnostic for a particular abend, you should rename the existing Abend-AID diagnostic module for that abend. One convention to follow is to substitute the last character of the original name with the letter Z. To supplement Abend-AID’s usual diagnostic for an abend with a customized diagnostic, you must retain Abend-AID’s original diagnostic module by renaming it as described above.
For all program-interrupt abends, including S0C7, S0C9, and S0CB, Abend-AID first calls module #XAA0CXA. Abend-AID’s version of this module contains logic to determine the types of program-interrupts. Your version of this module must do the same. It then must indicate that the Abend-AID version, which you must rename, be the next Abend-AID module to process. This allows Abend-AID to provide its usual diagnostics for types of program-interrupts other than the types for which you have created customized diagnostics.
To remove a customized diagnostic module, reinstate the original diagnostic module by renaming it to its original name.
Coding considerations:
When adding customized diagnostics, use standard linkage. Also, register 15 must be set to zero on return to the calling application.
Customized help text introduces Abend-AID to an organization. It can also communicate system-wide fault diagnosis-related information to Abend-AID users. With the help facility active, customized help text can either supplement or replace the standard Abend-AID help text displayed at the beginning of the Abend-AID report.
Abend-AID’s help facility can be activated in one of the following ways:
• For a particular job, include an //ABNLHELP DD DUMMY card in the JCL.
• For all jobs accessing the batch Abend-AID global option, use Display help text in Abend-AID report.
Sample programs and assembly/link JCL can be found in the Abend-AID installation library (hlq.CTL).
Sample program and assembly/link JCL:
JCLHELP
Macros used:
UKTXT
Naming convention:
Name the first help module #XAAHLPA. If additional modules are needed, use #XAAHLPB, #XAAHLPC, etc.
Task 2: Customize Processing Control (CXEXIT01)
CWEXIT01 can be used to:
- Cause Abend-AID to conditionally ignore an application program failure based on user-specified information.
- Override Abend-AID’s normal course of action requesting or not requesting that an operating system abend dump be printed when Abend-AID returns control to the operating system.
- Specify an alternate abend code table to be used in place of Abend-AID’s default tables (CWTABS01, CWTABU01, CWTABP01).
Sample programs and assembly/link JCL can be found in the Abend-AID installation library (hlq.CTL).
Sample programs:
- CWEXIT01: Causes Abend-AID, based on job name, to either ignore an application program failure or process it and request an operating system dump.
- CWEXIT1A: Causes Abend-AID to ignore a program failure in started tasks and in TSO.
- CWEXIT1B: Causes Abend-AID to ignore an application program failure based on information returned by a call to RACF.
Naming convention:
The program must be named CWEXIT01.
Assembly/link JCL:
JCLXIT01
Macros used:
None
Parameter list:
List of addresses pointed to by register 1 at entry:
PTAB
Points to an eight-byte field containing binary zeros at entry. To use an alternate abend code table in place of default tables CWTABS01, CWTABU01, and CWTABP01, move its name to this field.
PCODE
Points to a five-byte field containing an abend code in the form Sxxx or Uxxxx or the string SNAPA for any form of SNAP-AID. Modifying this field has no effect on Abend- AID processing.
PIND
Points to a one-byte field containing binary zeros at entry. To override the dump request setting of table CWTABS01, CWTABU01, CWTABP01, or CWTABL01, move one of the following characters to this field:
D: | Request that an operating system abend dump be printed when returning control to the operating system. |
N: | Request that an operating system abend dump not be printed when returning control to the operating system. |
F: | Request that only the formatted control block portion of an operating system dump be printed when returning control to the operating system. |
I: | Ignore this application program failure and return control to the operating system without producing an Abend-AID report. An operating system abend dump will be requested. |
PJOB
Points to an eight-byte field containing the job name. This field must not be modified.
Task 3: Customize routing of reports and/or ignore a failure (CWEXIT02)
CWEXIT02 manages the routing of Abend-AID reports to one or more report files. CWEXIT02 can be used to:
- Route an Abend-AID report to a report data set or shared directory that is not the site default.
- Cause Abend-AID to conditionally ignore an application program failure.
Sample programs and assembly/link JCL are in the Abend-AID installation library (hlq.CTL).
Sample programs:
- CWEXIT2A: Causes Abend-AID to ignore an application program failure based on information returned by a call to RACF.
- CWEXIT2R: Calls a REXX EXEC with parameters from Abend-AID, accepts parameters, and passes them back to Abend-AID. Use member CWREXX02 to code your report routing selection criteria logic in a sample REXX EXEC.
- CWEXIT2S: Causes Abend-AID to bypass writing abend reports to report files. Instead the Abend-AID report is written to SYSOUT only.
Naming convention:
The program must be named CWEXIT02.
Assembly/link JCL:
JCLXIT02
Macros used:
CWINFO01, USRREL
Parameter list:
Register 1, at entry, points to a list containing one address that points to an area containing the following fields mapped by macro CWINFO01:
XJOBNAME
An eight-byte field containing the job name from the operating system TIOT for the job. The contents of this field will be placed in the job name field of the report file directory and should not be altered.
XABCODE
A four-byte field containing the operating system completion code in the format X’00sssnnn’, where sss is the hexadecimal system code and nnn is a hexadecimal representation of the decimal user code. The completion code represented by this field will be placed in the completion code field of the report data set directory and should not be altered by CWEXIT02.
XPROG
A ten-byte field containing the programmer name specified on the JCL job statement or a user comment from a SNAP-AID parameter list. The contents of this field at exit will be placed in the programmer name field of the report data set directory.
XDEFDSK
A 44-byte field containing the name of the report data set from the CWROUTE module or CWJOBTAB module. The report will be written to the report data set named by this field if XOPT1 is set to D at exit.
XOPT1
A one-byte report-routing options flag:
P | Paper. Routes the Abend-AID report to the destination specified by the DD statement ABENDAID, SYSUDUMP, or SYSABEND if DD statement ABNLTERM is not specified by JCL. This value is the default if XDEFDSK is blank at entry. |
D | Disk. Routes the Abend-AID report to the report data set named by field XDEFDSK at exit. This value is the default if XDEFDSK contains the name of a report shared directory from CWROUTE at entry. |
B | Bypass. Causes Abend-AID to ignore this application program failure. |
XOPT2
A one-byte report formatting flag for use when XOPT1 is set to P.
N | Narrow column format (72 characters). This value is the default if either CWGLOBAL or CWJOBTAB/CWPGMTAB has set 72-column width format. |
W | Wide column format (121 characters). This value is the default if neither CWGLOBAL nor CWJOBTAB/CWPGMTAB has set 72-column width format. |
Task 4: Customize Storage Display (CXEXIT03)
CWEXIT03 displays storage that is not usually displayed by Abend-AID. Such storage might consist of dynamically allocated areas containing tables or control blocks created by and used by application programs. This storage is displayed at the end of the Program Storage section of the Abend-AID report and is limited to 5000 pages.
Sample programs and assembly/link JCL can be found in the Abend-AID installation library (CTL).
Sample programs:
- CWEXIT03: Optional main driver for calling other sample programs. Use this when more than one of the following programs will be implemented for your environment:
- CWEXIT3L: Tests for the existence of a COBOL application environment, but does not display storage. This program is called by CWEXIT03 via macro CW3COBOL. To display storage for only non-COBOL applications, test the return code from CWEXIT3L in CWEXIT03.
- CWEXIT3P: Displays the PL/I dynamic work areas and save area chain. This program can be called by CWEXIT03 via macro CW3PLI, or used as a stand-alone program if named CWEXIT03 when linked. If called by CWEXIT03, an option can be specified to display storage for all PL/I errors, or only U4000 level PL/I abends.
- CWEXIT3S: Displays allocated areas of subpools used by SAS/C. This program can be called by CWEXIT03 via macro CW3SASC, or used as a stand-alone program if named CWEXIT03 when linked.
- CWEXIT3V: Displays the dynamic save area chain. This program can be called by CWEXIT03 via macro CW3SAVCH, or used as a stand-alone program if named CWEXIT03 when linked.
- CWEXIT3X: Displays storage dynamically allocated by an operating system facility such as GETMAIN or STORAGE OBTAIN. This program can be called by CWEXIT03 via CW3SUBPL, or used as a stand-alone program if named CWEXIT03 when linked. If called by CWEXIT03, an option can be specified to limit the display of storage to that allocated to certain subpools.
Naming convention:
The program must be named CWEXIT03. Other programs listed above must be named as listed if called by CWEXIT03 using supplied macros. If one is used as a stand-alone program, it must be named CWEXIT03.
Assembly/link JCL:
JCLXIT03
Macros used:
UKINIT (which expands USERCOMM), UKLIMIT, UKTXT, UKDUMP, UKEND
Task 5: Customize Termination Processing (AAXTERM)
AAXTERM is called after Abend-AID completes processing, but before Abend-AID returns control to the operating system. AAXTERM provides additional functionality required by your site such as the display of information messages in the JES message log or an output data set, or any functionality provided by a batch execution of the Common Shared Services (CSS) batch file utility CWDDALLU. Commonly requested CWDDALLU functions are:
- EXPORT of the Abend-AID report from the report data set to a sequential file
- COPY of the Abend-AID report from the report data set to another report data set
Sample programs and assembly/link JCL can be found in the Abend-AID installation sample library (CTL).
Sample programs:
- AAXTERM: Calls any or all of the exits described below.
- AAXTERM2: Calls CWPCMAIN to compile a COBOL source program with the COBOL language processor for an abending control section.
- AAXTERM4: Dynamically allocates files and invokes ENDEVOR in batch mode to copy the compiler listing for the failing program from the ENDEVOR listing library into the applicable Abend-AID listing library.
- AAXTERM5: Invokes JCL to extract the compiled listing for the abending COBOL module out of ENDEVOR and LP processes it into the source listing DDIO file.
- AAXTERM6: Invokes JCL to extract the compiled listing for the abending COBOL module out of Serena Software ChangeMan and LP processes it into the source listing DDIO file.
- AAXTERM7: Allocate and access a model JCL sequential data set to EXPORT the Abend-AID report file and IMPORT the report file to a shared directory for viewing on a remote NODE.
Naming convention:
This user-coded exit program must be named AAXTERM.
Assembly/link JCL:
JCLXTERM
Macros used:
USRREL, USERCOMM, SNAPSWS
Parameter list:
The address in register 1 at entry is copied to register 2, which is then used to address data defined by USERCOMM. Field SCBDMPN of this area contains the report number of the Abend-AID report written to the report data set.
Usage Instructions for AAXTERM:
To incorporate functionality of any of the AAXTERM sample programs into Abend- AID processing, refer to the instructions in the individual AAXTERM members in the Abend-AID installation library (CTL).
Task 6: Review Abend-AID macros
Abend-AID user-coded programs and exits use the Abend-AID macros described below.
UKINIT
The expansion of macro UKINIT contains code to provide program linkage and initialization, a DSECT to map the USERCOMM area, and a print subroutine used by macro UKTXT. This macro must be the first instruction coded in programs using it.
UKINIT macro syntax
R2LOAD=YES
name | Required symbol that defines the CSECT name |
RENT=NO | Creates a literal used by program CWMODLST and CWVERIFY. The default is NO. |
REUS=NO | Creates a literal used by program CWMODLST and CWVERIFY. The default is NO. |
AMODE=ANY | Creates a literal used by program CWMODLST and CWVERIFY, and generates an appropriate assembler AMODE statement. The default is ANY. |
RMODE=ANY | Creates a literal used by program CWMODLST and CWVERIFY, and generates an appropriate assembler RMODE statement. The default is ANY. |
EPOFF=hex value | Creates a literal used by programs CWMODLST and CWVERIFY. The entry point offset can be specified either as a hexadecimal value or as the difference between two labels, enclosed in parentheses. |
BAS2=register | A register to use a second base register. Valid registers are 4, 5, 6, 7, 8, 10, and 12. If no value is specified for this parameter, a second base register is not used. |
R2LOAD=YES | If YES, register 2 is loaded with the contents of register 1 at entry. Register 2 provides address-ability to the user portion of the Strobe common work area. |
USRREL
Macro USRREL is nested within macro UKINIT and establishes default parameter values to be passed to macro RELEASE nested within USRREL. If macro UKINIT’s program initialization and other functions are not needed, macro USRREL may itself be coded instead.
USRREL macro syntax
name | Required symbol that defines the CSECT name |
RENT=NO RENT=YES | Creates a literal used by program CWMODLST and CWVERIFY. The default is NO. |
REUS=NO REUS=YES | Creates a literal used by programs CWMODLST and CWVERIFY. The default is NO. |
AMODE=ANY AMODE=24 AMODE=31 | Creates a literal used by program CWMODLST and CWVERIFY, and generates an appropriate assembler AMODE statement. The default is ANY. |
RMODE=ANY RMODE=24 | Creates a literal used by program CWMODLST and CWVERIFY, and generates an appropriate assembler RMODE statement. The default is ANY. |
EPOFF=hex value EPOFF=(entry point label-load point label) | Creates a literal used by programs CWMODLST and CWVERIFY. The entry point offset can be specified either as a hexadecimal value or as the difference between two labels, enclosed in parentheses. |
RELEASE
Macro RELEASE is nested within macro USRREL and provides program initialization code. Parameter values specified on macro UKINIT are passed, via macro USRREL, to macro RELEASE.
UKTXT
UKTXT provides a convenient way to display lines of text in an Abend-AID report. UKTXT can be used only in programs in which macros UKINIT and UKEND are also used.
UKTXT macro syntax
‘next line of user-coded text’
name | Optional symbol |
user-coded text | Text to be displayed, enclosed in apostrophes. Each line of text is limited to 72 characters. |
UKEND
name | Optional symbol |
user-coded text | Text to be displayed, enclosed in apostrophes. Each line of text is limited to 72 characters. |
UKEND provides program linkage and returns control to either Abend-AID or another user-coded program. UKEND is used in programs in which macro UKINIT is also used.
UKEND macro syntax
name | Optional symbol |
MOD=END | Another user-coded program to which control will be passed, or END if control will be returned to Strobe. |
UKDUMP
UKDUMP provides a way to display an area of storage in the Abend-AID report. UKDUMP can be used only in programs in which macros UKINIT and UKEND are also used.
UKDUMP macro syntax
name | Optional symbol |
address | Register, enclosed in parentheses, that contains the address of the start of the storage area to display. |
length | Register, enclosed in parentheses, that contains the number of bytes of storage to display. |
optional title | Text, enclosed in apostrophes, used as a title preceding the displayed storage. This is optional and can be up to 72 characters in length. |
Z64BIT=NO | When Z64BIT=YES, a 64-bit address is used to indicate the start of the storage area to be displayed. CWEXIT03 does not need to be run in AMODE=64 to use Z64BIT=YES. Use of Z64BIT=YES is restricted to z/Architecture systems. The default is Z64BIT=NO. |
UKLIMIT
UKLIMIT limits the amount of storage displayed by a single UKDUMP macro call. If you use UKLIMIT, place it preceding the UKDUMP macro call for which the limit will be effective.
UKLIMIT macro syntax
name | Optional symbol |
limit | Number of bytes specified as a numeral in the range 0 - 32768, or number of kilobytes specified as an expression in the range 0K - 32K, or register containing a binary value in the range 0 - 21768. |
USERCOMM
Macro UKINIT’s expansion provides addressability to fields mapped by USERCOMM. Many of these fields contain information that you may find useful when coding a user-coded assembler program (exit). Exercise care when using these fields.
Do not alter the contents of fields mapped by USERCOMM. Doing so may adversely affect Abend-AID’s diagnostic and reporting ability following return of control by your exit program.
The following figures show the USERCOMM macro.
USERCOMM Macro (Part 1 of 4)
USERCOMM
******************************************************************
* PSW AND REGISTER CONTENTS AT ABEND (SOME OF THIS DATA *
* MAY BE MANIPULATED BY ABEND-AID). *
******************************************************************
STAABPSW DS D PSW AT ABEND
STAPRPSW DS D LAST PROG PSW BEFORE ABEND
* IF executing in AMODE64, the following register save areas will
* contain bits 32-63. A pointer to an area that contains bits 0-64
* of all 16 general registers is at label SR64ABND.
SR0ABND DS F REG 0 AT ENTRY TO ABEND
SR1ABND DS F REG 1 AT ENTRY TO ABEND
SR2ABND DS F REG 2 AT ENTRY TO ABEND
SR3ABND DS F REG 3 AT ENTRY TO ABEND
SR4ABND DS F REG 4 AT ENTRY TO ABEND
SR5ABND DS F REG 5 AT ENTRY TO ABEND
SR6ABND DS F REG 6 AT ENTRY TO ABEND
SR7ABND DS F REG 7 AT ENTRY TO ABEND
SR8ABND DS F REG 8 AT ENTRY TO ABEND
SR9ABND DS F REG 9 AT ENTRY TO ABEND
SR10ABND DS F REG 10 AT ENTRY TO ABEND
SR11ABND DS F REG 11 AT ENTRY TO ABEND
SR12ABND DS F REG 12 AT ENTRY TO ABEND
SR13ABND DS F REG 13 AT ENTRY TO ABEND
SR14ABND DS F REG 14 AT ENTRY TO ABEND
SR15ABND DS F REG 15 AT ENTRY TO ABEND
******************************************************************
* ORIGINAL PSW, REGISTER CONTENTS, ILC, AND INTC AT *
* ABEND (THESE FIELDS ARE UNMODIFIED BY ABEND-AID) *
******************************************************************
SOAABPSW DS D PSW AT ABEND
* IF executing in AMODE64, the following register save areas will
* contain bits 32-63. A pointer to an area that contains bits 0-64
* of all 16 general registers is at label SO64ABND.
SO0ABND DS F REG 0 AT ENTRY TO ABEND
SO1ABND DS F REG 1 AT ENTRY TO ABEND
SO2ABND DS F REG 2 AT ENTRY TO ABEND
SO3ABND DS F REG 3 AT ENTRY TO ABEND
SO4ABND DS F REG 4 AT ENTRY TO ABEND
SO5ABND DS F REG 5 AT ENTRY TO ABEND
SO6ABND DS F REG 6 AT ENTRY TO ABEND
SO7ABND DS F REG 7 AT ENTRY TO ABEND
SO8ABND DS F REG 8 AT ENTRY TO ABEND
SO9ABND DS F REG 9 AT ENTRY TO ABEND
SO10ABND DS F REG 10 AT ENTRY TO ABEND
SO11ABND DS F REG 11 AT ENTRY TO ABEND
SO12ABND DS F REG 12 AT ENTRY TO ABEND
SO13ABND DS F REG 13 AT ENTRY TO ABEND
SO14ABND DS F REG 14 AT ENTRY TO ABEND
SO15ABND DS F REG 15 AT ENTRY TO ABEND
SCBILC DS CL2 INSTRUCTION LENGTH CODE
SCBIC DS CL2 INTERRUPT CODE
*******************************************************************
* ORIGINAL PSW AND REGISTER CONTENTS AT TIME OF *
* DUO ABEND. *
*******************************************************************
DVTAD DS F A(DUO VECTOR TABLE)
DVTPSW DS CL8 PSW FROM DUO VECTOR TABLE
DVTREGS DS 16F REGS FROM DUO VECTOR TABLE
USERCOMM Macro (Part 2 of 4)
* MISCELLANEOUS DATA. *
******************************************************************
MRECSIZE DS F Max record size for I/O - user exits
MREC_WIDE EQU 125 wide output
MREC_NARROW EQU 76 narrow output
ABNARELS DS CL8 ABEND-AID RELEASE ID
SPRGNAME DS CL8 SVC51> Name of the load module associated with
* the abend PSW (STAABPSW).
* SNAPAID> Name of the load module associated with
* R14 at the time of the call to SNAPAID.
* LEAID> Name of the load module associated with
* the "abend PSW" (adjusted STAABPSW).
SPRGENTR DS F SVC51> Entry point address of the load module
* associated with the abend PSW (STAABPSW).
* SNAPAID> Entry point address of the load module
* associated with R14 at the time of the
* call to SNAPAID.
* LEAID> Entry point address of the load module
* associated with the "abend PSW" (adjusted
* STAABPSW).
SCBNAME DS CL8 SVC51> Name of the load module associated with
* the first CDE chained off of the problem
* program RB.
* SNAPAID> Name of the load module associated with
* R14 at the time of the call to SNAPAID.
* LEAID> Name of the load module associated with
* the "program PSW" (adjusted STAPRPSW).
COPGMNME DS CL8 NEXT MODULE NAME TO TMLINK TO
* OR 'END'. USED BY UKEND MACRO
COUSRARA DS CL100 AREA AVAILABLE FOR USER EXITS
SAVDCB DS A A(ABENDAID/ABNLTERM/SYSUDUMP DCB)
SAVTCB DS A A(TASK TCB)
SAVTIOT DS A A(TASK TIOT)
ABNSVRBA DS A A(ABEND SVRB)
CCADMPW DS A A(LOGICAL WRITE ROUTINE)
SCBEPABI DS F SVC51> Entry point address of the load module
* associated with the first CDE chained
* off of the problem program RB.
* SNAPAID> Entry point address of the load module
* associated with R14 at the time of the
* call to SNAPAID
* LEAID> Entry point address of the load module
* associated with the "program PSW"
* (adjusted STAPRPSW).
CCADMPV DS A A(LOGICAL WRITE ROUTINE)
SCBMODEL DS CL4 MODEL NUMBER - 158 = X'F1F5F8'
SCBRELSE DS CL4 RELEASE OF OPERATING SYSTEM
SCBVERS DS CL8 MVS RELEASE 3.8+ VERSION NO.
SCBOPSYS DS CL4 ASSEMBLY LEVEL CONSTANT --”MXA “
SCBOPT DS CL4 IGNR switch
SCBDATE DS CL5 ZONED YYDDD
SCBCCODE DS CL5 SYST COMP CODE SXXX/UXXXX
SCBTIME DS 0CL6 ZONED HHMMSS
SCBTIME_HH DS CL2 hours
SCBTIME_MM DS CL2 minutes
SCBTIME_SS DS CL2 seconds
DS CL3 *** Reserved ***
SOLDUMP DS CL1 SOL DUMP OPTION Y OR N
SOLCBLK DS CL1 SOL CTL BLKS Y,N OR C
SOLWSPRT DS CL1 SOL W-S PRINT Y OR N
DS CL1 *** Reserved ***
UNSDUMP DS CL1 UNS DUMP OPTION Y OR N
UNSCBLK DS CL1 UNS CTL BLKS Y,N OR C
UNSWSPRT DS CL1 UNS W-S PRINT Y OR N
DS CL1 *** Reserved ***
USERCOMM Macro (Part 3 of 4)
SOLVED DS CL1 Y IF SOLVED, N IF NOT
ABLINCNT DS PL2 PRINT LINE COUNT
ABPGECNT DS PL3 PAGE COUNT
APPPREPA DS A APPLICATION PROGRAM EPA
SCBDMPN DS F ONLINE DUMP NUMBER
UKPARM DS A USER EXIT SUBROUTINE PARM LIST PTR
******************************************************************
* AJES2JBID POINTS TO AN 8 BYTE CHARACTER FIELD THAT *
* CONTAINS THE JOB ID (E.G. JOB25418) OF THE ABENDED JOB. *
******************************************************************
AJES2JID DS A A(JES2 JOB IDENTIFIER)
******************************************************************
* AJOBACCT holds the address of tokenized JES2 job accounting
* information representing what was specified on a job statement.
* It points to a 1-byte field containing the count of variable
* length fields that follow. Each variable length area has two
* parts - the first is a 1-byte field containing the length of the
* data which occupies the second part of the field.
*
* The maximum length of the all fields including the 1-byte
* length fields is 144 bytes. A length field of zero terminates
* the list anywhere prior to the 144-byte maximum.
*
* Example: AJOBACCT contains an address, such as 008EB817, that
* points to a set of fields as follows:
*
* X'02' NUMBER OF FIELDS
* X'0A' LENGTH OF 1ST FIELD
* C'PARAMETER1' 1ST FIELD DATA
* X'02' LENGTH OF 2ND FIELD
* C'75' 2ND FIELD DATA
* X'00' ZERO LENGTH TERMINATES LIST
******************************************************************
AJOBACCT DS A A(JES2 JOB ACCOUNTING INFORMATION)
******************************************************************
* SLDMDNAM is the name of the load module that contains the
* program-in-error named in Abend-AID's Instruction Section.
*
* SCSECTAD points to the CSECT name of the program-in-error
* named in Abend-AID's Instruction Section. This name is
* most often eight or fewer bytes, but can be up to 1024 bytes
* bytes under certain circumstances.
*
* SCSECTLN contains the length of the CSECT name pointed to
* by SCSECTAD.
*
* CSECLAN2 is a 1-byte field that describes generally the
* language in which the program-in-error was written.
*
* CSECLANG is a 1-byte field that describes the specific
* language in which the program-in-error was written.
******************************************************************
SLDMDNAM DS CL8
SCSECTAD DS A
SCSECTLN DS H
CSECLAN2 DS C Generalized language flag
UC_COB EQU X'01' GENERIC COBOL INDICATOR
UC_PLI EQU X'02' GENERIC PL/I INDICATOR
UC_ASM EQU X'03' GENERIC ASSEMBLER INDICATOR
CSECLANG DS C Specialized language flag
UC_COB_ENT EQU X'FA' ENTERPRISE COBOL
UC_COB_390 EQU C'9' COBOL for OS/390
UC_COB_MVSVM EQU C'8' COBOL for MV/VM
UC_COB_VSCOBII EQU C'6' VS COBOL II
UC_COB_OSVSCOB EQU X'4' OSVS COBOL
USERCOMM Macro (Part 4 of 4)
UC_PLI_VA EQU 19 VISUAL AGE PL/I
UC_PLI_MVSVM EQU 16 PL/I for MVS/VM
UC_ASM_H EQU 4 ASSEMBLER H
UC_ASM_HLASM EQU 12 HLASM
UC_JOBID DS CL8 Job ID from SSIB
UC_COND_ID DS CL8 LE condition ID
ACODSNME DS F Address of the data set name of
* the library from which the
* program-in-error was loaded.
SR64ABND DS F Pointer to the 64-bit registers
* which correspond to SO0ABND-SO15ABND
SO64ABND DS F Pointer to the 64-bit registers
* which correspond to SO0ABND-SO15ABND
DS 13F *** Reserved for expansion ***
UC_JOBNAME DS CL8 Jobname from TIOT
UC_JOBSTEP_PROC DS 0CL16 Stepname/procname from TIOT
UC_STEPNAME DS 0CL8 |Job step name if nonproc
UC_PROCSTEP DS CL8 |Proc step name if proc
UC_JOBSTEP DS CL8 |Job step name if proc
UC_PROGRAMMER DS CL20 Programmer name from ACT
UC_DESCRIPTION DS CL10 Description from SNAPAID parm list
DS CL2 *** Reserved for expansion ***
UC_JOBCLS DS C Jobclass from JCT
UC_JPRTY DS C Job priority from JCT
UC_USERID DS CL8 Userid from JCT
UC_SYSID DS CL4 System ID from SMCA
UC_FMID DS CL8 FMID from CVT prefix
OPSYSNM DS CL16 Operating System Name
OPSYSVRM DS CL6 Operating System V.R.M.
*************************************************************************
* The DESCSRC field is used to specify the value that *
* is to be placed into the DESC column of the directory *
* entry in the Abend-AID report data set. This value *
* may be set in the Report Routing and Control user *
* exit, CWEXIT02. *
* Valid values for this field are: *
* *
* A - Displays the abending program name. *
* L - Displays the Language Environment condition. *
* I - Displays the IMS application program name. *
* T - Displays the IMS transaction name. *
* *
* NOTE: If the DESCSRC field is not modified, the first *
* ten characters of the Programmer Name field are placed *
* into the DESC column of the directory entry. *
*************************************************************************
DESCSRC DS CL1 DESC content; A,L,I,T OR BLANK
UC_LANGVRM DS CL6 Abending program Language VVRRMM
DS CL5 *** Reserved for expansion ***
UC_@PROGRAM_NAME DS A
UC_DB2_PRE_VERSION DS CL6 Abending program DB2 precompiler
* version (VV.R.M)
DS XL2 *** AVAILABLE
UC_FROMDIR@ DS A A(CO_RPT_SHRDIR#DDIO)
DS XL24 *** Reserved for expansion ***
MEND
******************************** Bottom of Data *******************************