Previous Topic: DelayView

Next Topic: CICS Summary Statistics

Overview of CICS Delay Types

This section describes the types of delays that are specific to CICS. CICS statistics, which can give insight into these delays, are discussed in CICS Summary Statistics and CICS Transaction Statistics. Warning signs and possible tuning measures are also discussed.

With autonavigation, you can go directly from a delay category to a more detailed screen that provides relevant information about the delay. For more information, see "Using Autonavigation".

An overview of the delay types that you see in a CICS environment follows along with recommendations about how to use CA Mainframe Application Tuner to find out more about why your transactions are experiencing delays.

CA Mainframe Application Tuner groups delays into major and minor categories. An overview of CICS delay categories follows.

CICS System Delays

Either CICS locks were held by the application causing delays or a function was shipped to another CICS region running in an MRO configuration.

CICS Transient Data

Transient data delays include all functions that read, write, or delete records to the transient data in VSAM data sets. Delays associated with actually performing I/O to the VSAM cluster also are included in this category.

CICS Storage Control

Storage allocated for the application includes CICS system-acquired storage for the application, such as areas for the program, data records, terminal areas, and messages. It also includes dynamically acquired user storage needed by the application.

CICS File Control/Database

This category includes the delays associated with performing I/O to CICS files or database operations. The I/O is directly requested by the application or is performed on behalf of the application by CICS.

CICS Journal Control

Journal control delays are those delays associated with performing any actions to the CICS journals. Journaling is performed on behalf of the applications.

CICS Temporary Storage

Temporary storage delays are those delays that are incurred because of read/write activity to the Temporary Storage facility of CICS.

CICS Program Control

This category includes delays incurred by the application when programs are loaded by CICS.

CICS Terminal Control

This category includes all delays incurred when reading or writing data to a terminal, all VTAM related delays, and delays caused when an application is waiting for input from the terminal user.

CICS DL/I Resources

This category includes delays related to application requests to local DL/I resources and to DBCTL regions.

The various types of CICS system delays, and the possible reasons for them are described next.

Lock delays

CICS obtains locks on behalf of the application for a variety of reasons. These locks normally exist for a short period of time. A significant delay can indicate a system definition problem.

MRO Inter-region delays

If your application uses the multiregion option of CICS, it might be delayed because you are unable to establish a session with the remote system. This delay indicates that too few sessions are available on the remote system, or, if the connection has been made, the other system is responding slowly and your request is delayed. CA Mainframe Application Tuner attempts to identify the name of the other CICS in its detail data.

The following text describes the various types of CICS transient data delays, and the possible reasons for them.

Extrapartition Queue locked

Application can wait when making a request to an extrapartition transient data queue because some other task is using that destination.

TD Queue locked

Transient data queues defined in the DCT as logically recoverable can cause delays because a subsequent task that is making a request to the same queue is forced to wait until the first application terminates or issues a synchpoint command.

Buffer wait

This delay occurs when all of the buffers for the transient data are in use. The application waits until a buffer becomes available.

VSAM string wait

This delay occurs when all of the VSAM strings for the transient data queue are in use. The application waits until a VSAM string becomes available.

VSAM I/O wait

This delay occurs when the transient data request is waiting for the VSAM I/O to the Transient Data VSAM file to complete processing.

VSAM I/O buffer wait

Brief delay that occurs when there is contention for a VSAM control interval.

The various types of CICS storage control delays, and the possible reasons for them are described next.

Delay type

Reason

CICS DSA

USER DSA

CICS EDSA

USER EDSA

CUSHION

Any of these delays can occur when a CICS region is stressed on storage. The two most important reasons for extended storage waits occur when the program or one of its subroutines issues an unconditional GETMAIN for storage and the request is for either

  • a very large amount of storage
  • a reasonable amount of storage, but the system does not have the storage available because storage is fragmented or the CICS region has reached a short-on-storage condition

The following table describes the various types of CICS file control delays, and the possible reasons for them.

Delay type

Reason

VSAM buffer

The application is waiting for a VSAM buffer that is controlled with CICS file control table definition parameters.

Resolve this type of delay by increasing the number of buffers defined in the file control table.

VSAM Upgrade set

The application is attempting to read a record by using a VSAM path while another application is updating the record.

File control state change

The application is attempting to change the state of a file resource, but another task is still using the file.

VSAM I/O

The application is waiting for VSAM I/O to finish. Another job or task in the system can be updating the same file and preventing the CICS I/O from completing its processing.

VSAM String wait

The application is waiting for a VSAM string that the program or one of its subroutines is allocating to request data from a VSAM file.

VSAM file recovery failed

The file recovery failed. Because file recovery is handled by IBM routines, resolve file recovery wait problems with your systems programmer.

Shared resource

The application has requested a MASSINSERT operation and is waiting for a VSAM transaction ID to become available.

VSAM exclusive control

