Customizing DBCTL

This section provides information on facilities that you can use to customize DBCTL.

DFHDBUEX

DFHDBUEX is an IBM-supplied user-replaceable program that is invoked each time CICS® connects to, and disconnects from, DBCTL. You can use DFHDBUEX to enable, or disable, CICS-DBCTL transactions at DBCTL connection and disconnection time. The transactions are available to be run if that DBCTL is connected. Users who attempt to enter one of these transactions when DBCTL is not connected are notified immediately that the transaction is unavailable. This means that end users will not be able to start one of these transactions, only to find that it fails because the database is unavailable.

To summarize, DFHDBUEX is invoked when:

See CICS Customization Guide for programming information on DFHDBUEX.

Global user exits XDLIPRE and XDLIPOST

There are two global user exits--XDLIPRE and XDLIPOST. They are available to all DL/I users (that is, local and remote as well as DBCTL), and you can use them to intercept any Call level or EXEC level DL/I request on entry to and exit from DL/I. XDLIPRE is invoked before the DL/I request is processed. XDLIPOST is invoked after the DL/I request is processed. If you are using function shipping, the exits are invoked from the application owning region (AOR), and the database owning region (DOR). However, there are restrictions on what actions can be performed by an exit program running at exit point XDLIPRE or XDLIPOST in a DOR. For programming information on these exits, see Naming, testing, and debugging your autoinstall control program and CICS action on return from the control program in the CICS Customization Guide .

To help with migration of applications from local DL/I to DBCTL, you can use XDLIPRE to change the PSB name that the application program has scheduled at execution time. There is an example of XDLIPRE in Appendix E. Using global user exit XDLIPRE to change PSB to be scheduled that you can copy and modify. Note that this example is provided for guidance only. Another example of using the exits to ease migration from local DL/I to DBCTL concerns DBCTL enhanced scheduling, whereby the schedule of a PSB does not fail if one of the databases used by that PSB is unavailable. Instead, a status code is set in the relevant PCB indicating the database is unavailable. This is different from local DL/I, where an 0805 response code would have been set for CALLDLI programs, or a DHTE abend would occur for EXEC DLI programs, if any of the databases are unavailable. The XDLIPOST exit could be used, on return from a schedule request, to scan down the list of PCBs and, if any of the status codes indicate a database is unavailable, the XDLIPOST exit could change the UIB response codes to 0805. This would cause EXEC DLI programs to abend DHTE, and CALLDLI programs to receive an 0805 response. With this technique, DBCTL thinks that the PSB is still scheduled, so a new schedule request must not be attempted before the PSB is terminated either explicitly, by transaction termination, or by an abend. New applications should use the EXEC DLI ACCEPT STATUS GROUP(A) command to cope with DBCTL enhanced scheduling.

To provide an availability enhancement, you can use the XDLIPRE exit to change the identity of the SYSID during CICS execution. In this way, you can route work from a SYSID that becomes unavailable to an alternative.

Global user exits XRMIIN and XRMIOUT

The global user exits XRMIIN and XRMIOUT enable you to monitor activity across the resource manager interface (RMI). XRMIIN is invoked just before control is passed from the RMI to a task-related user exit, and XRMIOUT is invoked just after control is returned to the RMI. You can use these exits to monitor DL/I activity; for example, control being passed to and from DFHDBAT for DBCTL requests, or DFHEDP for EXEC DLI. For programming information on using these exits, see Naming, testing, and debugging your autoinstall control program and CICS action on return from the control program in the CICS Customization Guide .

Global user exits for XRF

If you use CICS support for XRF, global user exits XXDFA, XXDFB, and XXDTO are available to enable you to establish a takeover mechanism for DBCTL.

Related concepts
Installing DBCTL, and defining CICS and IMS system resources
Checklist for installing and generating DBCTL
Defining CICS system resources for DBCTL
Generating DBCTL
Starting DBCTL, DLISAS, and DBRC
Defining the IMS DRA startup parameter table
[[ Contents Previous Page | Next Page Index ]]