VSAM Index Trap

When writing a record to a data set with an index or an ICF catalog, VSAM record management will check to see if the adding or updating of the record will damage the index component. If the code detects that it will damage the index, the request is not done and any changes made during the request will be backed out.

Symptoms

How to investigate

  1. Close VSAM data set if possible.
  2. Run IDCAMS LISTCAT ALL of the data set and any associated data sets, such as AIX’s
    //STEP1    EXEC  PGM=IDCAMS,REGION=0M  
    //SYSPRINT DD    SYSOUT=A		 	
    //SYSIN    DD *
      LISTCAT ENT(VSAM.DATA.SET) ALL 
  3. If the data set is closed, run the following IDCAMS commands:
    • EXAMINE INDEXTEST NODATATEST ... followed by
    • EXAMINE NOINDEXTEST DATATEST
    //STEP1    EXEC  PGM=IDCAMS,REGION=0M  
    //SYSPRINT DD    SYSOUT=A 	  
    //SYSIN    DD *			     
    	EXAMINE VSAM.DATA.SET INDEXTEST NODATATEST 
     EXAMINE VSAM.DATA.SET NOINDEXTEST DATATEST
  4. If the data set cannot be closed or is an ICF Catalog, run the following IDCAMS commands:
    • VERIFY
    • EXAMINE IND EXTEST NODATATEST
    • EXAMINE INDEXTEST NODATATEST,
    • EXAMINE DATATEST NOINDEXTEST
    • EXAMINE DATATEST NOINDEXTEST
    //STEP1    EXEC  PGM=IDCAMS,REGION=0M
    //SYSPRINT DD    SYSOUT=A	 	    
    //SYSIN    DD *
      VERIFY DATASET(VSAM.DATA.SET) 	 
      EXAMINE VSAM.DATA.SET INDEXTEST NODATATEST
      EXAMINE VSAM.DATA.SET INDEXTEST NODATATEST 
      EXAMINE VSAM.DATA.SET.NOINDEXTEST DATATEST
      EXAMINE VSAM.DATA.SET NOINDEXTEST DATATEST
  5. Preserve the data set by renaming the cluster, data component and index component in case further information is needed from the data set. If the VSAM data set has associated components such as AIX’s and PATHs these should also be renamed
    //STEP1    EXEC  PGM=IDCAMS,REGION=0M
    //SYSPRINT DD    SYSOUT=A	 	    
    //SYSIN    DD *
       ALTER VSAM.DATA.SET –
         NEWNAME(VSAM.DATA.SET.SAVE) 
       ALTER VSAM.DATA.SET.DATA –
         NEWNAME(VSAM.DATA.SET.DATA.SAVE)
       ALTER VSAM.DATA.SET.INDEX - 
         NEWNAME(VSAM.DATA.SET.INDEX.SAVE) 
  6. For ICF Catalogs, perform a DFDSS Physical Dump of the catalog, in case further information is needed.
    //STEP001 EXEC PGM=ADRDSSU                        
         //SYSPRINT DD SYSOUT=*    
         //DSYS004  DD DISP=(,CATLG),DSN=SYS1.DSSPHY.DUMP, 
         //            UNIT=SYSDA,VOL=SER=XXXXXX,          
         //            SPACE=(CYL,(1110,200),RLSE)         
         //ISYS004  DD DISP=SHR,UNIT=SYSDA,VOL=SER=SYS004  
         //SYSIN    DD *									     DUMP -    
           DS(INCL(CATALOG.NAME)) -   
               PHYSINDDNAME( -        
                   (ISYS004) -        
                   ) -                
               OUTDDNAME(DSYS004) 
  7. Gather SMF type 60 through 66 records from all systems that may have accessed the data set or catalog from a time when the data set or catalog was known to be good.
  8. Submit the output from the above to the Support Center along with syslog and joblog (if available).

Recovery actions

Actions to avoid recurrence

S