Structure of the DXEXCBA control block

The DXEXCBA control block passes to the governor exit routine information about the state of the QMF session upon entry to the governor. The governor combines this information with information on resource limits (contained in DXEGOVA) to determine when the resource limits are exceeded and when to cancel the user's activity.

For example, you can define a resource option that does not allow user JONES to use the EDIT TABLE command. You can then write your governor exit routine so that, if the XCBQRYP field of the DXEXCBA control block indicates an EDIT TABLE command, the governor exit calls the QMF cancellation service to cancel the command.

Table 84 provides the name of each field in the control block, with its data type and purpose. Each data type is listed as it appears in the DS statement that defines the field in the DSECT.

The layout of the control blocks and the information they contain is the same for QMF support in all operating environments. Therefore, some of the information shown in the control blocks might not apply to QMF operating system you are running in.

Table 84. Fields of the DXEXCBA interface control block to the governor
Field Data Type Purpose
XCBACTIV CL1 Indicates the current type of database activity. Applies only when rows are being retrieved for the current data object. Does not apply when rows are retrieved for an IMPORT command. Possible values are:
1
OPEN being run
2
FETCH being run
3
PREPARE being run
4
DESCRIBE being run
5
CLOSE being run

This field changes whenever the type of database activity changes. You can use the value when the governor receives control asynchronously as the result of a timer.

XCBAIACT CL1 Tells whether the current command is running interactively:
1
Interactive
0
Noninteractive (batch)
Interactive commands display prompt and status panels. This field changes value on any function call for the start of the command; it is reset to zero when the command completes.
XCBAUTH CL8 Contains the user's SQL authorization ID.
XCBCAN CL1 Indicates whether the user or the governor requested cancelation of the current command. The field is set to 1 if cancelation is requested. Zero indicates that no cancelation was requested. The value changes at the point at which the cancelation is requested. This field is reset to zero before the function call for the command's termination.
XCBCLOC CL18 Contains the current location name.
XCBCMDL F Contains the length of the string containing the command to be run. This is the string addressed by XCBCMDP field. This field changes values when XCBCMDL changes values.
XCBCMDP A Points to the string containing the command to be run. This field is reset when QMF validates a command at some point before the function call for the start of the command.

The field is reset to zeros before the function call when the command completes. If a command synonym is being run, it appears here.

XCBCVERB CL18 Holds the verb of the current command. This field changes value on the function call for the start of a command. The value does not change between calls.
XCBDBMG CL1 Identifies the database manager. This value is set to 1 for DB2 for VM or VSE and to 2 for DB2 for OS/390.
XCBEMODE CL1 Indicates the current mode of the QMF session:
1
Interactive
2
Noninteractive (batch or server)
This value does not change during a session.
XCBERRET F Contains the return code to be used in the default cancelation message.
XCBINCI (ISPF only) CL1 Tells whether the current command is being run through the command interface. The field is set to 1 if it is, and 2 if it isn't. For more information about the command interface, see the Developing QMF Applications manual.
XCBINPRC CL1 Tells the governor where a command is being run: 1 indicates it is running in a procedure or LIST command; 0 indicates it is being run another way.
XCBKPARM CL1 Tells the governor how the DSQSDBCS program parameter is set. The value does not change during a session. Possible values are: 0 for Latin letters; 1 for double-byte character set (DBCS) data.
XCBLOGM CL1 Indicates if QMF should log a message in the QMF trace data set. Use a value of 1 to log the message, and 0 to not log the message.
XCBMGTXT CL78 Contains the text for a message. The message can be logged in the QMF trace data, displayed on the screen, or both.
XCBMSGNO (ISPF only) CL8 Contains the message ID for an ISPF message definition that can be used to log a message in the DSQDEBUG data set, viewed on your screen, or both.
XCBNAME CL8 Contains the control block name (DXEXCBA). Can serve as an eye catcher in a dump of virtual storage. This value does not change during a session.
XCBNLANG CL1 Identifies NLFs being used. (For a list of NLIDs used, see Table 1.) Value does not change during a session.
XCBPANEL (ISPF only) CL8 Contains the panel ID for the message Help panel for a cancelation message.
XCBPLAN CL8 Contains the application plan ID for QMF. The value does not change during a session. This field does not apply in CICS.
XCBQCE F Contains the decimal equivalent of the value of the SQLDERRD(4) field in the SQLCA returned from DBMS. The integer part of this decimal appears in the database status ("relative cost estimate") panel. The value is set to zero on the function call when the command finishes running. The field contains zeros if the operation is not a data retrieval query. The query cost estimate is not available from DB2 Parallel Edition V1.2 or DataJoiner v1.2.1. In these environments the value is set to 1.
XCBQERR CL1 Tells whether a QMF error occurred since the previous function call: 0 indicates no error occurred; 1 indicates an error occurred.
XCBQMF CL10 Identifies the current release of QMF. This value is QMF V7R2.0, and does not change during a session.
XCBQRYP A Contains the address of a copy of the query that QMF passes to the database for execution. The governor inspects the query upon a call to start database activity (before any data retrieval) and determines whether to cancel the activity. The address is set to zero either at the beginning of the session or when the data object is reset or imported to temporary storage.

