In database-level shared access, multiple IMS subsystems (batch or online or both)
allocate the
database data sets concurrently. Concurrent allocation is possible in a single operating
system with shared disposition allocation. It might be possible between multiple operating
systems, regardless of the allocation disposition, if the database data sets reside
on shared Direct Access Storage Device (DASD).
CAUTION:
If the
IMS requirements for database-level sharing are not followed closely,
IMS database integrity can be compromised by multiple allocations. Make sure that
database-level
sharing or block-level sharing is implemented for a database before you allocate a
database
data set with shared disposition.
In database-level sharing, one subsystem can have Update access to a database while
other subsystems have Read access to the
same database. In this case, Update integrity is guaranteed, but Read integrity is
not guaranteed. Alternatively, all subsystems can be restricted to Read access.
In that case, Read integrity is guaranteed because there is no danger of a record
being updated. The remainder of this section on database-level sharing discusses
sharing when one subsystem has Update access and other systems have Read access.
When one subsystem has Update access and the others have Read access, it is possible
for a Read-access
invocation of the SAS/ACCESS interface to obtain uncommitted update data from
a program that later backs out the updates.
If the subsystem with Update access is a batch subsystem, only one program or invocation
of the SAS/ACCESS interface has Update access to the database (since only one program executes in
a batch subsystem). No other program or invocation
of the interface with update intent (indicated in the PCB) can execute until the first
subsystem completes, so there is no contention for the
database records. (Remember that Read integrity is not guaranteed in this situation
and programs with Read access do not own records.)
Since other executing programs are not waiting for records, you do not have to be
concerned about releasing records for other programs to use.
If the subsystem with uUpdate access is an online subsystem, other subsystems (whether
batch or online)
are still restricted to Read access. However, unlike a batch subsystem, multiple programs
in the Update-access online subsystem can update the database. In other words, two
forms of sharing occur at once:
-
database-level sharing between
subsystems, with one updating and others reading
-
sharing within one online subsystem. Multiple programs share the databases.
Database-level sharing
is specified by completing the following tasks:
-
registering the database with Database Recovery Control (
DBRC) for database-level sharing
-
ensuring that DBRC is used in the IMS/ESA IMS region
-
specifying a share option of (2,3) or (3,3) when the VSAM data set is defined
Under z/OS, if DBRC is not used, database integrity is compromised. DBRC is active in SAS executions
of application regions
as long as the value of the SAS system option IMSDLDBR= is not N.