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
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)
* /*
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)