Modernization Hub

Explicit Lock - Requested by program

Enhanced Definition

An explicit lock, requested directly by an application program, is a mechanism used to serialize access to a shared resource, such as a database table, a record, or a system resource, to maintain data integrity and prevent concurrent updates. Unlike implicit locks managed automatically by the system, explicit locks are intentionally acquired and released by the program code.

Key Characteristics

    • Programmatic Control: The application code (e.g., COBOL, PL/I) explicitly issues commands or API calls (e.g., CICS ENQ, DB2 LOCK TABLE) to acquire and release the lock.
    • Resource Granularity: Can be applied at various levels, from a specific record or segment to an entire database table or a user-defined resource name, offering flexible serialization.
    • Duration and Scope: Locks are held for the duration specified by the program, typically until the resource is no longer needed or the transaction commits/aborts, and their scope can be local to a transaction or global across systems.
    • Deadlock Potential: Requires careful design and management by the programmer to avoid deadlocks, where two or more programs are waiting indefinitely for resources held by each other.
    • Serialization Assurance: Ensures that only one program or transaction can modify a specific resource at a given time, preventing lost updates, inconsistent reads, or other data integrity issues.

Use Cases

    • CICS Resource Serialization: Using EXEC CICS ENQ and DEQ commands to serialize access to application-defined resources (e.g., a counter, a control record, or a logical resource name) within a CICS region or across multiple regions via shared queues.
    • DB2 Table Locking: Employing the LOCK TABLE SQL statement to acquire an exclusive or share lock on an entire DB2 table, typically before performing a large batch update or read operation to ensure consistency and prevent contention.
    • IMS DB Segment Locking: Programs can explicitly request exclusive control over specific IMS database segments using PROCOPT=P or GHU (Get Hold Unique) calls to ensure that no other program can update that segment while it's being processed.
    • Batch Program Serialization: Using z/OS ENQ and DEQ macros directly in batch applications to serialize access to shared datasets, control files, or critical sections of code, preventing concurrent execution conflicts.

Related Concepts

Explicit locks are fundamental to concurrency control and data integrity in multi-user mainframe environments like CICS and DB2. They complement implicit locks,

Related Vendors

ABA

3 products

ASE

3 products

Tone Software

14 products

Trax Softworks

3 products

Related Categories

Operating System

154 products

Automation

222 products

Browse and Edit

64 products