This field contains information only when data retrieval is requested through one of the following commands; no information is provided for queries on OS/390 DB2 system tables or QMF control tables.

DISPLAY TABLE
EDIT TABLE
ERASE TABLE
EXPORT TABLE
IMPORT TABLE
PRINT TABLE
RUN QUERY
SAVE DATA
XCBREFR CL1 Indicates whether QMF refreshes the screen after returning from the governor; 1 indicates a refresh; 0 indicates no refresh.

If your governor displays any screen information, set this field to 1.

XCBRELN CL2 Identifies the QMF release level. For QMF Version 7.2, this is 13. The value does not change during a session.
XCBRGRP CL16 Contains the name of the user's resource group. This value does not change during a session.
XCBROWSF F Reflects the number of rows retrieved into the data object. Initially zero, this field changes value whenever more rows are retrieved. All data retrieval is counted whether data is retrieved from the database, sequential files, CICS temporary storage, or CICS transient data queues.

QMF does not reset this field, but the governor can. For example, if your governor exit routine monitors the number of database rows retrieved, you can set this field to zero on the function call for the end of the command that began the data retrieval.

XCBSYST CL1 Identifies the current operating system. The value does not change during a session, and is usually set to 3, indicating TSO, or native OS/390 batch. Possible values are:
1
CMS (VM/SP)
3
TSO, or native OS/390 batch (MVS/XA or MVS/ESA)
4
CMS (VM/XA or VM/ESA)
5
CICS (VSE/ESA, MVS/ESA, or MVS/XA)
.
XCBTRACE CL1 Contains a value for the level of detail at which user exit activity is traced. Possible values are 0 (least detail), 1, or 2 (most detail).

At the start of a session, the value of the TRACE field from the user's QMF profile is used here. After that, the value changes only when the user changes the value of the TRACE option. For more information on tracing, see Using the QMF trace facility.

XCBUSER CL8 Contains the user's TSO logon ID (for TSO), the user parameter on the job statement (for native OS/390 batch). This field is not used in CICS; it contains blanks.
XCBUSERS CL2048 Scratchpad area in which you can store results you want the governor to save from one call to the next. It is initially set to blanks. QMF does not change this value.

The structure of the DXEXCBA control block is illustrated below:

Figure 243. The DXEXCBA control block
********************************************************************** 00001000
*                                                                    * 00002000
*        CONTROL BLOCK NAME: DXEXCBA                                 * 00003000
*                                                                    * 00004000
*        FUNCTION:                                                   * 00005000
*                                                                    * 00006000
*            THIS IS THE INTERFACE CONTROL BLOCK BETWEEN QMF AND     * 00007000
*            EXIT ROUTINES.                                          * 00008000
*                                                                    * 00009000
*        STATUS: VERSION 7 RELEASE 2 LEVEL 0                         * 00010000
*                                                                    * 00011000
*        INNER CONTROL BLOCKS: NONE                                  * 00012000
*                                                                    * 00013000
*        CHANGE ACTIVITY:                                            * 00014000
*                                                                    * 00015000
*                                                                    * 00016000
********************************************************************** 00017000
*                                                                      00018000
DXEXCBA  DSECT                                                         00019000
         DS    0D                                                      00020000
