Previous topic |
Next topic |
Contents |
Contact z/OS |
Library |
PDF
Serializing and Updating z/OS DFSMSdfp Advanced Services SC23-6861-01 |
|
CVAF requires that you provide all necessary system resource serialization for your request. You can ensure the integrity of multiple data elements (sets of DSCBs or VIRs) returned by CVAF only if you adequately serialize system resources and avoid multiple CVAFFILT requests for a set of DSCBs or VIRs. Weigh possible system performance loss because of serialization against the potential loss of data integrity. Updating without adequate serialization might compromise the integrity of the volume's VTOC, the VTOC index, or any associated data set. CVAF only complies with requests to modify the volume's VTOC or index from authorized programs. CVAF assumes that an authorized program holds an exclusive RESERVE (or ENQ) on the qname (major name) of SYSVTOC, and the rname (minor name) of the volume's serial number, with the scope of SYSTEMS. This RESERVE can be made more efficient if Global Resource Serialization or a functional equivalent is active. The SYSVTOC qname does not serialize access to the format-1 or the format-8 DSCB for a data set. You can provide serialization by allocating the data set with disposition OLD, MOD, or NEW (not SHR). This causes the proper ENQ, ensuring that no other job can update that data set's format-1 or format-8 DSCB. If your program holds the enqueue for the SYSVTOC resource, then
no other program can later start and complete a DADSM request. This
includes extending or creating a data set on that volume in your own
address space. If you try to extend a data set under the same task
that holds SYSVTOC, it will be abnormally terminated. If a different
task requests SYSVTOC, that task will wait. If your program then
requests a resource that is held by that task, the two tasks will
be in a deadlock. To prevent deadlocks between
tasks in the same address space when either of the tasks has previously
enqueued on SYSVTOC, the secondary caller of CVAF must ensure the
enqueue bit is on (CV3ENQD) in the CVPL. Other options to get around
this limitation are either:
|
Copyright IBM Corporation 1990, 2014
|