OS ENQUEUE calls issued by IDMS
search cancel

OS ENQUEUE calls issued by IDMS

book

Article ID: 19761

calendar_today

Updated On:

Products

IDMS IDMS - Database

Issue/Introduction

Which ENQ calls are done by IDMS and what is the scope?

Environment

Release: All supported releases.

Resolution

When an IDMS CV starts up it issues two ENQs:

The first ENQ is on Qname IDMSDC and Rname is the SYSTEM number of the CV. It is to prevent two copies of the same CV running at the same time. If this ENQ fails, startup abends with 3950.

The second is on Qname IDMSCV and Rname is the CV number of the CV. This prevents two active CVs from using the same CV number. This is needed because the ESE control block addresses are placed in the SVC CV table (MSVCTABL) based on the CV number. If this ENQ fails, startup abends with 3977.

Both of these ENQs have a scope of "SYSTEM". That scope is only good for one LPAR. To serialize the ENQ using GRS (Global Resource Serialization), change the scope to "SYSTEMS" (global) by adding an entry in the SYSTEM inclusion list of member GRSRNLxx in the SYS1.PARMLIB:

RNLDEF RNL(INCL) TYPE(GENERIC) QNAME(IDMSDC)

TYPE(GENERIC) will get all IDMSDC ENQs without having to specify the Rname version numbers.

There is no need to make the second ENQ for IDMSCV and the CV number global because each system will have its own SVC and SVC table. In fact, it is better not to make the IDMSCV ENQ global because of its use when running a central batch job.

Before a central batch job does a BIND RUN-UNIT, the SYSCTL routine (called by IDMSCONN) does an ENQ test on the CV number from SYSCTL to see if the CV is active. If the ENQ works (the CV is not active) it will issue the following message:

DC208002 CV <cv-number> NOT ACTIVE REPLY RETRY OR CANCEL

With the IDMSCV ENQ added to GRS with a global scope, a batch job being run on another LPAR than the CV would fail in the SIGNON to CV for the BIND RUN UNIT instead of getting the above message.

If the CV is active the SYSCTL routine does an ENQ on Qname IDMSCV and Rname BATCxxxx, where xxxx is a binary time stamp. This is the ENQ that will be checked by RHDCCKUR to determine if the batch job has abnormally terminated without doing a finish. This ENQ should not be made global.

Additional Information