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 /*
There are some CA IPC PTFs to resolve problems with VLS index corruption, these should be applied first.
If using CA IPC 14.0 apply PTFs RO69919 and RO72605.
If using CA IPC 15.0 apply PTF RO75397.
Once the corruptions occurs, to resolve the problem perform the following steps:
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 /*
Run another step to do a VLSUTIL FORMAT and RESTORE of 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.