XCBNAME  DS    CL8           -- CONTROL BLOCK IDENTIFICATION           00021000
         SPACE                                                         00022000
XCBEXCTL DS    XL190         -- EXIT CONTROL                           00023000
         ORG   XCBEXCTL                                                00024000
XCBAUTH  DS    CL8           ----- AUTHORIZATION ID                    00025000
XCBUSER  DS    CL8           ----- USER ID                             00026000
XCBPLAN  DS    CL8           ----- PLAN ID                             00027000
         SPACE                                                         00028000
XCBQMF   DS    CL10          ----- CURRENT VERSION/RELEASE             00029000
         SPACE                                                         00030000
XCBRELN  DS    CL2           ----- QMF RELEASE LEVEL                   00031000
         SPACE                                                         00032000
XCBTRACE DS    CL1           ----- QMF EXIT TRACE LEVEL                00033000
XCBTOFF  EQU   C'0'          -------- NO TRACING                       00034000
XCBTPART EQU   C'1'          -------- PARTIAL TRACING                  00035000
XCBTFULL EQU   C'2'          -------- FULL TRACING                     00036000
         SPACE                                                         00037000
XCBSYST  DS    CL1           ----- OPERATING SYSTEM                    00038000
XCBSYSTX EQU   C'3'          -------- MVS/ESA or XA (TSO,APPC, native) 00039000
XCBSYSTV EQU   C'4'          -------- CMS/VM/ESA                       00040000
XCBSYSTY EQU   C'5'          -------- CICS (OS/390 or VSE)             00041000
         SPACE                                                         00042000
XCBPAD10 DS    CL4           ----- RESERVED FIELD                      00043000
         SPACE                                                         00044000
XCBNLANG DS    CL1           ----- CURRENT NATIONAL LANGUAGE           00045000
         SPACE                                                         00046000
XCBKPARM DS    CL1           ----- SETTING OF K PARAMETER              00047000
XCBKPARN EQU   C'0'          -------- LATIN                            00048000
XCBKPARY EQU   C'1'          -------- DBCS                             00049000
         SPACE                                                         00050000
XCBDBMG  DS    CL1           ----- DATA BASE MANAGER                   00051000
XCBDBMGS EQU   C'1'          -------- DB2 FOR VM/VSE                   00052000
XCBDBMGD EQU   C'2'          -------- DB2 FOR OS/390                   00053000
XCBDBMGW EQU   C'3'          -------- WORKSTATION DB2                  00054000
         SPACE                                                         00055000
XCBEMODE DS    CL1           ----- CURRENT EXECUTION MODE              00056000
XCBIACTV EQU   C'1'          -------- INTERACTIVE MODE                 00057000
XCBBATCH EQU   C'2'          -------- BATCH MODE                       00058000
         SPACE                                                         00059000
XCBAIACT DS    CL1           ----- CURRENT INTERACT MODE               00060000
XCBAIACY EQU   C'1'          -------- INTERACTIVE EXECUTION            00061000
XCBAIACN EQU   C'0'          -------- NOT INTERACTIVE EXECUTION        00062000
         SPACE                                                         00063000
XCBINCI  DS    CL1           ----- CURRENT COMMAND INTERFACE STATE     00064000
XCBINCIY EQU   C'1'          -------- COMMAND INTERFACE ACTIVE         00065000
XCBINCIN EQU   C'0'          -------- COMMAND INTERFACE NOT ACTIVE     00066000
         SPACE                                                         00067000
XCBINPRC DS    CL1           ----- PROCEDURE OR LIST CMD EXEC STATE    00068000
XCBPRCY  EQU   C'1'          ------- RUNNING A PROCEDURE OR LIST CMD   00069000
XCBPRCN  EQU   C'0'          ------- NOT RUNNING PROCEDURE OR LIST CMD 00070000
         SPACE                                                         00071000
XCBCVERB DS    CL18          ----- CURRENT COMMAND VERB                00072000
         SPACE                                                         00073000
