This document covers the following topics:
Before ADL issues an Adabas call, it passes control to a user-written user exit. The purpose of this user exit is to allow any modifications to Adabas parameters, for example, assignment of Adabas command IDs, to conform to user site standards. Also, this user exit might be useful for monitoring programs as well as access control programs.
Note, however, that the user is responsible for the integrity of the Adabas call parameters. This is in particular true for the Adabas command ID. ADL uses specific Adabas command IDs which are determined according to an internal algorithm. Should the user intend to modify these command IDs, care should be taken that identical Adabas command IDs used by ADL are reflected by identical command IDs in the user exit.
The entry point name of the user exit must be DAZUEX01
. On
entry to the user exit the following register conventions apply in batch and
online:
R1 | points to the Adabas parameter list |
R13 | points to a 18-fullword save area |
R14 | return address |
R15 | entry point address of DAZUEX01 |
In addition, under CICS, R8 points to the CSA
and
R12
points to the user TCA
.
The contents of those registers not mentioned above are undefined. On
return, all registers must be restored to their original values with the
exception of R15
. The save area pointed to by R13
may
be used to save the registers of ADL.
The user exit must be re-enterable. When running under z/OS/XA, the user
exit must eventually be able to run in AMODE 31
, depending on how
your environment has been configured.
In order to become active, the user exit must be link-edited with the
ADL batch region controller, DAZIFP
, with the executable ADL
Consistency Interface module for batch, DAZNUCA
, and with the
executable ADL Interfaces module for CICS, DAZNUCC
. See the
section z/OS
Installation or z/VSE Installation for more
details on how to link-edit these modules.
With the EXTRTN
keyword of the XDFLD
statement
in the DBD
definition, the name of a user-supplied index
maintenance exit routine can be specified. This exit routine allows the
suppression of indexing for certain data base records.
On entry to the exit routine, the following register conventions apply:
Register | Usage |
---|---|
R2 | points to the proposed index pointer segment |
R3 | points to the exit routine table entry described below |
R4 | points to the index source segment |
R13 | points to an 18-fullword save area |
R14 | return address |
R15 | entry point address of the exit routine |
The contents of registers not mentioned above are undefined. On return,
all registers must be restored to their original values with the exception of
R15
, which must contain a return code of either 0 or 4. A return
code of 0 means that the index is to be allocated, whereas a return code of 4
means that the indexing of the data base record is suppressed.
Control is passed to the exit routine for insert and replace calls which affect the corresponding secondary index. Unlike DL/I, the exit routine is not called by ADL for delete requests, since the descriptor value corresponding to this index is deleted by Adabas anyway. Therefore, logical error situations cannot occur.
An exit routine table entry has the following layout (see the source
library member MEXRENDS
):
EXRENDS DSECT EXRENTGN DS CL8 NAME OF TARGET SEGMENT EXRENXDN DS CL8 NAME OF XDFLD EXRENNAM DS CL8 NAME OF USER EXIT ROUTINE EXRENADR DS A ENTRY POINT OF USER EXIT ROUTINE EXRENDBD DS A ADDRESS OF DBD ICB EXRENSEX DS H O.T. SEC. INDEX ICB (WRT. DBDIC) EXREN$FL DS X FLAG: EXREN#AD EQU B'00000001' 'USER EXIT ALREADY DEFINED' EXREN#NF EQU B'00000010' 'USER EXIT NOT FOUND' DS 0F ALIGN EXRENLLL EQU *-EXRENDS
In order to become active, the exit routine must be an executable
module. The module name must be the same as specified with the
EXTRTN
keyword. It must be present on the corresponding load
library. Under CICS, an entry in the DFHCSDUP table must be defined for each
exit routine.
A sample exit routine is supplied in the source library member
ADLIMEX
.
Unless otherwise stated, all corrections distributed for ADL will be valid for both z/OS and z/VSE operating systems.
Source changes are to be applied directly to the affected members in the
ADL source library. Under z/VSE, source changes to macros must be followed by
an EDECK
assembly of the affected macros.
Fixes to ADL load modules (ZAP
s) are distributed in the
IMASPZAP
format for the z/OS operating system, and in
MSHP
format for the z/VSE operating system.
When applying corrections to load modules, it is recommended to follow the guidelines given in the Adabas Installation documentation.
It is strongly recommended to apply all ZAP
s to the
affected object modules directly and to repeat the link-edit of the affected
ADL executable load modules afterwards. This is to ensure that the corrections
remain active, even if an executable module should be re-linked.
In general, an upgrade to a new ADL release will require the following steps to be performed:
Load the ADL libraries to disk. (Step 1 of the original installation procedure.)
Update the error messages on the ADL directory file. (Step 2 of the original installation procedure.)
Reload the ADL Online Services. (Step 3 of the original installation procedure.)
Regenerate the ADL parameter module. (Step 4 of the original installation procedure.)
Create the new ADL executable load modules. (Steps 5 to 9 of the original installation procedure.)
Create the new Consistency front-ends. (Steps 10 to 11 of the original installation procedure.)
Regenerate the CICS Runtime Control Tables.
Steps 1 through 6 are described in detail in the sections z/OS Installation and z/VSE Installation. Step 7 is described in the ADL Interfaces documentation.
Steps 1 through 5 can be performed with Software AG's System Maintenance Aid (SMA).
When upgrading to a new ADL release, you will usually not have to
reconvert your DBD
definition or to repeat the database conversion
procedure. The upgrade to ADL 2.3 requires a data migration as described in the
section Migration to ADL 2.3 and
Backward Migration.