Data sharing overview
An IMS system includes databases whose data can potentially be made available to, or shared with, all declared application programs. Access to a database is a characteristic defined in an application program's PSB. With data sharing support, application programs in separate IMS systems can concurrently access databases.
IMS systems use lock management to ensure that database changes at the segment level originating from one application program are fully committed before other application programs access that segment's data.
Data sharing among IMS systems is supported in both sysplex and nonsysplex environments.
- Sysplex data sharing is data sharing between IMS systems on different z/OS® operating systems. IRLM uses a coupling facility to control access to databases.
- Nonsysplex data sharing, also referred to as local data sharing, is data sharing between IMS systems on a single z/OS operating system. A coupling facility can be used, but it is not required.
With data sharing, two levels of locking control are possible:
- Database-level sharing, in which an entire database is locked while an application program is making updates. Locking prevents concurrent database access and the scheduling of application programs that might jeopardize database integrity. For DEDB area resources, this is called area-level sharing.
- Block-level sharing, in which you can use global
block locking to maintain database integrity during concurrent access
of a database. The blocks are locked rather than the entire database.
Multiple application programs can update a database at the same time
if they are updating different blocks.
Within a single z/OS operating system, or in a sysplex, multiple IMS online or batch systems can update a database concurrently. Within a database, resources are reserved at the block level. For OSAM databases, the block is a physical block stored on a direct access storage device. For VSAM databases and DEDBs, the block is a control interval (CI). Data integrity is preserved for the multiple IMS online or batch systems that concurrently access the shared data. Sequential dependent segments are supported. Block-level sharing for DEDBs is between IMS online systems only.
Data access is protected so that:
- One IMS system is authorized to update the database, and other authorized IMS systems can have read-only access.
- Multiple authorized IMS systems can concurrently schedule the database with read or read-only access.
In a data-sharing environment, an IMS system can be online or batch. For area-level sharing, participating IMS systems must be online. IMS utilities are considered as batch systems that work with database-level sharing.
Some differences exist in support for data sharing configurations. Generally, a complete database is regarded as one data resource. When the database is invoked within an IMS online system, or as a batch IMS system, it must be available for an individual application program to process. However, a database might not be available if, for example:
- The database is used exclusively by one IMS system.
- The database is flagged as needing recovery.
- Backup procedures are in process.
With data entry databases (DEDBs), however, the data resource is
divided. In a DEDB, each individual area is considered a unit of data
resource. In this topic on data sharing, when we use the term database,
it
means a DEDB area, unless otherwise noted.
With High Availability Large Databases (HALDBs), the
database can be divided into one or more partitions. In a HALDB database,
each individual partition is considered a unit of data resource. When
the term database
is used in reference to data sharing, it
means a HALDB partition, unless otherwise noted.
Restrictions associated with data sharing are:
- Batch IMS support excludes the use of MSDBs and DEDBs.
- Only IMS online systems that use Fast Path can share DEDBs.
- Data sharing support excludes MSDBs and GSAM databases.