Chapter Contents |
Previous |
Next |
SAS/ACCESS Interface to IMS-DL/I Software |
Resource sharing within one subsystem is the most common form of resource sharing and is available with an online IMS-DL/I subsystem. In the online IMS-DL/I subsystem, the online IMS-DL/I control region allocates the database data sets and controls concurrent access to the databases by multiple programs. Read integrity is guaranteed when sharing within an online subsystem unless the processing option GO has been specified in the PCB. For more information on the GO option, see Chapter 2, "Program Specification Block (PSB) Generation," in the IMS/ESA Utilities Reference Manual, or DL/I Resource Definition and Utilities. Update integrity is always guaranteed in an online subsystem.
In the second form of sharing, sharing resources between multiple IMS-DL/I subsystems, there are two subcategories:
One subsystem can update a database while other subsystems access the same database in read-only mode. When sharing takes this form, update integrity is guaranteed, but read integrity is not guaranteed. Read integrity is guaranteed only if all subsystems use read-only access.
Database-level sharing is available in IMS/ESA DB and IMS/ESA DB/DC systems.
When sharing resources, IMS-DL/I preserves both read and update integrity.
Note: GSAM databases cannot be
shared.
General Considerations for Sharing Resources |
Synchronization points are important because they cause IMS-DL/I to release some resources allocated to the SAS/ACCESS interface. These resources include the database records owned by the interface, the IMS-DL/I enqueue table entries that mark this ownership, and the dynamic log records required to back out (cancel) updates since the prior synchronization point. When IMS-DL/I releases the SAS/ACCESS interface's ownership of updated database records, other programs can access the record with the updated information.
Database-Level Shared Access |
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 which 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 update 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 is specified by
Under OS/390, if DBRC is not used, database integrity is compromised. DBRC is active in SAS System executions of application regions as long as the value of the SAS system option IMSDLDBR= is not N.
Block-Level Shared Access |
If the IMS-DL/I requirements for block-level sharing are not followed completely, the IMS-DL/I database integrity may be compromised by this multiple allocation. Be sure that you implement block-level sharing for a database before you allocate a database data set with shared disposition.
Block-level shared access differs from database-level shared access in that it guarantees both read and update integrity for the shared database. It is not possible for the SAS/ACCESS interface to IMS-DL/I to obtain uncommitted update data that is later backed out.
A disadvantage of block-level sharing is that different subsystems must contend for database records. Therefore, synchronization-point processing becomes essential when updating a database that is shared at the block level with other IMS-DL/I subsystems.
An advantage of block-level sharing over database-level sharing is that the SAS/ACCESS interface that updates does not have to wait to obtain exclusive update control of the database.
Block-level sharing is specified by
If DBRC is not active, database integrity is compromised. If DBRC was included in IMS/ESA during operating system generation, DBRC is active in SAS System executions of application regions as long as the SAS system option IMSDLDBR= does not have a value of N.
Similarly, if communication with the IRLM is not established, database integrity is compromised. The IMS-DL/I region establishes communication with the IRLM specified by the SAS system option IMSDLIRN= as long as the IRLM is active and the SAS system option IMSDLIRL= does not have a value of N.
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.