Using the SCOPE parameter
When using the SCOPE parameter for IMFEXEC VENQ and IMFEXE VDEQ, you should specify the lowest SCOPE setting for your automation situation.
Note that specifying the highest setting, SCOPE(GLOBAL), might impact automation that is running on other LPARs.
The following table shows how each SCOPE specification serializes resources.
Specify... | SCOPE(STEP) | SCOPE(LOCAL) | SCOPE(GLOBAL) |
---|---|---|---|
SCOPE(STEP) when you want to acquire an enqueue on a resource only within the local BBI-SS PAS. | 1. STEP | 1. STEP | 1. STEP |
SCOPE(SYSTEM) when you want to acquire an enqueue on a resource within the local BBI-SS PAS(STEP) and throughout the LPAR (LOCAL). |
| 2. SYSTEM | 2. SYSTEM |
SCOPE(GLOBAL) when you want to acquire an enqueue on a resource from the entire GRSplex (which include the STEP and LOCAL specifications). |
|
| 3. SYSTEMS |
With MVS ENQ or DEQ processing, a resource is serialized based on a combination of the resource name and level. Therefore, RESOURCE1 for STEP, RESOURCE1 for SYSTEM, and RESOURCE1 for SYSTEMS, are three separate resources. Because each is a separate resource, using ENQ for RESOURCE1 for STEP does not prevent another program from obtaining an ENQ for RESOURCE1 for SYSTEM or SYSTEMS.
Using the IMFEXEC VENQ statement allows for a more global serialization processing based on the value that you specified with the SCOPE parameter. By specifying SCOPE(GLOBAL) and SCOPE(LOCAL), you allow the EXEC to attempt to obtain multiple ENQs. Refer to the table SCOPE specifications and serialization for a list of ENQs obtained for each SCOPE specification.
For example: EXECA specifies IMFEXEC VENQ RESOURCE1 EXC SCOPE(GLOBAL) and EXECB specifies IMFEXEC VENQ RESOURCE1 SHR SCOPE(STEP). EXECB must wait until EXECA releases the resource. This is because a SCOPE(GLOBAL) has obtained the ENQ on SYSTEMS, SYSTEM, and STEP.
Related topic