Trying to edit an Ideal program fails with error:
1-ICSCERRP23E - INTERR: Internal LIB error.
The DIS INTERR display shows:
SRVC=VLS FUNC=COPMEM RC=004-36 PGM=ED$VLS . -111A
CALPGM= . - CURACT= ACTTYP= USER=JRD ERRID=EDEDME(03)
SYS= ENTTYP= ENTNAM= ENTVER= ENTSTAT=
LIB=lib_name MEM=mem_name 009L E
VLSUTIL LIBRARY listing shows:
mem_name 009L PDL SOURCE 10/12/20 12/10/20 21,739 599
mem_name 009L E PDL SOURCE 10/12/20 12/10/20 0 2
mem_name 009P PARAMETER DATA SOURCE ? 10/12/20 10/19/20 49 4
mem_name 009W WORKING DATA SOURCE | 10/12/20 11/30/20 376 18
Tried deleting the 009L E member from the VLS lib and re-editing. The same error occurs again and the 009L E member returns with 0 recs.
z/OS
Ideal 15.1
VLS auxiliary return code 36 means the free space map has been corrupted, as documented here
Reason:
There is an illogical condition on a VLS free-space map.
Action:
Wait and try again. If this error recurs, ask your Site Administrator to use VLSUTIL to backup the file, reformat it, and restore the file from the backup. This error does not prevent the taking of a backup file.
To resolve the problem , run the following:
Also, ensure the file is defined correctly to CICS. The VLS BLKSIZE must match the CICS FCT recordsize.
Issue the following command in CICS:
CEMT I FI(lib_name)
Article 21858 explains how to do this.
Here is some sample JCL to do the backup and restore. The VLSUTIL LIBRARY listing lists the current Blocksize and the Namelen.
//* BACKUP VLS FILE
//*
//BACKUP EXEC PGM=VLSUTIL
//STEPLIB DD DSN=ipc.CAVQLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//AUXPRINT DD SYSOUT=*
//VLSFILE DD DSN=hlq.lib_name,DISP=SHR
//VLSBKUP DD DSN=hlq.lib_name.BKUP,
// DISP=(,CATLG,KEEP),
// SPACE=(CYL,(10,5)),UNIT=SYSDA
//SYSIN DD *
BACKUP
LIBRARY
/*
//* FORMAT AND RESTORE VLS FILE
//*
//RESTORE EXEC PGM=VLSUTIL
//STEPLIB DD DSN=ipc.CAVQLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//AUXPRINT DD SYSOUT=*
//VLSFILE DD DSN=hlq.lib_name,DISP=SHR
//VLSBKUP DD DSN=hlq.lib_name.BKUP,DISP=SHR
//SYSIN DD *
FORMAT BLKSIZE=nnnn,NAMELEN=xx
RESTORE
LIBRARY
/*
For documentation , refer to VLSUTIL Function Descriptions.