Modifying the governor exit on VSE

Translate, assemble, and link-edit your governor exit routine, whether you modified the IBM-supplied governor exit routine or wrote your own.

Program components of the governor exit routine

Before you begin modifying or writing your own governor exit routine, you need to know the names of the governor exit routine components and what purpose each component serves.

Table 82 shows these components, whose names vary according to which language you installed (English or an NLF). Replace the n symbol in the following names with the NLID (from Table 1) that matches the NLF you're using. In the component names, a 3 represents CICS.

Table 82. IBM-supplied governor components
Member Name Library Function
VSE
DSQUnGV3.PHASE PRD2.PROD Executable phase installed during QMF installation.
DSQUnGV3.Z PRD2.PROD Source code for governor exit routine.
DXEGOVA.A PRD2.PROD DSECT for the DXEGOVA control block.
DXEXCBA.A PRD2.PROD DSECT for the DXEXCBA control block.
DXEUnGV3.A PRD2.PROD Contains text and related definitions for the governor exit routine cancellation message in CICS.
DXEUnGM.Z PRD2.PROD Contains CICS basic mapping support (BMS) information, which describes how the governor prompts appear on the screen.
DSQ3nGLK.Z PRD2.PROD Job that translates, assembles, and link-edits the IBM-supplied governor exit routine and the BMS map.

If you are using an NLF: You can govern resources in an NLF session as well as an English QMF session, by using different versions of the module DSQUnGVx for each language environment. For example, if you have both English and German installed, use the module DSQUEGV3 for English and the module DSQUDGV3 for German.

You can share the resource control table (Q.RESOURCE_TABLE or one you create yourself) and the Q.RESOURCE_VIEW between language environments, just as the Q.PROFILES table can contain profiles for English or any NLF.

How CICS interacts with the governor exit routine

At the start of a user's session, QMF issues an EXEC CICS LOAD command to bring the governor into the user's virtual storage. For performance reasons, an assembler call interface is used between QMF and the governor exit routine. The governor exit routine must provide fast performance because, depending on which resources you are trying to control, it might be called on every row retrieved from the database.

The CICS control block interface to the governor exit consists of the following parts:

Figure 227 shows the program structure of a governor exit routine.

Figure 227. CICS processing that interacts QMF with the governor exit
QMF Main Module DSQQMF points to QMF Edit Exit Module  DSQUnGV3 via Assembler
call. QMF Edit exit module which consists of CICS EXEC  IBM-supplied interface
programs DFHAEAI and DFHAEIO, and DSQUnGV3 Governor exit program  point to
QMF Main Module via Assembler return DFHEIRET.

The governor exit routine executes on the same program level as the main QMF program.

The entry point to the governor exit routine is DSQUnGV3. When it calls the governor exit routine, QMF always branches to the address returned by CICS as the result of an EXEC CICS LOAD command.

If the load fails or the module does not support 31-bit addressing mode, QMF issues a warning message, disables the governor exit, and continues the session without the governor. Assembling and link-editing this module are discussed in Assembling, translating, and link-editing your governor exit routine in CICS on OS/390.

[ Previous Page | Next Page | Contents | Index ]