What is Virtual Resource Management and how is it implemented?
The essential function of CA 7 is to schedule work and to track its progress. A job is considered to be scheduled in CA 7 when it enters the request queue.
Once work is scheduled, it must be sequenced properly. Jobs have to run in the correct order and should not run until all necessary resources are available. CA 7 determines resource availability in a variety of ways. A resource may be made ready on the completion of a job or when a data set is created. A user command such as VERIFY or POST may also signal the availability of a resource.
CA 7 dynamically defines some of the resources that a job uses through the LOAD process. When the LOAD process runs, CA 7 records information about data set references in the job's execution JCL. This information is used to find out about the data sets a job needs to run. The job and data set definitions that are built in LOAD can be manually tailored as needed. These definitions are usually sufficient for CA 7 to properly sequence job execution. The resource needs that are determined in this way are reflected in a job's requirement count on an LQ display.
CA 7 evaluates whether or not such resources are available when the job is still in the Request queue. When all these resource needs are met, CA 7 moves the job to the ready queue.
However, jobs often have special resource needs that cannot easily be captured in this way. Sometimes jobs need to wait on resources other than other CA 7 jobs or data sets. Virtual Resource Management (VRM) lets you do this. To use VRM, you create a resource profile for the job (RM.1). This profile names the resources that are needed, describes how they are used to control sequencing, and when they are no longer needed.
CA 7 determines the virtual resources that a job needs when it enters the ready queue. So, virtual resources are not evaluated until all of the job's standard resource requirements are met.
How Virtual Resource Type Controls Job Sequencing
The type of virtual resource influences how the job is sequenced.
A resource that is defined as shared (SHR) may have any number of concurrent users. Thus any number of jobs may run in parallel using a shared resource. But if a job's profile specifies exclusive (EXC) use of a resource, then no other job referring to that resource may run while that job runs.
The resource count (RCT) type is like a SHR resource except that there is a numeric limit on the number of concurrent uses. In the job's resource profile you indicate the number of units of the resource that are to be used. This number must be specified as part of the resource name. Then on a different panel (RM.7) you must declare the global limit of concurrent uses. A job using an RCT resource will not run until the global limit on the number of concurrent uses is specified (RM.7).
A co-requisite (CRQ) resource is either active(present) or inactive(absent). You activate and deactivate a CRQ resource manually using the PRSQA and PRSQD commands. When you refer to a CRQ resource in a resource profile, you indicate whether the resource must be active (FREE=A) or inactive (FREE=I) in order to run.
The address space resource (ASX) is also either active or inactive. CA 7 dynamically determines the status of these resources through scans of ASCB chains maintained by z/OS on the CA 7 host machine. When you refer to an ASX resource in a resource profile, you indicate whether the address space must be active (FREE=A) or inactive (FREE=I) in order to run.
Disposition of Virtual Resources
CA 7 evaluates virtual resource conditions while the job is in the ready queue. When all of the resource conditions specified in the profile have been satisfied, then the job is eligible to be submitted. But if one or more conditions cannot be satisfied, then the job will wait in the ready queue with a status of W-RSRC. The job will remain in this state until all resource conditions have been satisfied.
Resource conditions may be satisfied automatically (for example, a job using a resource completes) or in response to a manual command (PRSCF/PRSQA/PRSQD).
When you define a SHR, EXC or RCT resource you must also indicate when CA 7 is to dynamically disassociate the resource and job. This is indicated by the FREE value. (This value is also used when defining CRQ and ASX resources, but there the meaning is different. When defining a CRQ or ASX resource, the FREE value indicates the state of the resource that is needed in order for the job to run.)
The most common disposition is FREE=Y. This means that the resource is to be freed only in case of normal termination. If FREE=Y is specified and the job abends, then the resource remains associated with the job until the job terminates successfully or is manually freed.
You may indicate that a job should free the resource only in the case of abnormal termination (FREE=A).
A profile may indicate that the resource should always be freed when the job finishes without regard for the job's completion status (FREE=F).
You may also indicate that a resource should never be automatically freed (FREE=N). These resources must be freed by command (PRSCF).
For additional information on VRM, consult the product documentation.