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.
Either CICS locks were held by the application causing delays or a function was shipped to another CICS region running in an MRO configuration.
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.
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.
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.
Journal control delays are those delays associated with performing any actions to the CICS journals. Journaling is performed on behalf of the applications.
Temporary storage delays are those delays that are incurred because of read/write activity to the Temporary Storage facility of CICS.
This category includes delays incurred by the application when programs are loaded by CICS.
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.
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.
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.
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.
Application can wait when making a request to an extrapartition transient data queue because some other task is using that destination.
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.
This delay occurs when all of the buffers for the transient data are in use. The application waits until a buffer becomes available.
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.
This delay occurs when the transient data request is waiting for the VSAM I/O to the Transient Data VSAM file to complete processing.
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
|
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. |
| Copyright © 2011 CA. All rights reserved. | Tell Technical Publications how we can improve this information |