The headings that follow describe a number of DBCTL error situations and tell you how to go about solving them.
In this situation, the DRA may be in a "wait" state because you attempted to connect CICS® to DBCTL using the CDBC transaction, but the connection process failed to complete.
Connection to DBCTL using the CICS-supplied transaction CDBC takes place in two phases. In phase 1, CDBC passes the request for connection to IMS™ and returns. In phase 2, IMS processes the request asynchronously and returns to CICS when connection is complete. To discover where the problem occurred, try to find out how far the connection attempt has progressed by:
If connection is in phase 1, the following message is issued:
DFHDB8291 I DBCTL CONNECT PHASE 1 IN PROGRESS
It is very unlikely that a wait will occur during this phase, unless there is a problem with the CICS transaction.
If connection is in phase 2, the following message is issued:
DFHDB8292 I DBCTL CONNECT PHASE 2 IN PROGRESS
If phase 2 fails to complete, the failure is associated with IMS. This may be because:
SUBSYSTEM xxxx NOT ACTIVE. REPLY WAIT OR CANCEL
where xxxx is the subsystem
ID indicated on the CDBC panel.
See Defining the IMS DRA startup parameter table for information on specifying the DBCTL subsystem ID.
If neither of the above situations applies, the problem is in IMS; see the IMS Diagnosis Guide and Reference manual manual for further guidance.
For an example of the trace entries produced by CICS for a successful connection to DBCTL, see Connection to DBCTL.
In this case, the DRA may be in a wait state because you attempted to disconnect CICS from DBCTL using the CDBC transaction, but the disconnection process failed to complete.
For an example of the trace entries produced by CICS for a successful disconnection from DBCTL, see Disconnection from DBCTL.
When you use CDBC to disconnect from DBCTL, it invokes another CICS transaction, CDBT. CDBT makes the disconnection request to DBCTL, and is suspended by CICS while DBCTL services the request asynchronously.
If disconnection fails to complete, you can inquire on CDBT using CEMT INQ TASK to see how far disconnection has progressed. You will probably find CDBT is waiting on resource name DLSUSPND and resource type DBCTL, which means the request is being processed by DBCTL. For an illustrated example, see the description of CEMT INQ TASK in Purging a transaction that is using DBCTL.
You can, if necessary, override an orderly disconnection by requesting immediate disconnection, in which case the process should conclude at once. However, be aware that immediate disconnection can cause in-doubt UOWs, and leave database records unavailable to other CICS systems using that DBCTL until it is reconnected, as described in Deciding whether to use orderly or immediate disconnection.
For examples of trace entries produced by CICS during PSB scheduling (both successful and failed), see PSB schedule and PSB scheduling failure.
Use the DBCTL operator command /DISPLAY as follows:
The DRA may have entered a "wait" state because you have a CICS task in a wait state.
For an example of the trace entries produced by CICS during DL/I request processing, see CICS task issuing DL/I requests to be processed by DBCTL. For an example of the trace entries produced by DBCTL during DL/I request processing, see Trace entries produced by DBCTL.
If a task appears to have "hung", query it using CEMT INQ TASK, as for any CICS task. If you have a task waiting on a resource name of DLSUSPND and resource type DBCTL, the task has made a DL/I request and has been suspended in CICS while DBCTL services that request. If repeated use of CEMT INQ TASK shows the task still waiting on DLSUSPND, it has "hung" in DBCTL. If you want to purge the task, you must use DBCTL operator commands to do so. See Purging a transaction that is using DBCTL for an illustrated example of using CEMT INQ TASK and the relevant DBCTL operator commands in this way.
If the task is not waiting on DLSUSPND, this may indicate a problem in CICS. See the CICS Problem Determination Guide for information about dealing with it.
Using the /DISPLAY command to display DBCTL activity and the CEMT INQ TASK to display CICS activity are useful means of correlating what is happening on each side of the interface. Check to see that the recovery token matches in CICS and DBCTL. If it does not, this may indicate a thread hanging. /DISPLAY CCTL ALL displays all the threads associated with CICS tasks in DBCTL. If you enter /DISPLAY ACTIVE ALL, region and DC activity is also displayed, enabling you to find out if a BMP is waiting in DBCTL.