Datacom application gets return code 36 (192) - The User Requirements Table containing the requested table was closed.
DBOC INQ=nnn shows OPEN FAILED RC58 072 - TABLE NOT LOADED
A DBUTTY REPORT AREA=CXX, DBID=nnn shows:
TABLE NAME nnn
TABLE LOADED - NO RECOVERY CHANGE
Release: 19.0
This occurs when the RECOVERY attribute for the table is turned on via DDOL or DDUDATE and the DBID is cataloged.
When you turn on recovery it increases the length of the RCE in the record so the table needs to be reloaded.
The procedure to turn on recovery is:
To resolve the problem there are a few options:
//*
//* CLOSE DBID ACCESS
//*
//ACCESS EXEC PGM=DBUTLTY,REGION=4M
//STEPLIB DD DISP=SHR,DSN=DATACOM.CUSLIB
// DD DISP=SHR,DSN=DATACOM.CABDLOAD
//SYSPRINT DD SYSOUT=*
//CXX DD DISP=SHR,DSN=DATACOM.CXX
//SYSIN DD *
ACCESS STATUS=OFF,DBID=nnn,USERS=WAIT
COMM OPTION=CLOSE,DBID=nnn
/*
//*
//* RENAME EXISTING DATA AREA
//*
//RENAME EXEC PGM=IDCAMS,REGION=4M
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
ALTER hlq.aaannn -
NEWNAME(hlq.aaannn.SAVE)
/*
//*
//* ALLOCATE NEW TEMP DATASET
//*
//ALLOC EXEC PGM=IEFBR14
//aaannn DD DSN=hlq.aaannn,
// UISP=(NEW,CATLG,DELETE),
// UNIT=3390,
// SPACE=(TRK,(15,0))
//*
//* NULL LOAD TEMP DATASET
//*
//LOAD EXEC PGM=DBUTLTY,REGION=4M,COND=(0,LT)
//STEPLIB DD DISP=SHR,DSN=DATACOM.CUSLIB
// DD DISP=SHR,DSN=DATACOM.CABDLOAD
//SYSPRINT DD SYSOUT=*
//SORTMSG DD SYSOUT=*
//CXX DD DISP=SHR,DSN=DATACOM.CXX
//SYSIN DD *
INIT AREA=aaa,DBID=nnn
LOAD DBID=nnn,AREA=aaa,FORMAT=NONE
/*
//*
//* RENAME ORIGINAL DATA AREA BACK
//*
//RENAME EXEC PGM=IDCAMS,REGION=4M
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
ALTER hlq.aaannn -
NEWNAME(hlq.aaannn.TEMP)
ALTER hlq.aaannn.SAVE -
NEWNAME(hlq.aaannn)
/*
//* RETIX AND ENABLE ACCESS
//*
//ACCESS EXEC PGM=DBUTLTY,REGION=4M
//STEPLIB DD DISP=SHR,DSN=DATACOM.CUSLIB
// DD DISP=SHR,DSN=DATACOM.CABDLOAD
//SYSPRINT DD SYSOUT=*
//SORTMSG DD SYSOUT=*
//CXX DD DISP=SHR,DSN=DATACOM.CXX
//SYSIN DD *
RETIX DBID=nnn,AREA=aaa,SORT=999999999,SORTWK=10,OPTIMIZE=YES
ACCESS STATUS=WRITE,DBID=nnn
/*