Implementing secondary authids with ACF2 supplied exits for DB2 DSN3@ATH and DSN3@SGN abend S0C1 after LU00294
search cancel

Implementing secondary authids with ACF2 supplied exits for DB2 DSN3@ATH and DSN3@SGN abend S0C1 after LU00294

book

Article ID: 35430

calendar_today

Updated On: 02-05-2025

Products

ACF2 ACF2 - DB2 Option ACF2 - z/OS ACF2 - MISC

Issue/Introduction

Relinking the ACF2 for z/OS provided exits for DB2 - ACF3@ATH and ACF3@SGN to implement secondary authid processing now gets an S0C1 abend after LU00294  

Note that ACF3@ATH and ACF3@SGN are linked as DSN3@ATH and DSN3@SGN

Environment

Release:
Component: ACF2DB

Resolution

The source for these two exits can be found in CAX1MAC0 library supplied with the base ACF2 for z/OS product, not with the ACF2 for DB2 product. Within this source there are a lot of comments. These comments include details for assembling and linking the modules. Please make sure that you have not missed any csects that need to be included.

For ACF3@ATH

*                                                             
* ASSEMBLY INSTRUCTIONS                                       
*                                                             
* THE CA ACF2 SAMPLE CONNECTION AUTHORIZATION EXIT MUST BE    
* ASSEMBLED USING YOUR DB2 MACRO LIBRARY AND THE OBJECT       
* PLACED INTO THE CAI.ACF2.ACFOBJ LIBRARY FOR THE LINKAGE     
* EDITOR STEP THAT FOLLOWS.                                   
*                                                             
* //ASM      EXEC PGM=IEV90,REGION=0M,PARM='DECK'             
* //SYSUT1   DD UNIT=SYSDA,SPACE=(1700,(600,100))             
* //SYSPRINT DD SYSOUT=*                                      
* //SYSLIB   DD DSN=CAI.CAX1MAC0,DISP=SHR                     
* //         DD DSN=DSN220.SDSNMACS,DISP=SHR  << DB2 MACRO LIB
* //         DD DSN=SYS1.MACLIB,DISP=SHR                      
* //         DD DSN=SYS1.MODGEN,DISP=SHR                      
* //SYSIN    DD DIAP=SHR,DSN=CAI.AAX1MAC0(ACF3@ATH)           
* //SYSPUNCH DD DISP=SHR,DSN=CAI.ACF2.ACFOBJ(ACF3@ATH)        
*                                                             
* LINKAGE EDITOR INSTRUCTIONS                                 
*                                                             
* THE CA ACF2 SAMPLE CONNECTION AUTHORIZATION EXIT MUST       
* BE LINKED INTO THE DB2 DSNEXIT LIBRARY WITH A MODULE        
* NAME OF DSN3@ATH. THE FOLLOWING SAMPLE JCL CAN BE USED      
* AS A GUIDE TO LINK THE CA ACF2 SAMPLE EXIT.                 
*                                                             
* //LINK  EXEC PGM=IEWL,PARM='LET,LIST,XREF,NCAL,RENT,REUS'   
* //SYSPRINT  DD SYSOUT=*                                     
* //SYSLMOD   DD DSN=DSN220.DSNEXIT,DISP=SHR                  
* //SYSUT1    DD UNIT=SYSDA,SPACE=(TRK,(10,10))               
* //ACFOBJ    DD DSN=CAI.ACF2.ACFOBJ,DISP=SHR                 
* //ACFMOD    DD DSN=CAI.AAX1MOD0,DISP=SHR                    
* //          DD DSN=CAI.AAX1MOD1,DISP=SHR                    
* //SYSLIN    DD *                                            
*  INCLUDE ACFOBJ(ACF3@ATH)                                   
*  INCLUDE ACFMOD(ACF$GCVT)                                   
*  INCLUDE ACFMOD(ACF$FGCB)                                   
*  INCLUDE ACFMOD(ACF00SSL)                                   
*  INCLUDE ACFMOD(CMCTABLE)                                   
*  INCLUDE ACFMOD(SAFFBSCH)  
*  INCLUDE ACFMOD(SAFFBSC6)          needed after LU00294
*  INCLUDE ACFMOD(SAFFFSCN)     
*  MODE    AMODE(31),RMODE(ANY) 
*  ENTRY   DSN3@ATH             
*  NAME    DSN3@ATH(R)          
* /*                            
*                                               

For ACF3@SGN

*                                                             
* ASSEMBLY INSTRUCTIONS                                       
*                                                             
* THE CA ACF2 SAMPLE SIGNON AUTHORIZATION EXIT MUST BE        
* ASSEMBLED USING YOUR DB2 MACRO LIBRARY AND THE OBJECT       
* PLACED INTO THE CAI.ACF2.ACFOBJ LIBRARY FOR THE LINKAGE     
* EDITOR STEP THAT FOLLOWS.                                   
*                                                             
* //ASM      EXEC PGM=IEV90,REGION=0M,PARM='DECK'             
* //SYSUT1   DD UNIT=SYSDA,SPACE=(1700,(600,100))             
* //SYSPRINT DD SYSOUT=*                                      
* //SYSLIB   DD DSN=CAI.CAX1MAC0,DISP=SHR                     
* //         DD DSN=DSN220.SDSNMACS,DISP=SHR  << DB2 MACRO LIB
* //         DD DSN=SYS1.MACLIB,DISP=SHR                      
* //         DD DSN=SYS1.MODGEN,DISP=SHR                      
* //SYSIN    DD DIAP=SHR,DSN=CAI.AAX1MAC0(ACF3@SGN)           
* //SYSPUNCH DD DISP=SHR,DSN=CAI.ACF2.ACFOBJ(ACF3@SGN)        
*                                                             
* LINKAGE EDITOR INSTRUCTIONS                                 
*                                                             
* THE CA ACF2 SAMPLE SIGNON AUTHORIZATION EXIT MUST           
* BE LINKED INTO THE DB2 DSNEXIT LIBRARY WITH A MODULE        
* NAME OF DSN3@SGN. THE FOLLOWING SAMPLE JCL CAN BE USED      
* AS A GUIDE TO LINK THE CA ACF2 SAMPLE EXIT.               
*                                                           
* //LINK  EXEC PGM=IEWL,PARM='LET,LIST,XREF,NCAL,RENT,REUS' 
* //SYSPRINT  DD SYSOUT=*                                   
* //SYSLMOD   DD DSN=DSN220.DSNEXIT,DISP=SHR                
* //SYSUT1    DD UNIT=SYSDA,SPACE=(TRK,(10,10))             
* //ACFOBJ    DD DSN=CAI.ACF2.ACFOBJ,DISP=SHR               
* //ACFMOD    DD DSN=CAI.AAX1MOD0,DISP=SHR                  
* //          DD DSN=CAI.AAX1MOD1,DISP=SHR                  
* //SYSLIN    DD *                                          
*  INCLUDE ACFOBJ(ACF3@SGN)                                 
*  INCLUDE ACFMOD(ACF$GCVT)                                 
*  INCLUDE ACFMOD(ACF00SSL)                                 
*  INCLUDE ACFMOD(CMCTABLE)                                 
*  INCLUDE ACFMOD(SAFFBSCH)    
*  INCLUDE ACFMOD(SAFFBSC6)  Needed after LU00294                             
*  INCLUDE ACFMOD(SAFFFSCN)                                 
*  MODE    AMODE(31),RMODE(ANY)                             
*  ENTRY   DSN3@SGN                                         
*  NAME    DSN3@SGN(R)                                      
* /*                                                        

 

Additional Information

Note that ACF3@ATH and ACF3@SGN are linked as DSN3@ATH and DSN3@SGN

also note: If only a relink is being done and the reassembly of ACF3@ATH or ACF3@SGN is not being performed, 
The relink statements should be

//SYSLIN    DD * 
  INCLUDE ACFMOD(ACF$GCVT) 
  INCLUDE ACFMOD(ACF00SSL)                                 
  INCLUDE ACFMOD(CMCTABLE)                        
  INCLUDE ACFMOD(SAFFBSCH)    
  INCLUDE ACFMOD(SAFFBSC6)                         Needed after LU00294 
  INCLUDE ACFMOD(SAFFFSCN)      
  INCLUDE DSNEXIT(DSN3@SGN)                        
  MODE    AMODE(31),RMODE(ANY)   
  ENTRY   DSN3@SGN                                        
  NAME    DSN3@SGN(R)                     

 //SYSLIN    DD *                                            
  INCLUDE ACFMOD(ACF$GCVT)                                 
  INCLUDE ACFMOD(ACF$FGCB)                                   
  INCLUDE ACFMOD(ACF00SSL)                                   
  INCLUDE ACFMOD(CMCTABLE)                                   
  INCLUDE ACFMOD(SAFFBSCH)  
  INCLUDE ACFMOD(SAFFBSC6)          needed after LU00294
  INCLUDE ACFMOD(SAFFFSCN)     
  INCLUDE DSNEXIT(DSN3@ATH)
  MODE    AMODE(31),RMODE(ANY) 
  ENTRY   DSN3@ATH             
   NAME    DSN3@ATH(R)          


To activate these two modules, they need to be added to the DB2 exit library (SDSNEXIT) and DB2 needs to be restarted.
In the DBxxMSTR output you should see the exits and their location.
For example

             SUBSYSTEM DB2 SYSTEM PARAMETERS ARE AS FOLLOWS:       
              SYSTEM PARM  DB2.SDSNEXIT(DSNZPARM)         
              DSNHDECP     DB2.SDSNEXIT(DSNHDECP)         
              ACCESS EXIT  DB2.SDSNLOAD(DSNX@XAC)
              IDAUTH EXIT  DB2.SDSNEXIT(DSN3@ATH)         
              SIGNON EXIT  DB2.SDSNEXIT(DSN3@SGN)