Modernization Hub

Deferral

Enhanced Definition

In the mainframe context, **deferral** refers to the act of postponing an operation, task, or resource request until a later time or until specific conditions are met. This is often a mechanism to manage resource contention, ensure data integrity, or optimize system throughput by avoiding immediate processing when resources are unavailable or an operation cannot complete synchronously. In the context of z/OS and transaction processing systems like CICS, deferral refers to the temporary suspension or postponement of an active task or transaction's execution. This occurs until a specific condition is met, a required resource becomes available, or an external event completes, allowing the system to efficiently manage resources and prevent busy-waiting.

Key Characteristics

    • Conditional Postponement: Operations are typically deferred based on the unavailability of a required resource (e.g., a locked record, a full buffer), the completion of another task, or explicit programmatic control.
    • Resource Management: Deferral is a fundamental technique for managing shared resources, preventing deadlocks, and allowing other tasks to proceed while a blocked task waits.
    • Implicit or Explicit: Deferral can be implicit (e.g., an ENQ request waiting for a resource to be DEQed) or explicit (e.g., a CICS WAIT command or a batch job being held).
    • Event-Driven Resumption: Deferred tasks are typically resumed when the blocking condition is resolved or the awaited event occurs, often managed by the operating system (z/OS) or a subsystem (CICS, IMS).
    • Impact on Throughput: While necessary for integrity, excessive deferrals can indicate contention issues and negatively impact transaction response times and overall system throughput.

Use Cases

    • CICS Transaction Management: A CICS transaction might be deferred (suspended) if it attempts to access a record currently locked by another transaction, waiting for the lock to be released. This is often handled by CICS's dispatching mechanism.
    • Resource Contention (ENQ/DEQ): A batch job or started task attempting to obtain an exclusive ENQ on a dataset or resource that is currently held by another job will be deferred until the resource is DEQed.
    • Asynchronous I/O Operations: When an application initiates an I/O operation, the program execution might be deferred (waits) until the I/O completes, though modern systems often allow for asynchronous I/O where the program continues and is notified later.
    • Message Queueing: Messages placed on an IBM MQ queue might be deferred for processing by a consumer application until system load permits, or until a specific time, ensuring orderly and resilient message delivery.
    • Batch Job Scheduling: A job submitted to JES might be deferred from execution (held in the job queue) if its CLASS or PRIORITY dictates, or if it's waiting for predecessor jobs to complete or specific resources to become available.

Related Concepts

Deferral is closely related to concurrency control mechanisms like locking (e.g., DB2 locks, IMS locks, CICS file locks) and serialization (e.g., z/OS ENQ/DEQ services), as these mechanisms often lead to deferral when contention occurs. It is a core aspect of multitasking and multiprogramming, allowing the operating system to manage multiple active tasks by suspending some while others execute. Deferral also ties into transaction management in environments like CICS and IMS, where transactions are suspended and resumed to maintain atomicity and isolation.

Best Practices:

Related Vendors

HP

5 products

Applied Software

7 products

Macro 4

20 products

IBM

646 products

Trax Softworks

3 products

Related Categories

Encryption

41 products

Files and Datasets

168 products

Administration

395 products

CICS

214 products

Operating System

154 products

Browse and Edit

64 products