Delay Types

CA MAT measures delays in an application program, both from outside sources and within the program’s own code.

Contents


Delay Categories

This section presents a summary of the main types of delays.

  • Program Active
    The program or one of its subroutines is in control of a CPU.

  • Voluntary Wait
    The program has voluntarily relinquished control of a CPU.

  • Abend Procedure Delay
    A component of the application is terminating abnormally or gathering diagnostic information for a problem.

  • Data Delay
    The program is waiting for data to be returned.

  • Resource Conflict
    The program is delayed because another program has exclusive use of a required resource, such as a file or program.

  • System Active
    The program is using operating system functions, such as storage administration or system security.

  • File Management Delay
    The program is delayed by a file management operation such as locating or opening a file.

  • Program Load Delay
    The program is delayed by the operating system while it performs program management functions.
    Program management includes locating a program on DASD, obtaining storage, reading the program, or converting the relative addressing information into absolute addresses.

  • DASD Management Delay
    The program is delayed because of a DASD file management function that is not part of normal file management.

  • CICS Delays
    The CICS subsystem delays are divided into the following categories:

    • CICS System Delay

    • CICS TransData

    • CICS StorCtl Delay

    • CICS TaskCtl Delay

    • CICS FileCtl Delay

    • CICS JourCtl Delay

    • CICS TempStor Delay

    • CICS ProgCtl Delay

    • CICS TermCtl Delay

    • CICS DL/I Delay

  • Other Delays
    The program is delayed for a reason not listed in this section.
    These delays can be related to paging, swapping, nondispatching, or other reasons.

Delay Descriptions and Possible Causes

This section provides a description of delays and suggests common possible causes.

Program Active Delays

This section describes the various types of program active delays, and the possible reasons for them.

  • Algorithms
    An algorithm in the program or one of its subroutines is using CPU time.

  • High Level Language options
    High overhead compiler options, such as DEBUG or TRACE were specified.

  • Data definitions and conversion
    High-level languages can use significant CPU time to convert numeric data intended for display to a format that can be used in computation, such as a subscript, that accesses table entries defined in the program or one of its subroutines.

Voluntary Wait Delays

This section describes the various types of voluntary wait delays, and the possible reasons for them.

  • Wait for intertask function
    The program or one of its subroutines is waiting for another task or address space to present information or is waiting to receive a work request.

  • Calls to database system other than IMS, DB2, Adabas, NATURAL or CA Datacom
    Indicates one of the following reasons:
    The program or one of its subroutines is requesting data from a database of which CA MAT has no internal knowledge
    The delay is reported but not attributed to a specific database system.

  • Wait/Waitr SVC
    Performance of the active task cannot continue until one or more specific events have occurred.

Abend Procedure Delays

This section describes the various types of abend procedure delays, and the possible reasons for them.

  • Too many SNAP dumps
    The process of taking SNAP dumps is taking a significant amount of processing time.
    Reduce the number of SNAP dumps to decrease overall processing time.

  • Program using abend processing
    A program or one of its subroutines is using z/OS abend services to process invalid data.
    You should use means other than z/OS abend services to eliminate or reduce abend processing time.

Data Delays

This section describes the various types of data delays, and the possible reasons for them.

  • Placement of data sets
    Queueing delays are occurring because data sets used by the program or one of its subroutines reside on busy DASD volumes.

  • Insufficient buffers for sequential access methods
    Too few buffers are defined for a file to provide timely sequential data set access processing.

  • Block size too small for sequential access methods
    Indicates one of the following reasons:
    The block size is too small and causing too many I/O operations.
    Delays are reported for both the processing time to start and to complete the I/O operation and for the wait for data to be returned.

  • File is fragmented into many extents
    Indicates one of the following reasons:

    • The file used by the program or one of its subroutines is in many extents.

    • This fragmentation causes additional seeking to take place on the device, which delays the program.

  • VSAM files poorly buffered
    An insufficient number of index and data buffers are defined for VSAM files, or the buffers are too small.

  • VSAM files use share options (4,4)
    Indicates one of the following reasons:

    • When VSAM data sets must be open in more than one address space for updating, each application must use share options that preserve the integrity of the data

    • When these share options are used, each read requires an I/O operation to refresh the data because another address space might have updated the data.

  • Insufficient buffers for VSAM files that use local or global shared resources
    If a program uses VSAM shared resources for multiple files to better utilize virtual memory, not having enough buffers of a required size causes delays waiting for buffers to become available.
    This situation is especially important for read operations because the intent is to find the data in the memory buffer as often as possible.
    Reduce data delays by tuning the buffers to the workload that uses the buffer pool.

  • DB2 SQL process time
    An application might spend an inordinate amount of time waiting for data to be returned for an SQL statement.
    This problem can be caused by excessive page scans if an INDEX is not available to speed the data retrieval.

  • IMS database process time
    An application might spend inordinate amounts of time waiting for data from an IMS database to be returned.

