Ideal edit ICSCERRP23E - INTERR: Internal LIB error RC=004-36
search cancel

Ideal edit ICSCERRP23E - INTERR: Internal LIB error RC=004-36

book

Article ID: 204934

calendar_today

Updated On:

Products

Ideal IPC

Issue/Introduction

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.

Environment

z/OS

Ideal 15.1

Cause

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.

Resolution

To resolve the problem , run the following:

  1. VLSUTIL BACKUP on the Ideal program SRC file
  2. VLSUTIL FORMAT using the correct BLKSIZE and NAMELEN ( same as before = can be found by running a VLSUTIL LIBRARY )
  3. VLSUTIL RESTORE  

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 
/*

Additional Information

For documentation , refer to VLSUTIL Function Descriptions.