Using the SCOPE parameter


When using the SCOPE parameter for IMFEXEC ENQ 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.

Warning

Note

If you are already familiar with how the MVS ENQ macro works, note that the IMFEXEC VENQ statement does not operate on an identical basis to MVS ENQ. See the following example.

Table 1 shows how each SCOPE specification serializes resources.

Table 1. SCOPE specifications and serialization

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 Table 1 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.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

MainView AutoOPERATOR 8.1