If G8UTY abends at offset +X'C0C, this is normally due to a mismatch between a module in SYS1.LPALIB (on DASD) and the version found in memory.
Different versions can be loaded from MLPA or from using the SYSLIB LPA statement in SYS1.PARMLIB member PROGnn.
For example, if an LPA lib was created that contains module IFG019RB, the PROGnn member would look like this:
SYSLIB LPALIB(SYS3.CA1126.CAILPA) APF FORMAT(DYNAMIC) /*+-----------------------------------------------------------------*/ ---+* /*| PROGZA - IBM AND OEM SOFTWARE APF AND LNKLST IPL MEMBER. */ |* /*| - PLEASE PUT AUTHORIZED USER LIBRARIES IN PROGUS. */ |* /*| - PLEASE COPY THIS TO PROGZ9# BEFORE UPDATING. */ |* /
When the system is IPL'ed, SYS3.CA1126.CAILPA will be stacked ahead of
SYS1.LPALIB in the LPALST. This is the syslog at time of IPL.
IEE252I MEMBER PROGZD FOUND IN SYS1.PARMLIB CSV410I APF FORMAT IS NOW DYNAMIC IEE252I MEMBER LPALSTZD FOUND IN SYS1.PARMLIB IEA713I LPALST LIBRARY CONCATENATION SYS3.CA1126.CAILPA <<< SYS2.SYNCV37.MINI.LPALIB SYS1.SORTLPA SYS1.SICELPA SYS1.LPALIB <<< SYS2.LPALIB
A comparison of the module lengths in the two LPARLIBs may or may
not find a difference:
BROWSE SYS3.CA1126.CAILPA Row 00001 of 0000 Command ===> Scroll ===> CSR Name Prompt Alias-of Size TTR AC AM RM IFG019RB 0002DDD0 000805 00 31 ANY **End** BROWSE SYS1.LPALIB Row 00886 of 0177 Command ===> Scroll ===> CSR Name Prompt Alias-of Size TTR AC AM RM IFG019RB 0002D2F8 01A60A 00 31 ANY
In this example the size difference is due to the inclusion in IFG019RB of the CA 1 FAILSAFE module.
To verify the active versions length , enter the following command.
D PROG,LPA,MOD=IFG019RB CSV550I 10.42.10 LPA DISPLAY 186 FLAGS MODULE ENTRY PT LOAD PT LENGTH DIAG P IFG019RB 8288E000 0288E000 0002DDD0 085FC5B0
Here you can see that the active copy's length matches our modified LPA library.
In order to have G8UTY properly apply the intercepts. First perform a
restore of the failed TMSOCE1A. **see note later
//RESTORE EXEC PGM=G8UTY,PARM='RESTORE,TMSOCE1A' **see note later //CAG8MSG DD SYSOUT=* //CAG8SNP DD SYSOUT=*
Then, add the CAG8LIB1 DD's to both your CAS9 procedure and TMSINIT
procedure. SYS1.LPALIB must be concatenated after our LPA library.
//CAG8LIB1 DD DSN=SYS3.CA1126.CAILPA,DISP=SHR // DD DSN=SYS1.LPALIB,DISP=SHR
Then either run CAS9 with the PARM for the CA 1 control statement being
PARM(REINIT,OSI=REINIT) or run G8UTY standalone.
If you run it standalone, then submit the following JCL.
//APPLY EXEC PGM=G8UTY,PARM='APPLY,TMSOCE1A' **see note later //CAG8MSG DD SYSOUT=* //CAG8SNP DD SYSOUT=* //CAG8LIB1 DD DSN=SYS3.CA1126.CAILPA,DISP=SHR // DD DSN=SYS1.LPALIB,DISP=SHR
This will enable G8UTY to compare the memory resident copy with the version found on DASD in SYS3.CA1126.CAILPA.
The intercepts will now apply successfully.
In this we reference TMSOCE1A but this changes with the release of z/OS that you are running.
TMSOCE1A is for z/OS 1.10 and above
TMSOCE15 is for z/OS 1.5 - 1.9