Doing a DISPLAY INDEX MEMBER in IDEAL fails with error:
IDADERRP15E - INTERR: MEM format error, LIB=IDDAT
SRVC=VLS FUNC=RMP RC=004-32 PGM=ADXDIB 14.0 +134C
CALPGM= CURACT= ACTTYP= USER=58M ERRID=
SYS=RCP ENTTYP=MEM ENTNAM= ENTVER=000 ENTSTAT=
LIB=IDDAT MEM=
The error can be caused by corruption in the VLS file index. This can be confirmed by running the VLSUTIL LIBRARY function to list the VLS index. Examine the output and look for unprintable characters in the report.
Sample JCL:
//* LIBRARY LISTING OF IDDAT VLS FILE //* //LIBRARY EXEC PGM=VLSUTIL //STEPLIB DD DSN=ipc.CAVQLOAD,DISP=SHR //SYSPRINT DD SYSOUT=* //AUXPRINT DD SYSOUT=* //VLSFILE DD DSN=IDDAT_file,DISP=SHR //SYSIN DD * LIBRARY /*
Once the corruptions occurs, perform the following steps to resolve the problem
1. Run VLSUTIL to do a BACKUP of the IDDAT file
//* BACKUP IDDAT VLS FILE
//*
//BACKUP EXEC PGM=VLSUTIL
//STEPLIB DD DSN=ipc.CAVQLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//AUXPRINT DD SYSOUT=*
//VLSFILE DD DSN=IDDAT_file,DISP=SHR
//VLSBKUP DD DSN=IDDAT_backup_file,
// DISP=(,CATLG,KEEP),
// SPACE=(CYL,(10,5)),UNIT=SYSDA
//SYSIN DD *
BACKUP
LIBRARY
/*
2. Run another step to VLSUTIL FORMAT and RESTORE the file.
//* FORMAT AND RESTORE IDDAT VLS FILE
//*
//RESTORE EXEC PGM=VLSUTIL
//STEPLIB DD DSN=ipc.CAVQLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//AUXPRINT DD SYSOUT=*
//VLSFILE DD DSN=IDDAT_file,DISP=SHR
//VLSBKUP DD DSN=IDDAT_backup_file,DISP=SHR
//SYSIN DD *
FORMAT BLKSIZE=1960,NAMELEN=24
RESTORE
LIBRARY
/*
Note: if the index corruption is in a different VLS file, check the INSTJCL member ILNEW02 to get the correct BLKSIZE and NAMELEN for the VLS file.
For documentation regarding VLSUTIL , see VLSUTIL Function Descriptions