How to determine if the version on DISK or TLMS matches the version in storage ?

Document ID : KB000010404
Last Modified Date : 14/02/2018
Show Technical Document Details
Introduction:

If G8UTY abends at offset +X'C0C', this is normally as a result from a mismatch from a module in SYS1.LPALIB(on disk) 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.

How to determine if the version on DISK / TLMS  matches the version in storage ?

Environment:
Z/OS 2.1 - 2.2 - TLMS 12.6 - TLMS 14.0
Instructions:

I have created an LPA lib that contains IFG019RB.This module includes our FAILSAFE routine replacement for IFG019VM(CTS019VM).

The PROGnn entry to place my LPALIB ahead of SYS.LPALIB is:

SYSLIB LPALIB(SYS3.CATLMS126.CAILPA)

APF FORMAT(DYNAMIC)

 

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.CATLMS126.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.CATLMS126.CAILPA        our LPALIB

SYS2.SYNCV37.MINI.LPALIB

SYS1.SORTLPA

SYS1.SICELPA

SYS1.LPALIB

SYS2.LPALIB2

 

Verifying the lengths from each library, the sizes are different in our modified LPA library.

BROWSE    SYS3.CATLMS126.CAILPA                                Row 00001 of 0000

Command ===>                                                  Scroll ===> CSR

  Name     Prompt         Alias-of      Size       TTR      AC    AM     RM

. IFG019RB                             0002DDD0    000805    00     31    ANY

**End**                                                                   

                                                                            

                                                                            

.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .

 Menu  Functions  Utilities  Help                                          

-----------------------------------------------------------------------------

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

 

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 0002DD0 085FC5B0

 

Here you can see that the active copy's length matches out modified LPA library.

Solution:

In order to have G8UTY properly apply the intercepts.

First perform a restore of the failed TLMSOC1A

//RESTORE EXEC PGM=G8UTY,PARM='RESTORE,TLMSOC1A'

//CAG8MSG DD SYSOUT=*

//CAG8SNP DD SYSOUT=*

 

Then , add the CAGLIB1 DD's to both your CAS9 procedure and recycle CTS.SYS1. Lpalib must be concatenated after our LPA library.

//CAG8LIB1 DD DSN=SYS3.CATLMS126.CAILPA,DISP=SHR

// DD DSN=SYS1.LPALIB,DISP=SHR

 

Then either run CAS9 with the PARM for CA TLMS 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,TLMSOC1A'     **see note later                          

//CAG8MSG  DD SYSOUT=*                                                  

//CAG8SNP  DD SYSOUT=*                                                  

//CAG8LIB1 DD  DSN=SYS3.CATLMS126.CAILPA,DISP=SHR                        

//         DD  DSN=SYS1.LPALIB,DISP=SHR

 

This will enable G8UTY to pair the memory resident copy with the version found on disk for SYS3.CATLMS126.CAILPA.

The intercepts will now apply successfully.

NOTE: In this we reference TLMSOC1A but these changes with the release of Z/OS that you are running.

TLMSOC1A is for Z:OS 110 and above

TLMSOC15 is for Z/OS 1,5- 1,9