The GLM is a specialized instance of an Enterprise Server region whose sole role is to process global lock requests. A GLM machine should typically have a large memory as all locks are memory-resident.
In an Enterprise Server Cluster, all cluster members - including the GLM - must share the CATALOG.DAT and the Dataset Allocation Default Location (DADL). This configuration defines the role of the GLM which is to protect against file corruption: the GLM acts as a lock manager for all global scope locks. In addition, all cluster members must be on the same domain. This restriction is imposed as the system uses SYS-C definitions to identify cluster participants, and SYS-C definitions use a 16 character identifier, whereas a host on a separate domain has an identifier of up to 255 characters.
In an Enterprise Server instance that is not a member of a cluster, the lock manager processes the locks across all of the batch initiators within this single region. In an Enterprise Server instance that is a member of a cluster, a copy of that same lock manager runs on the GLM and manages the locks across all batch initiators of all members of the cluster.
A key responsibility of the lock manager is to ensure that when a job is accessing files with exclusive locks, no other jobs can access these files until the blocking job has released its locks.
In the extract from a console.log below, it is the GLM that has placed JOB01694 in a wait state while it requests use of datasets SYSI.MAIN01.GENE001 and SYSI.MAIN01.SPEC001.
JCLCM0188I JOB01694 JRX0035 JOB STARTED 10:29:51 MVSXR0091I JOB01694 JRX0035 Waiting for shared use of dataset "SYSI.MAIN01.GENE001". 10:29:51 MVSXR0091I JOB01694 JRX0035 Waiting for shared use of dataset "SYSI.MAIN01.SPEC001". 10:29:51 MVSXR0093I JOB01694 JRX0035 Required datasets have been acquired. Execution resumed. 10:29:55
At 10:29:55, the job resumes as the requested locks have been acquired.
The scope of a lock server (local) or servers (global) is defined using Resource Name Lists (RNLs).