Space announcement This documentation space provides the same content as before, but the organization of the content has changed. The content is now organized based on logical branches instead of legacy book titles. We hope that the new structure will help you quickly find the content that you need.

Customizing batch Abend-AID with user-coded programs and exits


Note

If you are upgrading batch Abend-AID, reassemble and link all user-coded diagnostics. Failure to do so may cause unpredictable results or an abend in the user-coded, diagnostic module.

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

Note

For online Abend-AID report viewing, we recommend you use instead the Abend-AID Viewer User-Defined Diagnostics facility. See Creating/Maintaining User-Defined Diagnostics for more information.

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 (CWHELP)

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)

Note

If you are upgrading batch Abend-AID, all user exits used in this release must be reassembled and linked.


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.

Note

For simple report routing, consider using Report Routing. See Modify Report Database Groups for specific information.

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

name     UKINIT RENT=NO,REUS=NO,AMODE=ANY,RMODE=ANY,EPOFF=,BAS2=,       X
                R2LOAD=YES


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 program 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.

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
R2LOAD=other value

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    USRREL RENT=NO,REUS=NO,AMODE=ANY,RMODE=ANY,EPOFF=

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.

Note

No user-modifications to macro RELEASE or its parameters are required or recommended.

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

name     UKTXTfirst line of user-coded text’,               X
               ‘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     UKEND MOD=END

name

Optional symbol

MOD=END
MOD=program name

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    UKDUMP  (address),(length),’optional title’

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
Z64BIT=YES

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    UKLIMIT  limit

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)

        MACRO
       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)

CORETCDE DS    CL3                  USED FOR SPECIFIC RETURN CODE
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_ENT               EQU 20              Enterprise PL/I
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 *******************************

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*