How to verify a PTF is applied for the CA Database Management Solutions for DB2 for z/OS products?

Document ID:  TEC481994
Last Modified Date:  07/05/2017
{{active ? 'Hide' : 'Show'}} Technical Document Details

Products

  • CA Database Management Solutions for DB2 for z/OS

Components

  • Post Install:INS
  • General Services for DB2:GEN
Introduction:

How to verify a PTF is applied for the CA Database Management Solutions for DB2 for z/OS products?

Instructions:

A- Check if a PTF is applied over the SMP/E CSI.

To verify if a PTF is applied to your target zone, use the following JCL. It will list all PTFs applied in the Target zone:

//SMPE    EXEC PGM=GIMSMP                     
//SMPCSI   DD DISP=SHR,DSN=ca.db2.products.csi   ** Update with site specific CSI  **  
//SMPCNTL  DD *                               
 SET  BOUNDARY((TargetZone) .    <-- Update with Target Zone                        
 LIST PTFS.                                   
/*                                            
//           

The  problem with the SMP/E LIST PTFS generated with the JCL above is that it is only a report of the SMP/E CSI. For instance if you are working with a copy of the Target LOADLIB, the SMP/E Target LOADLIB may be different than the actual runtime LOADLIB used for execution.

B- Check if a PTF is applied over a load module in a LOADLIB.

This requires several steps:

  1. Review the ++MOD statements in the PTF, a ++MOD in SMP/E is a CSECT name in the load module. For example with Detector PTF you may find a ++MOD statement ++MOD(DT$DIIC0), this is a reference to CSECT DT$DIIC0.
  2. With TSO/ISPF Search-For (Option 3.14), find the load modules with this CSECT included. For example in this case you will find load module PDTDIIC0.
    An alternative to 3.14 Search-For is to use an SMP/E dialog 3 Query, 1 CSI QUERY, and enter the target zone name for the Zone Name, SYSMOD for the Entry Type, and PTF for the Entry Name. SMP/E will display the load modules affected by the PTF under the MOD entry.
  3. In the LOADLIB locate load module PDTDIIC0 and browse the module. You should see the PTF number in the RMID eye catcher for CSECT DT$DIIC0.

Something to bear in mind working with this method is in this case you are actually checking a RMID value, the RIMD value is last SMP/E function that updated the CSECT. You may see a PTF number that might be higher, since this higher PTF will have the PTF being searched for as a PREREQ you can consider the PTF as applied.

 

C- Check if a PTF is applied over a load module in a LOADLIB thru an AMASPZAP or AMBLIST utlity.

Another method is to list the CSECT with a AMASPZAP JCL of the load module, in the output of the listed CSECTs on the right column you can see the date, timestamp, and RMID values.

//AMAZAP  EXEC PGM=AMASPZAP,PARM=IGNIDRFULL    
//SYSLIB   DD DISP=SHR,DSN=ca.db2.products.loadlib   ** Update with site specific LOADLIB ** 
//SYSPRINT DD SYSOUT=*                         
//SYSIN    DD *                                
DUMPT PDTDIIC0 ALL                             
/*                                             
//         

There are sites where program AMASPZAP is restricted so with program AMBLIST you can check PTFs with a list of the IDRs in the load module. 

//AMBLIST EXEC PGM=AMBLIST                        
//SYSLIB   DD DISP=SHR,DSN=ca.db2.products.loadlib   ** Update with site specific LOADLIB ** 
//SYSPRINT DD SYSOUT=*                            
//SYSIN    DD *                                   
 LISTIDR MEMBER=PDTDIIC0                         
/*                                                
//  

 

D- Check a load module in a LOADLIB during a TSO/ISPF session thru TSO ISRDDN command.

Sometimes it may be required to check that TSO/ISPF is functioning with the appropriate maintenance and the correct PTFs are applied. In this case steps 1 and 2 are the same as before, then use command TSO ISRDDN to display the dataset allocations:

  1. Review the ++MOD statements in the PTF, a ++MOD in SMP/E is a CSECT name in the load module. For example with Detector PTF you may find a ++MOD statement ++MOD(DT$DIIC0), this is a reference to CSECT DT$DIIC0.
  2. With TSO/ISPF Search-For (Option 3.14), find the load modules with this CSECT included. For example in this case you will find load module PDTDIIC0.
    An alternative to 3.14 Search-For is to use an SMP/E dialog 3 Query, 1 CSI QUERY, and enter the target zone name for the Zone Name, SYSMOD for the Entry Type, a PTF for the Entry Name. SMP/E will display the load modules affected by the PTF under the MOD entry.
  3. Now when you are in 'CA Database Management Solutions for DB2 for z/OS' main menu, type TSO ISRDDN on the OPTION line.
  4. You will see the 'Current Data Set Allocations'. Locate and browse the Loadlib with a B PTILIB CA.DB2.PRODUCTS.LOADLIB

Locate load module PDTDIIC0 and browse it. With Find command search the CSECT name until you find the CSECT name with the RMID eye catcher. The PTF in the RMID eye catcher is the highest PTF applied over the CSECT.

 

E- Check with CA Load Module Service Analyzer.

The CAMODID utility is packaged in the CA Common Services stack and can be used to report on the applied maintenance for a load library.  Our customers already have this utility installed! 

The utility replaces other methods that are often used:

  • ISPF Search-For method
  • AMASPZAP or AMBLIST utilities
  • ISPSF Browse

The utility works for all CA products that are CAMODID enabled.  It can be invoked interactively in ISPF or in batch.

//STEP1    EXEC PGM=IKJEFT01                                   
//SYSPROC  DD DISP=SHR,DSN=SYS2.SYSEXEC                        
//SYSTSPRT DD SYSOUT=*                                         
//SYSTSIN  DD *                                                
CAMODID DSNAME(PTIPROD.RD190.DEV.CDBALOAD) DETAIL LMOD(PDTDIIC0)

 

Identifying the last applied maintenance for each object module. The generated report can be easily captured and sent to CA for review.  It provides consolidated summaries:

  • Identifying all maintenance applied to the load module. 

The report confirms that RO95038 has indeed been applied to this load library:

        PROCESSING DATASET=PTIPROD.RD190.DEV.CDBALOAD                     
                                                                           
     MODULE   FMID    RMID     DATE   TIME       PRODUCT                  
    -------- ------- ------- -------- ----- --------------------          
                                                                           
===========================================================================
LMOD=PDTDIIC0                                                             
    DT$DIIC0 CPDTJ00 TR95149 20170321 17.14 CA Database Management R19.0  
    DT$DI8C0 CPDTJ00 RO94732 20170228 08.55 CA Database Management R19.0  
    DT$DI9C0 CPDTJ00 TR95149 20170321 17.20 CA Database Management R19.0  
    DT$DIPC0 CPDTJ00 RO95038 20170314 19.16 CA Database Management R19.0  

                   CA LOAD MODULE SERVICE SUMMARY                         
                                                                           
 RMID    FMID      RMID    FMID      RMID    FMID      RMID    FMID       
                                                                           
TR95149 CPDTJ00   RO95038 CPDTJ00   RO94732 CPDTJ00

 

In contrast to the prior example, the following example shows what a base release looks like before any maintenance has been applied.  Each module has an RMID that has been initialized to its FMID name.  In addition, the Service Summary reports no maintenance:

        PROCESSING DATASET=PTIPROD.RD200.DEV.CDBALOAD                      
                                                                           
     MODULE   FMID    RMID     DATE   TIME       PRODUCT                   
    -------- ------- ------- -------- ----- --------------------           
                                                                           
===========================================================================
LMOD=PDTDIIC0                                                              
    DT$DIIC0 CPDTK00 CPDTK00 20170328 12.47 CA Database Management R20.0   
    DT$DI8C0 CPDTK00 CPDTK00 20170327 21.51 CA Database Management R20.0   
    DT$DI9C0 CPDTK00 CPDTK00 20170327 21.51 CA Database Management R20.0   
    DT$DIPC0 CPDTK00 CPDTK00 20170327 21.50 CA Database Management R20.0   
                                                                           
                   CA LOAD MODULE SERVICE SUMMARY                          
                                                                           
                    NO SERVICE MAINTENANCE FOUND                           

Documentation for CAMODID can be found on the CA DocOps site.  The utility supports more use cases which have not been illustrated in this report. Hopefully you can see the power and the simplicity of the CAMODID utility.  Point it to the runtime load library to determine the latest maintenance that has been applied.  

Please help us improve!

Will this information enable you to resolve your issue?

Please tell us what we can do better.

{{feedbackText.length ? feedbackText.length : '0'}}/255

{{status}}

Not what you were looking for?

Search Again >

Product Information

Support by Product >

Communities

Join a Community >