Processing Fast Path databases
You can write application programs to access Fast Path databases, including main storage databases and data entry databases.
The two kinds of Fast Path databases are:
- Main storage databases (MSDBs), which are available in a DB/DC environment, and contain only root segments in which you store data that you access most frequently.
- Data entry databases (DEDBs) are hierarchic databases that can have as many as 15 hierarchic levels and as many as 127 segment types. DEDBs are available to both IMS users and CICS® users with DBCTL.
VSO considerations
VSO is transparent to the processing of an application. Where the data resides is immaterial to the application.
Data locking for MSDBs and DEDBs
All MSDB calls, including
the FLD
call, can lock the data at the segment level. The lock is acquired at the
time the call is processed and is released at the end of the call. All DEDB calls, with the
exception of HSSP calls, are locked at the VSAM CI level. For single-segment, root-only,
fixed-length VSO areas, if you specify PROCOPT R or G, the application program can obtain
segment-level locks for all calls. If you specify any other PROCOPT, the application program obtains
VSAM CI locks.
Segment-level locking (SLL) provides a two-tier locking scheme. First, a share (SHR) lock is obtained for the entire CI. Then, an exclusive (EXCL) segment lock is obtained for the requested segment. This scheme allows for contention detection between SLL users of the CI and EXCL requestors of the CI. When contention occurs between an existing EXCL CI lock user and a SHR CI lock requestor, the SHR CI lock is upgraded to an EXCL CI lock. During the time that this EXCL CI lock is held, subsequent SHR CI lock requests must wait until the EXCL CI is released at the next commit point.
DEDB FLD
calls are not locked at call time. Instead, the lock is
acquired at a commit point.
During sync-point processing, the lock is re-acquired (if not
already held), and the changes are verified. Verification failure results in the message being
reprocessed (for message-driven applications) or an FE status code (for non-message-driven
applications). Verification can fail if the segment used by the FLD
call has been
deleted or replaced before a sync-point.
Segment retrieval for a FLD
call is
the same as for a GU
call. An unqualified FLD
call returns the
first segment in the current area, just as an unqualified GU
call does. After the
FLD
call is processed, all locks for the current CI are released if the current CI
is unmodified by any previous call.
When a compression routine is defined on the root segment of a DEDB with a root-only structure, and when that root segment is a fixed-length segment, its length becomes variable after being compressed. To replace a compressed segment, you must perform a delete and an insert. In this case, segment level control and locking will not be available.