PROTSYM gets message "UTIL097 MISMATCH ON AVAILABLE FREE RECORDS IN ONE SAM", and the IN25UTIL job abends with an 0C1.
The workaround is to reorg the corrupted PROTSYM dataset.
Example: Reorganize the Symbolic File
This job unloads all programs, deletes and defines the symbolic file, initializes the symbolic file, reloads all programs, and generates a system report.
//UTILITY JOB
//UNLOAD EXEC PGM=IN25UTIL
//STEPLIB DD DSN=CAI.CAVHLOAD,DISP=SHR
//SYSUDUMP DD SYSOUT=*
//MESSAGE DD SYSOUT=*
//UNLOAD DD DSN=USER.RELOAD,
// DISP=(NEW,CATLG,CATLG),SPACE=(CYL,(5,10),RLSE),
// DCB=(RECFM=FB,LRECL=2042,BLKSIZE=20420)
//PROTSYM DD DSN=CAI.PROTSYM,DISP=SHR
//CARDS DD *
UNLOAD=ALL
/*
//IDCAMS EXEC PGM=IDCAMS,COND=(0,NE,UNLOAD)
//SYSUT1 DD UNIT=SYSDA,VOL=SER=SYMVOL,DISP=SHR
//SYSIN DD *
DELETE 'CAI.PROTSYM'
DEFINE CLUSTER (NAME(CAI.PROTSYM) -
VOLUME(SYMVOL) -
FILE(SYSUT1) -
CYLINDERS(20) -
CISZ(2048) -
RECSZ(2040 2040) -
SHR(4 4) -
NUMBERED) -
DATA (NAME(CAI.PROTSYM.DATA))
/*
//RELOAD EXEC PGM=IN25UTIL,COND=(0,NE,UNLOAD)
//STEPLIB DD DSN=CAI.CAVHLOAD,DISP=SHR
//SYSUDUMP DD SYSOUT=*
//MESSAGE DD SYSOUT=*
//RELOAD DD DISP=SHR,DSN=USER.RELOAD,
// DCB=(RECFM=FB,LRECL=2042,BLKSIZE=20420)
//PROTSYM DD DSN=CAI.PROTSYM,DISP=SHR
//CARDS DD *
PASSWORD=12345678
INITIALIZE
RELOAD=ALL
REPORT
/*
As long as there are corrupted records, IN25UTIL will continue to abend. Running the reorg job will remove the corrupted records.