Resource Conflict Delays

This section describes the various types of resource conflict delays, and the possible reasons for them.

  • Data set in use by another application
    When jobs are executed concurrently, z/OS provides data integrity by using system-wide enqueues.
    If a job allocates a data set by using DISP=SHR, it has concurrent access, but each program must ensure data integrity. If a job allocates a data set by using DISP=OLD, the z/OS operating system provides data integrity and requires all other programs to wait until the data set is free.
    Reduce resource conflicts by ensuring that jobs use the same resources in a serial manner.

  • Logical resources in use by another application
    z/OS provides the ENQUEUE/DEQUEUE facility to ensure that logical resources are protected when multiple jobs or tasks require serialization.
    For example, when the program uses the ENQUEUE facility to provide a queueing function for a server task, the requesting tasks waiting in ENQUEUE are delayed.
    Reduce resource conflicts, caused when queueing is emulated with the ENQ/DEQ services, by using another queueing algorithm.

System Active Delays

This section describes the various types of system active delays, and the possible reasons for them.

  • Repeated calling of DATE/TIME services
    A program or one of its subroutines repeatedly calls the date/time operating system services.
    Reduce this type of delay by obtaining the date once and use it for the entire program execution.

  • Excessive storage management activity
    Indicates one of the following reasons:
    A program or one of its subroutines is allocating and freeing areas of virtual memory excessively.
    Storage management is an expensive function that causes application delays if not properly utilized.
    You can reduce delays resulting from excessive storage management by designing the program to allocate and free storage less frequently.

  • Excessive use of timer services
    Indicates one of the following reasons:
    A program or one of its subroutines uses the timers provided by z/OS or an application enabler such as CICS, to control a time-dependent feature of the application.
    Timer services should be used sparingly since their use can cause system delays.

  • Extensive security calls
    Indicates one of the following reasons:
    A security system protects all physical and logical system resources, and calls to the protection routines are causing excessive CPU use.
    Excessive security implementation in an online environment can account for up to 10 percent of processor usage.

File Management Delays

This section describes the various types of file management delays, and the possible reasons for them.

  • Wait for tape mount
    Indicates one of the following reasons:
    A program or one of its subroutines is waiting for a tape mount.
    Tape mount delays are experienced in the OPEN and End of Volume system services. End of volume processing is the function that requests subsequent volumes of a multivolume data set, which usually resides on tape.

  • Excessive OPEN and CLOSE requests for a file
    A program or one of its subroutines might OPEN a file, perform a single I/O operation, and then immediately CLOSE the file. OPEN/CLOSE requests are very expensive operating system functions that contribute heavily to overall delay.

  • Small data set extent allocation
    Additional time is spent allocating additional data set extents as the data set expands.
    Reduce this type of delay by allocating a large enough data set to eliminate additional extent allocation.

  • High VSAM catalog activity
    Indicates one of the following reasons:
    When a VSAM data set is OPENed or CLOSEd, a number of accesses are made to the CATALOG service routines to fetch control blocks or to write statistics.
    It is not possible to control the time spent in CATALOG services, but files might be OPENed too often or unnecessarily.

Program Load Delays

This section describes the various types of program load delays, and the possible reasons for them.

  • Request to bring modules into memory
    Indicates one of the following reasons:
    Delays occur when a module is brought repeatedly into memory or when the search for the module on DASD takes a long time.
    Factors that influence search times include concatenated libraries, large directories, or poor placement of the libraries.

  • Large concatenation used for program library
    A program or one of its subroutines uses a large concatenation of data sets that reside on different volumes and require a significant amount of I/O to process the program management activity.

DASD Management Delays

This section describes the various types of DASD management delays, and the possible reasons for them.

  • Insufficient space allocated initially for the data set
    Indicates one of the following reasons:
    If the job JCL allocates too little space for a data set, z/OS allocates secondary extents as necessary to hold all the data.
    The data set allocated should be large enough to hold all of the data initially, preventing unnecessary allocations from taking place.

Other Delays

This section describes the various other types of delays, and the possible reasons for them.

  • Demand paging
    One or more of the following situations might be present in the program or in one of the subroutines it calls:

    • a program is link-edited inefficiently

    • data arrays are used incorrectly

    • too many data buffers are specified

  • VIO paging
    Indicates one of the following reasons:
    VIO data sets are simulated files that can significantly reduce I/O delays.
    They are essentially paging files that are managed by z/OS. The only drawback is that, if the application requests a record that is not in the VIO panel, a page fault will occur that will not be processed concurrently with the application program and the application will experience delay.

  • Swapping
    This delay is caused when

    • the program or one of its subroutines is requesting system resources that are unavailable.

    • the site’s tuning parameters are improperly set.