The application has attempted to update a VSAM file and requires exclusive control of a VSAM control interval to complete the update. This type of delay indicates a high level of concurrency of transactions that require access to the same records in the CICS system.

The following table describes the various types of CICS journal control delays, and the possible reasons for them.

Delay type

Reason

Subtask

The application is waiting for journal control to submit the archiving jobs to archive the journals.

Available ECB

The application is waiting for a logical ECB. Only a specified number of ECBs is available to journal control, and the wait is due to extensive journaling activity.

Allocate more ECBs by increasing the number of journals allocated to CICS.

Buffer unavailable

The application has issued a journal request and the buffer is nearly full, or the journal is unavailable because of a volume switch.

Flushing buffer

The application is requesting a journal close and is flushing the buffers.

I/O block

The application has issued a journaling request with the WAIT option and is suspended until the I/O completes processing.

I/O complete

The application has issued a CLOSE request for a journal and is waiting for all active I/O operations to finish before completing the CLOSE request.

JACD Get

The application has issued an inquiry request for a journal and the state of the journal is changing, due to switching from one journal to another. An extended delay might indicate that a journal I/O problem exists.

JACD Put

The application has issued a journal request and the state of the journal is changing, due to switching from one journal to another. An extended delay might indicate system I/O problems.

Switch wait reason

The application has issued a journal switch and is waiting for data to be written to the journal before the request can be honored. It is essentially an I/O wait.

Close done reason

The application is waiting is for the OPEN/CLOSE subtask to complete a close request. The application cannot influence this type of delay.

Detach

A task has requested shutdown and is waiting for the detaching of the journal subtask from the operating system. The application cannot influence this type of delay.

Ready

An outstanding write to operator with reply (WTOR) is causing the application to wait. This application cannot influence this type of delay.

Request done

The application is waiting for an OPEN or CLOSE request that another CICS task issued.

Switch

A system-related delay that the application cannot influence has occurred.

Tape2

A system-related delay that the application cannot influence. This delay indicates that a journal tape has been opened with an open ahead request and is not ready for I/O.

The following table describes the types of CICS temporary storage delays, and the possible reasons for them.

Delay type

Reason

Auxiliary storage

An application has attempted an unconditional write to temporary storage but sufficient auxiliary storage is unavailable.

Determine if the application is attempting to place a piece of temporary storage, which is too large, to the facility.

Buffer

The application has attempted to write to temporary storage and all buffers are in use.

Increase the number of temporary storage buffers by altering the buffer specification in the TS initialization parameter of the CICS system.

Extend

An application has made a request to extend temporary storage but some other task made the same request. A long delay might indicate a device or VSAM problem.

I/O

The application has made a request to temporary storage and is waiting for I/O completion.

Queue

The application has made a request to the temporary storage queue, but the queue is already in use by another task that has a lock on the queue.

Many transactions might be using the same temporary storage queue, or the same transaction has many instances running in parallel.

VSAM string

The application has made a temporary storage request and is waiting for a VSAM string.

Activity keypoint

The application is waiting for activity keypointing to complete processing. The delay can be significant when there are many temporary storage queues.

The following table describes the various types of CICS program control delays, and the possible reasons for them..

Delay type

Reason

Loader

The application has made a request to load another program into storage and the task has been suspended.

If the application is loading the program for the first time, the delay is related to the I/O required to move the program into storage.

The following table describes the various types of CICS terminal control delays, and the possible reasons for them.

Delay type

Reason

Terminal I/O

The application has issued a request to read or write data to a terminal and the task is waiting until the operation completes processing.

DFHZGET failure

The application has requested terminal control and is waiting for completion of an internal storage control operation.

Increase the amount of storage available for the CICS region.

LU62

The application has requested terminal control to perform an operation and an error occurred during the VTAM operation.

The application cannot influence this system-related delay.

The following table describes the various types of CICS DL/I resources delays, and the possible reasons for them.

Category

Reason

PSB schedule lock

The application is waiting for the PSB because another task has a lock on the PSB.

Too many tasks are attempting to access the same PSB.

No DL/I thread

The application has made a request for DL/I data and no DL/I threads are available. A DL/I thread is required to access data within IMS databases.

Increase the number of DL/I threads by modifying the CICS initialization parameters.

Termination request

The application is in termination but another task has requested the scheduling of a PSB. The application waits until the other task completes scheduling.

No PSB space

The application has made a DL/I request and there is no PSB pool space available.

The task has obtained a DL/I thread but the attempt to load the PSB into the pool failed because other tasks performing DL/I are using the space.

No DMB space

The application has made a DL/I request and no DMB pool space is available.

The task has obtained a DL/I thread and the PSB has been loaded. The attempt to load the DMBs, referenced in the PSB, into the pool failed because other tasks performing DL/I are using the space.

DL/I PSB/DMB load

A hardware error occurred when the application attempted to load a PSB or DMB.

DBCTL user wait

The application has made a DL/I request and is waiting for the DBCTL address space to service the request.