Group: Select these conditions to specify various types of user exits

The User Exits exception allows you to specify a load module or a CLIST/REXX EXEC to be executed.

This user-defined program should contain the logic necessary to check for exception conditions.

User exits can perform any type of function, including executing SQL. You can set up a program to query any catalog or user-defined table. This option allows you to query additional catalog columns not offered in exception profiles.

Each load module, CLIST, and REXX EXEC is called once per object included in the object profiles.

A sample assembler DSECT is contained in the DAJ$USRX member in hilevel.SDAJSAMP. The following parameter list is passed to the user exit:

DAJ$USRX_S                 DSECT                                        
DAJ$USRX_IDENTIFIER        DS  CL08'DAJ$USRX'                           
DAJ$USRX_RETURN_CODE       DS  F       UserExit must set this to either 
DAJ$USRX_RC_SKIP           EQU 0         this value or                  
DAJ$USRX_RC_TRIGGER        EQU 4         this value.                    
DAJ$USRX_FIRST_CALL        DS  CL01    Yes if First call to UserExit    
DAJ$USRX_LAST_CALL         DS  CL01    Yes if Last  call to UserExit    
DAJ$USRX_LOB               DS  CL01    Yes if a Large OBject            
DAJ$USRX_YES               EQU C'Y'                                     
DAJ$USRX_NO                EQU C'N'                                     
                           DS  CL09                                     
DAJ$USRX_DB2_SSID          DS  CL04    DB2 SubSystem ID                 
DAJ$USRX_DBID              DS  H       Internal ID of Database          
DAJ$USRX_OBID              DS  H       Internal ID of Object            
DAJ$USRX_PSID              DS  H       Internal ID of TS/IX Page Set    
DAJ$USRX_DATASET_EXTENTS   DS  H       Number of Dataset Extents        
DAJ$USRX_DATASET_DSNUMS    DS  H       Number of Datasets for Object    
DAJ$USRX_PARTITION         DS  H       -1 if Object at ALL level        
DAJ$USRX_PGSIZE            DS  H       TS - PAGE SIZE IN K              
*                                      IX - SIZE, IN BYES, OF LEAF      
*                                           PAGES IN INDEX:             
*                                           256|512|1024|2048|4096      
                           DS  CL08                                     
DAJ$USRX_TYPE              DS  CL02    TS|IX                            
DAJ$USRX_DATABASE          DS  CL08    TableSpace Database Name         
DAJ$USRX_SPACENAME         DS  CL08    TableSpace Name                  
DAJ$USRX_IX_CREATOR        DS  CL128   If NOT an IX, these are blank.   
DAJ$USRX_IX_NAME           DS  CL128     x                              
DAJ$USRX_IX_DATABASE       DS  CL08      x                              
DAJ$USRX_IX_INDEXSPACE     DS  CL08      x                              
DAJ$USRX_IX_TABLE_NAME     DS  CL128     x                              
DAJ$USRX_IX_TABLE_CREATOR  DS  CL128     x                              
DAJ$USRX_IX_COPY_INDICATOR DS  CL01      Can IX be Image Copied? Y/N    
DAJ$USRX_RETPD             DS  CL04    Retention Period                 
                           DS  CL(4096-(*-DAJ$USRX_S))                  
DAJ$USRX_LEN               EQU *-DAJ$USRX                               
DAJ$USRX_PARMS             EQU DAJ$USRX_S,*-DAJ$USRX_S                  
DAJ$USRX                   EQU DAJ$USRX_PARMS                           

The user exit sets DAJ$USRX_RETURN_CODE to indicate whether the object is selected for processing.