ENQMODEL resources

An ENQMODEL defines a named resource for which the EXEC CICS ENQ and EXEC CICS DEQ commands have a sysplex-wide scope.

Combined with an ENQMODEL resource, CICS® uses MVS™ global resource serialization to provide sysplex-wide protection of application resources.

Local enqueues within a single CICS region are managed within the CICS address space. Sysplex-wide enqueues that affect more than one CICS region are managed by GRS.

The ENQSCOPE attribute of an ENQMODEL resource, defines the set of regions that share the same enqueue scope. If the ENQSCOPE attribute remains blank (the default value), CICS treats any matching ENQ or DEQ as local to the issuing CICS region. If the ENQSCOPE is non-blank, CICS treats the ENQ or DEQ as sysplex-wide and passes a queue name and the resource name to GRS to manage the enqueue.

The CICS regions that need to use sysplex-wide enqueue or dequeue function must all have the required ENQMODELs defined and installed. The recommended way to ensure this is for the CICS regions to share a CSD, and for the initialization group lists to include the same ENQMODEL groups.

Existing applications can use sysplex enqueues by defining appropriate ENQMODELs, without any change to the application programs. Those existing applications where the resource name is determined dynamically and not known in advance can only be so converted by use of the global user exit XNQEREQ and the parameter UEPSCOPE (see Enqueue EXEC interface program exits XNQEREQ and XNQEREQC for details).

In a multi-tasking, multi-processing environment, resource serialization is the technique used to coordinate access to resources that are used by more than one program. MVS global resource serialization (GRS) provides a way to control access to such resources.

GRS combines systems into a global resource serialization complex, consisting of one or more systems that are:
  • Connected to each other in a ring configuration
  • Connected to a coupling facility lock structure in a star configuration
  • Tip: For reasons of performance, a ring configuration is not recommended for production regions in a multisystem environment. You should use a star configuration only in a multisystem sysplex. Note that a coupling facility is required for a star configuration.
You can display sysplex ENQUEUEs using GRS facilities with the Display GRS command. This command has many optional keywords, but for this purpose you can use:
D  GRS,RES=(DFHEqname|*,[  rname|,*])
where:
qname
specifies a 4-character ENQSCOPE defined by an ENQMODEL
rname
specifies an ENQNAME defined by an ENQMODEL