XCBCAN   DS    CL1           ----- CANCEL CURRENT COMMAND INDICATOR    00074000
XCBCANN  EQU   C'0'          -------- NO CANCELLATION                  00075000
XCBCANY  EQU   C'1'          -------- CANCELLATION IN PROGRESS         00076000
         SPACE                                                         00077000
XCBACTIV DS    CL1           ----- TYPE OF DATA BASE ACTIVITY          00078000
XCBOPEN  EQU   C'1'          -------- OPEN                             00079000
XCBFETCH EQU   C'2'          -------- FETCH                            00080000
XCBPREP  EQU   C'3'          -------- PREPARE                          00081000
XCBDESCR EQU   C'4'          -------- DESCRIBE                         00082000
XCBCLOSE EQU   C'5'          -------- CLOSE                            00083000
XCBEXEC  EQU   C'6'          -------- EXECUTE                          00084000
XCBEXECI EQU   C'7'          -------- EXECUTE IMMEDIATE                00085000
XCBPAD20 DS    CL9           ----- RESERVED FIELD                      00086000
         SPACE                                                         00087000
XCBRGRP  DS    CL16          ----- RESOURCE GROUP NAME                 00088000
XCBPAD30 DS    CL22          ----- RESERVED FIELD                      00089000
         SPACE                                                         00900000
XCBCMDP  DS    A             ----- POINTER TO ORIGINAL COMMAND STRING  00091000
*                            -------- WILL NOT CONTAIN PROMPT VALUES   00092000
         SPACE                                                         00093000
XCBCMDL  DS    F             ----- ORIGINAL COMMAND STRING LENGTH      00094000
         SPACE                                                         00095000
XCBQCE   DS    F             ----- QUERY COST ESTIMATE VALUE           00096000
SPACE                                                                  00097000
XCBROWSF DS    F             ----- DATA BASE ROWS FETCHED FROM SOURCE  00098000
*                            -------- SET BY QMF; EXIT MAY RESET       00099000
         SPACE                                                         00100000
XCBQERR  DS    CL1           ----- QMF ERROR INDICATOR                 00101000
XCBQERRN EQU   C'0'          -------- NO QMF ERROR DETECTED            00102000
XCBQERRY EQU   C'1'          -------- QMF ERROR DETECTED               00103000
XCBCLOC  DS    CL18          ----- CURRENT LOCATION NAME               00104000
XCBPAD40 DS    CL41          ----- RESERVED FIELD                      00105000
         SPACE                                                         00106000
XCBQRYP  DS    A             ----- POINTER TO SQL QUERY                00107000
*                            -------- QUERY LENGTH IS FIRST HALFWORD   00108000
         SPACE                                                         00109000
XCBUCTL  DS    XL432         -- USER CONTROL AREA                      00110000
         ORG   XCBUCTL                                                 00111000
XCBERRET DS    F             ----- EXIT ERROR RETURN CODE              00112000
XCBMGTXT DS    CL78          ----- EXIT ERROR MESSAGE TEXT             00113000
XCBMSGNO DS    CL8           ----- ISPF MESSAGE NUMBER                 00114000
XCBPANEL DS    CL8           ----- ISPF MESSAGE HELP PANEL             00115000
XCBLOGM  DS    CL1           ----- LOG MESSAGE INDICATOR               00116000
XCBLOGMN EQU   C'0'          -------- QMF SHOULD NOT LOG MESSAGE       00117000
XCBLOGMY EQU   C'1'          -------- QMF SHOULD LOG MESSAGE           00118000
XCBREFR  DS    CL1           ----- REFRESH SCREEN INDICATOR            00119000
XCBREFRN EQU   C'0'          -------- QMF DOES NOT HAVE TO REFRESH SCR 00120000
XCBREFRY EQU   C'1'          -------- QMF SHOULD REFRESH SCREEN        00121000
XCBPAD50 DS    CL28          ----- RESERVED FIELD                      00122000
         SPACE                                                         00123000
XCBUSERS DS    CL2048        -- USER SCRATCH PAD AREA                  00124000
XCBPAD60 DS    CL48          ----- RESERVED FIELD                      00125000
[ Previous Page | Next Page | Contents | Index ]