Previous Topic: Report CategoriesNext Topic: Special DD Statements


User Exits

CA SymDump System provides two user exits for advanced control over product behavior.

User exit CADVUSR1 is called before the dump capture evaluation process to allow for complex evaluation of dump capture criteria.

User exit CADVUSR2 is called before viewing a captured dump to allow for security validation of the potential viewer.

This section contains the following topics:

Customizing the User Exits

CADVUSR1

CADVUSR2

Customizing the User Exits

The source and JCL for each of the user exits can be found in the CAI.CCPIJCL library. Each exit is provided as a shell, providing no control logic. Since the CAI.CCPIJCL library is SMP/E controlled, user exit members must be copied to non-SMP/E controlled datasets before being modified. After the user exit source has been modified, submit the assemble and link JCL. Unlike modifying the options table, a product re-initialization is not required when changing a user exit.

CADVUSR1

Use this exit program to control the evaluation of dump capture criteria when the available selection criteria in the options table are not adequate for your needs.

The parm area CADVPRM1, shown below, contains information about the dumping address space that you can use to make your decision.

Fields in the parm area include:

The sample user exit CADVUSR1 is shown here:

CADVUSR1 TITLE 'CA SymDump System Sample User Exit (#1)' **-----------------------------------------------------------------** **                                                                 ** **  CADVUSR1 - CA SymDump System User Exit (#1)    ** **                                                                 ** **  This user exit allows for the evaluation of complex            ** **  dump capture criteria during dump capture.                     ** **                                                                 ** **  Input Registers:                                               ** **                                                                 ** **  R1 contains the address of the parm area (CADVPRM1)            ** **  R13 contains the address of a register save area               ** **  R14 contains the return address                                ** **  R15 contains the address of CADVUSR1                           ** **                                                                 ** **  All other registers are unpredictable.                         ** **                                                                 ** **  Output Registers:                                              ** **                                                                 ** **  R15 contains the return code (described below)                 ** **                                                                 ** **  All other registers must be returned unchanged.                ** **                                                                 ** **  Return Codes                                                   ** **                                                                 ** **  R15 = 0   Tells CA SymDump System to use the          ** **            normal dump capture criteria from CADVTABL.          ** **                                                                 ** **  R15 = 4   Tells CA SymDump System to capture         ** **            the dump.                                            ** **                                                                 ** **  R15 = 8   Tells CA SymDump System to suppress         ** **            dump capture.                                        ** **                                                                 ** **-----------------------------------------------------------------**          SPACE , CADVUSR1 CSECT          USING CADVUSR1,R12            Map the User Exit          USING LDATA,R13               Map Local Data          USING CADVPRM1,R8             Map the Parameter Area          SPACE ,          STM   R14,R12,12(R13)         Save caller's registers          LR    R12,R15                 Set procedure base          LR    R8,R1                   Set parm base          SPACE ,          LA    R1,PRM1WORK             @ Work area provided          ST    R13,4(,R1)              Save backward chain          ST    R1,8(,R13)              Save forward chain          LR    R13,R1                  Set our RSA address          SPACE , * Perform complex selection criteria here.          SPACE ,          SLR   R15,R15                 RC=0 (no decision)          SPACE ,          L     R13,4(,R13)             Restore @ caller's rsa          L     R14,12(,R13)            Load return address          LM    R0,R12,20(R13)          Restore registers          BR    R14                     Return to caller          TITLE 'LITERALS'          LTORG ,          TITLE 'DSECTS: Local Data' LDATA    DSECT LDSAVE   DS    18F            TITLE 'DSECTS: Parameter Area' **-------------------------------------------------------------------**  **                                                                   **  **  CADVPRM1 - CA SymDump System Parameter Area # 1         **  **                                                                   **  **  This copy member maps the parameter area passed to CADVUSR1      **  **  during dump capture.                                             **  **                                                                   **  **-------------------------------------------------------------------**           SPACE ,                                                        CADVPRM1 DSECT                                                          PRM1JOB  DS    CL8                    Job Name                          PRM1PROG DS    CL8                    Program Name                      PRM1USER DS    CL8                    User Id                           PRM1CODE DS    XL4                    Completion Code                   *---------------------------------------------------------------------- *                         System abend codes ===> 00sss000               *                           User abend codes ===> 00000uuu               *                            CICS dump codes ===> ddddcccc               *               CICS transaction abend codes ===> tttttttt               *                                                                        * Where:                                                                 *      sss is a three-digit hexidecimal system completion code           *      uuu is a three-digit hexidecimal user abend code                  *     dddd is a two-character EBCDIC CICS facility id (ie. AP or SM)     *     cccc is a two-byte binary code (0-9999)                            * tttttttt is a four-character EBCDIC transaction abend code (ie. ASRA)  *                                                                        *----------------------------------------------------------------------  PRM1OFST DS    XL4                    Program Offset                     PRM1WORK DS    XL256                  256-BYTE WORK AREA         LPRM1    EQU   *-CADVPRM1          TITLE 'REGISTER EQUATES' R0       EQU   0 R1       EQU   1 R2       EQU   2 R3       EQU   3 R4       EQU   4 R5       EQU   5 R6       EQU   6 R7       EQU   7 R8       EQU   8 R9       EQU   9 R10      EQU   10 R11      EQU   11 R12      EQU   12 R13      EQU   13 R14      EQU   14 R15      EQU   15          END   CADVUSR1

CADVUSR2

Use this exit program to control access to captured dumps by potential viewers. Since all dumps captured use the same high-level qualifier, this user exit can be used to deny access to sensitive dump data.

The parm area CADVPRM2, shown next, contains information about the captured dump and also the ID of the user attempting to view it.

Fields in the parm area include:

Request codes include:

The sample user exit CADVUSR2 is shown next:

CADVUSR2 TITLE 'CA SymDump System Sample User Exit (#2)'                 **------------------------------------------------------------------**   **                                                                  **   **  CADVUSR2 - CA SymDump System User Exit (#2)            **   **                                                                  **   **  This user exit performs security validation prior to            **   **  dump loading by the viewer.                                     **   **                                                                  **   **  Input Registers:                                                **   **                                                                  **   **  R1 contains the address of the parm area (CADVPRM2)             **   **  R13 contains the address of a register save area                **   **  R14 contains the return address                                 **   **  R15 contains the address of CADVUSR2                            **   **                                                                  **   **  All other registers are unpredictable.                          **  **                                                                  **  **  Output Registers:                                               **  **                                                                  **  **  R15 contains the return code (described below)                  **  **                                                                  **  **  All other registers must be returned unchanged.                 **  **                                                                  **  **  Return Codes                                                    **  **                                                                  **  **  R15 = 0   Allow dump viewing.                                   **  **                                                                  **  **  R15 > 0   Disallow dump viewing.                                **  **                                                                  **  **------------------------------------------------------------------**           SPACE ,                                                        CADVUSR2 CSECT                                                                   USING CADVUSR2,R12            Map the User Exit                         USING LDATA,R13               Map Local Data                            USING CADVPRM2,R8             Map the Parameter Area                 SPACE , 

                                                             STM   R14,R12,12(R13)         Save caller's registers                LR    R12,R15                 Set procedure base                     LR    R8,R1                   Set parm base                          SPACE ,                                                              LA    R1,PRM2WORK             @ Work area provided                   XC    0(256,R1),0(R1)         Clear it out                           ST    R13,4(,R1)              Save backward chain                    ST    R1,8(,R13)              Save forward chain                     LR    R13,R1                  Set our RSA address                    SPACE , 

* Perform security validation here.                                           SPACE ,                                                     RETURN   DS    0H                                                             L     R15,LDRC                Load the return code                   L     R13,4(,R13)             Restore @ caller's rsa                 L     R14,12(,R13)            Load return address                    LM    R0,R12,20(R13)          Restore registers                      BR    R14                     Return to caller                           TITLE 'LITERALS'                                                         LTORG ,                                                                  TITLE 'DSECTS: Local Data'                                      LDATA    DSECT    

                                                       LDSAVE   DS    18F                                                       LDRC     DS    F                                                                  TITLE 'DSECTS: Parameter Area'      

**------------------------------------------------------------------**  **                                                                  **  **  CADVPRM2 - CA SymDump System Parameter Area #2         **  **                                                                  **  **  This copy member maps the parameter area passed to CADVUSR2     **  **  prior to dump loading.                                          **  **                                                                  **  **------------------------------------------------------------------**           SPACE ,                                                        CADVPRM2 DSECT                                                          PRM2REQ  DS    XL4                    Request type                      P2_OPEN  EQU   5                        5 = OPEN A DUMP FOR VIEWING     P2_DDEL  EQU   7                        7 = DELETE A DUMP               P2_LOCK  EQU   22                      22 = LOCK A DUMP INDEX ENTRY     P2_UNLK  EQU   23                      23 = UNLOCK A DUMP INDEX ENTRY   P2_DDLX  EQU   28                      28 = DELETE A DUMP INDEX ENTRY    P2_BSTX  EQU   31                      31 = BUILD  ASTORAGE INDEX        PRM2USR  DS    CL8                    Requestor's user id                PRM2DJOB DS    CL8                    Dump job name                      PRM2DUSR DS    CL8                    Dump user id                       PRM2WORK DS    XL256                  256-BYTE WORK AREA                 LPRM2    EQU   *-CADVPRM2                                                         TITLE 'REGISTER EQUATES'                                        R0       EQU   0                                                         R1       EQU   1                                                         R2       EQU   2                                                         R3       EQU   3                                                         R4       EQU   4                                                         R5       EQU   5                                                         R6       EQU   6                                                         R7       EQU   7                                                         R8       EQU   8                                                         R9       EQU   9                                     R10      EQU   10                                    R11      EQU   11 R12      EQU   12                                    R13      EQU   13                                    R14      EQU   14                                    R15      EQU   15                                             END   CADVUSR2