CAIENF:DB00242E - REQUIRED ENQ NOT AVAILABLE

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

Description:

Due to a rare, unpredictable, non-recreateable problem during the shutdown of the ENF address space, you may not be able to successfully restart ENF due to an enqueue problem. This situation has only been reported once, but due to the nature of the problem and the requirement to get the ENF address space running again without a system IPL, we wanted to provide this document to describe how to circumvent the situation.

The potential of this situation can only occur if running ENF with Datacom/AD as its database. Therefore if you have NODB defined in your ENF parameter file this scenario would not be possible. 

 

Symptom:

A restart of ENF reveals the following messages:

 

CAIENF:DB00212I - CA Datacom SQL Version 14.0

CAIENF:DB00905I - DIRECTORY (CXX) VERSION 14.0 LEVEL 1 AD SIMPLIFY YES

CAIENF:DB00242E - REQUIRED ENQ NOT AVAILABLE, MUFNAME=ENFMUF1

CAIENF:DB00205E - MULTI-USER ERROR - 0004  MUFNAME=ENFMUF1   SVC=000

CAS9234E - DBMUFPR  start failed, ended early or in error (CC=X'000004').

*CAS9203E - CA-ENF Initialization error - terminating

IEA989I SLIP TRAP ID=X13E MATCHED.  JOBNAME=CAIENF  , ASID=011B.

IEF450I CAIENF CAIENF - ABEND=S000 U0203 REASON=00000028 016 TIME=09.49.28

IEF404I CAIENF - ENDED - TIME=09.49.28

 

After realizing the above symptom, running the following Datacom utility may reveal that the MUF is disabled.

 

//REPORT  EXEC PGM=DBUTLTY,REGION=4M

//STEPLIB DD DISP=SHR,DSN=yourHLQ.CUSLIB                    << cuslib from ENF task    

//             DD DISP=SHR,DSN=yourHLQ.CAAXLOAD

//SYSIN   DD  *

    REPORT MEMORY=MVS

/*

//

Here is an example (edited) of the results from MEMORY report. In this example you can see two MUFs defined. The one for ENF shows "disabled" and the other shows "enabled" 

MUF NAME  STATUS    REL  JOB NAME    JOB ID     CXX NAME  DC 

ENFMUF1   DISABLED 14.0  CAIENF      STC01189  ENFMUF1   AD

ADMUF01   ENABLED  11.0  DATACOM                   ADCXX      AD 

 

Resolution:

To circumvent this problem, the quickest and easiest thing to do is to reassemble the DBSIDPR module to contain a different MUFNAME. This will allow you to restart ENF. It is recommended to rename the existing DBSIDPR module in the CUSLIB so that you have the original copy to fallback to. 

Prior to your next scheduled IPL you may elect to rerun this job to reassemble the DBSIDPR module to change the MUFNAME back to the original value OR more simply revert back to the saved copy of the original DBSIDPR module. 

Here is some sample JCL to handle the reassemble of DBSIDPR. First edit member DBSIDPR in CUSMAC to specify a different MUFNAME that is unique to the environment. Change only TARGET_MUF_LIST=(muf_name) to specify a different MUFNAME to be used by ENF. Do not change any other values as they should remain set to what was defined when the MUF was originally built for ENF.

 

//ASM1    EXEC PGM=ASMA90,PARM='DECK,NOOBJECT'

//SYSLIB    DD DISP=SHR,DSN=yourHLQ.CAAXMAC             << MODIFY

//          DD DISP=SHR,DSN=SYS1.MACLIB

//*

//SYSUT1    DD DSN=&&SYSUT1,UNIT=VIO,SPACE=(1700,(600,100))

//SYSUT2    DD DSN=&&SYSUT2,UNIT=VIO,SPACE=(1700,(300,50))

//SYSUT3    DD DSN=&&SYSUT3,UNIT=VIO,SPACE=(1700,(300,50))

//SYSTERM   DD SYSOUT=*,DCB=BLKSIZE=1089

//SYSPRINT  DD SYSOUT=*,DCB=BLKSIZE=1089

//SYSPUNCH  DD DSN=&&DCMPUNCH,DISP=(NEW,PASS,DELETE),

//             UNIT=VIO,SPACE=(TRK,(15,15)),

//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)

//SYSIN     DD DISP=SHR,DSN=yourHLQ.CUSMAC(DBSIDPR)     << MODIFY

//* *-----------------------------------------------------------------*

//LINK    EXEC PGM=IEWL,PARM='LIST,XREF,LET,NCAL',COND=(5,LT)

//SYSPRINT  DD SYSOUT=*

//SYSLIN    DD DSN=&&DCMPUNCH,DISP=(OLD,DELETE)

//          DD DDNAME=SYSIN

//SYSLMOD   DD DISP=SHR,DSN=yourHLQ.CUSLIB              << CUSLIB FROM ENF

//SYSUT1    DD UNIT=VIO,SPACE=(1024,(200,20))

//SYSIN     DD *

 NAME DBSIDPR(R)

/*

//