IBM Support

CHECKING LEVEL OF TWSz JOBTRACKING EXITS LOADED INTO MEMORY

Troubleshooting


Problem

In analyzing a TWS-z/OS JOBTRACKING problem, it is often useful to determine *exactly* what versions of the JES and SMF jobtracking exits are being invoked.

Resolving The Problem

The best way to do this is to actually look at these exits in memory. The following procedure explains how to do this "real-time" without needing a dump, or any special tools, for the SMF exits used by TWSz, IEFUJI, IEFACTRT, and IEFU83. For the JES exits, a great deal of information can be obtained from JES DISPLAY commands, but a dump is usually necessary to actually see the code in memory, as these exits are usually loaded into the JES2 address space, not into common storage.

We'll discuss SMF exits first, then JES2, then JES3.

1. To verify any SMF exit by looking at the code loaded into storage:


    A. From the SDSF LOG function, or from a system console, issue the command "D PROG,EXIT,ALL" (If you're in SDSF don't forget the required slash ("/")). This command will list all active SMF exits in your system by their "formal names", as follows:


     D PROG EXIT,ALL                                              
     CSV460I 13.19.17 PROG,EXIT DISPLAY 043                        
     EXIT             DEF EXIT             DEF EXIT             DEF
     SYS.IEFACTRT      E  SYS.IEFUJI        E  SYS.IEFU83        E
     SYS.IEFU84        E  SYS.IEFU85        E  SYSSTC.IEFACTRT   E
     SYSSTC.IEFUJI     E  SYSSTC.IEFU83     E  SYSSTC.IEFU84     E
     SYSSTC.IEFU85     E  SYSOMVS.IEFU83    E  SYSOMVS.IEFUJI    E
     SYSOMVS.IEFU84    E  SYSOMVS.IEFU85    E  CSVDYLPA          E
     CSVDYNEX          E  IEASDUMP.QUERY    E  IEASDUMP.GLOBAL   E
     IEASDUMP.LOCAL    E  IEASDUMP.SERVER   E  IXC_ELEM_RESTART  E
     IXC_WORK_RESTART  E  ISGNQXIT          E  ISGNQXITFAST      E
     ISGCNFXITSYSTEM   E  ISGCNFXITSYSPLEX  E  ISGNQXITBATCH     E
     ISGNQXITQUEUED1   E  ISGENDOFLQCB      E  ISGNQXITPREBATCH  E
     ISGNQXITBATCHCND  E  ISGDGRSRES        E  CEE_ABENDEXIT     E
     IEHINITT_EXIT     E  IEF_ALLC_OFFLN    E  IEF_SPEC_WAIT     E
     IEF_VOLUME_ENQ    E  IEF_VOLUME_MNT    E  IEFDB401          E
     IEFJFRQ           E  SYSSTC.IEFU29     E  SYS.IEFUJV        E
     SYS.IEFU29        E  SYS.IEFUTL        E  IRREVX01          E
     IGDACSDX          E  BPX_PREPROC_INIT  E  BPX_POSPROC_INIT  E
     BPX_IMAGE_INIT    E  BPX_PREPROC_TERM  E                      

    B. Note the formal names of all instances of the SMF exits used by TWSz -- IEFUJI, IEFACTRT, IEFU83.

    C. Use the appropriate formal name in the command

    "D PROG,EXIT,EN=formalname,DIAG"

    to find the loadpoint of the exit in memory. For instance:

    D PROG EXIT,EN=SYS.IEFUJI,DIAG                        


     CSV464I 13.24.29 PROG,EXIT DISPLAY 088                
     EXIT SYS.IEFUJI                                      
     MODULE    STATE EPADDR    LOADPT    LENGTH    JOBNAME
     TWSUJI1     A   8599BC30  00000000  00000000  *      

    D. Next enter the ISRDDN function by entering the command

     "TSO ISRDDN"

    E. Use the EPADDR from the D PROG EXIT output in the BROWSE command as follows:

     "BROWSE 8599BC30."

    NOTE: You must use the trailing "dot" (".") to tell the browse command the preceding string is an address and not a module name.
2. For a JES2 exit,you must know the name of the EXIT LOADMODULE.  The default names of the two TWSz JES2 exit lmods are OPCAXIT7 for EXIT7, and TWSXIT51 for EXIT51:
    A. The command $DEXIT(7) or $DEXIT(51) results in message $HASP823  (Note that the value in ROUTINES= is not the module name!)

     $DEXIT(7)                                                      
     $HASP823 EXIT(7) 802                                            
     $HASP823 EXIT(7)    STATUS=ENABLED,ENVIRON=JES2,                
     $HASP823            ROUTINES=(OPCAENT7),SPLEVEL=CHECK,TRACE=YES,
     $HASP823            USECOUNT=0                                  

    B. Enter the $DMODULE command:

     $DMODULE(OPCAXIT7)                                            
     $HASP468 MODULE(OPCAXIT7) 283                                  
     $HASP468 MODULE(OPCAXIT7)  ADDRESS=0D801758,ASSEMBLY=(08/28/03,
     $HASP468                   08.46),ENVIRON=JES2,EXITPTS=(),    
     $HASP468                   FMID=HJE7707,IBMJES2=NO,LASTAPAR=,  
     $HASP468                   LENGTH=000458,LOADMOD=OPCAXIT7,    
     $HASP468                   MACLEVEL=6,ROUTINES=(OPCAENT7),    
     $HASP468                   SPLEVEL=CHECK,TABLES=()            

    C. If further information is required, you'll need to dump JES and CSA and fine the storage address specified.
3. For JES3, again, you must know the name of the exit lmod:
    A. Enter the command *I,X,M=IATUX29 or *I,X,M=IATUX19    
       to get the lmod load address.

    B. Find that address in the Dump if necessary.

[{"Product":{"code":"SSRULV","label":"IBM Workload Scheduler for z\/OS"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"--","Platform":[{"code":"PF035","label":"z\/OS"}],"Version":"All Versions;Version Independent","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
13 September 2019

UID

swg21141092