We have a PROTSYM that is getting the following message - "UTIL097 MISMATCH ON AVAILABLE FREE RECORDS IN ONE SAM", and the IN25UTIL job abends with an 0C1.

Document ID : KB000007006
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

We have a PROTSYM that is getting the following message - "UTIL097 MISMATCH ON AVAILABLE FREE RECORDS IN ONE SAM", and the IN25UTIL job abends with an 0C1.

Resolution:

A workaround for this that would also resolve the UTIL097 error would be to do a reorg of the corrupted PROTSYM dataset.

This is a good example of a Unload=all and a reload=all found in the symbolic guide.

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

/*

<END>

The answer to your question is yes. As long as the corruption is out there IN25UTIL will continue to abend. The only way to get rid of the corrupted records is to run the above reorg.

If you go the route of waiting for a PTF to fix the corruption, you can do the reorg and recompile the modules (or just module) that are not reloaded (ie they were corrupted), and your PROTSYM dataset will be fixed.

One problem with a PTF of this type is it corrects an injury, and not the cause of the injury, so the corruption can reappear. With the reorg you can carry on quickly.