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.
//STEP1 EXEC PGM=IDCAMS,REGION=0M
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
LISTCAT ENT(VSAM.DATA.SET) ALL
//STEP1 EXEC PGM=IDCAMS,REGION=0M
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
EXAMINE VSAM.DATA.SET INDEXTEST NODATATEST
EXAMINE VSAM.DATA.SET NOINDEXTEST DATATEST
//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
//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)
//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)
S