Author: Robert Sample
Posted: Tue Nov 29, 2016 6:11 am (GMT 5.5)
ENQMODEL is defined and installed through RDO (the CEDA transaction). If you want to use a SYSPLEX ENQMODEL, you MUST define the ENQMODEL with a non-blank ENQSCOPE. You do not have an option to do this at run time. And this definition must exist in EACH region you want to control the ENQ for. If you do not have access to the CEDA transaction, you must work with your site support group CICS system programmer to do the definition and installation. The manual does not list any restrictions on the ENQSCOPE name (other than length).
When you use EXEC CICS ENQ, you provide the ENQMODEL name (that was defined by the CEDA transaction) in the RESOURCE name if you want the scope to be SYSPLEX instead of LOCAL. From the RDO manual:
GRS (global resource serialization) is the z/OS mechanism for providing controlled access to resources that cannot be shared (serialization). It can be very complex and there are manuals and Redbooks that you can consult for more information. If you are doing ENQ / DEQ in CICS, you need to spend some time reading up on GRS to understand at least at a high level what GRS does.
_________________
TANSTAAFL
The first rule of code reuse is that the code needs to be worth re-using.
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." -- Donald Knuth
Posted: Tue Nov 29, 2016 6:11 am (GMT 5.5)
ENQMODEL is defined and installed through RDO (the CEDA transaction). If you want to use a SYSPLEX ENQMODEL, you MUST define the ENQMODEL with a non-blank ENQSCOPE. You do not have an option to do this at run time. And this definition must exist in EACH region you want to control the ENQ for. If you do not have access to the CEDA transaction, you must work with your site support group CICS system programmer to do the definition and installation. The manual does not list any restrictions on the ENQSCOPE name (other than length).
When you use EXEC CICS ENQ, you provide the ENQMODEL name (that was defined by the CEDA transaction) in the RESOURCE name if you want the scope to be SYSPLEX instead of LOCAL. From the RDO manual:
Quote: |
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 is left 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. |
GRS (global resource serialization) is the z/OS mechanism for providing controlled access to resources that cannot be shared (serialization). It can be very complex and there are manuals and Redbooks that you can consult for more information. If you are doing ENQ / DEQ in CICS, you need to spend some time reading up on GRS to understand at least at a high level what GRS does.
_________________
TANSTAAFL
The first rule of code reuse is that the code needs to be worth re-using.
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." -- Donald Knuth