A parameter list is used to pass information between CICS® and the data table exit programs. In the CICSTS31.CICS.SDFHMAC library, CICS supplies a copybook named DFHXDTDS that contains a DSECT to define this parameter list. You should include a COPY DFHXDTDS statement in each of your exit programs. The DSECT is shown in Figure 6.
The field names used in this DSECT are referenced in the user exit descriptions that follow the figure.
***********************************************************************
* *
* Data Table Parameter List for User Exits XDTRD, XDTAD and XDTLC. *
* *
* Some of the parameters are only used by one or two of the exits. *
* This is indicated in the comments for those parameters. *
* The comments also indicate whether the field is used for input *
* (In), output (Out), or both (In/Out). *
* *
* This definition can be used by exit programs running on CICS *
* regions which are at a level to support coupling facility data *
* tables (CFDT), providing the UEPDTCFT flag is used to test *
* whether the exit has been invoked from within coupling facility *
* data tables support, and that parameters which are specific to *
* CFDT support are only used when it is set. CFDT support will *
* only be available to exit programs running on CICS regions at *
* the CICS Transaction Server version 1 release 3 level or higher. *
* *
* This definition can be used by exit programs running on CICS *
* regions which are at a level to support shared data tables (SDT), *
* or which have SDT support installed, providing the UEPDTSDT flag *
* is used to test whether the exit has been invoked from within *
* shared data tables support, and that the parameters which are *
* specific to SDT support are only used when it is set. SDT *
* support will only be available to CICS regions running at the *
* CICS/ESA version 4 release 1 level or higher (or running on *
* CICS/ESA version 3 release 3 if the Shared Data Tables feature *
* is installed). *
* *
* This definition can also be used by exit programs running on *
* CICS regions which are not at a level to support either SDT or *
* CFDT, indicated by both the UEPDTCFT and UEPDTSDT flags being *
* off. In this case, only the parameters which relate to the *
* basic data tables support can be used. Basic data tables *
* support will only be available to CICS regions running on one *
* of the following levels: *
* - CICS/MVS version 2 (plus data tables SPE on some releases) *
* - CICS/ESA version 3 releases 1 or 2 *
* - CICS/ESA version 3 release 3 if SDT feature is NOT installed *
* *
* Careful use of these flags, and of the parameters which relate *
* to the various kinds of data tables support, should allow the *
* same user exit program to be used for more than one kind of data *
* table. *
* *
***********************************************************************
DT_UE_PLIST_DSECT DSECT ,
DT_UE_PLIST DS 0XL84 Data Table User Exits X
Parameter List
UEPDTNAM DS CL8 Data table name (In)
UEPDTFLG DS 0CL1 Flags (In):
*---------------------------------------------------------------------*
* The UEPDTSDT and UEPDTCFT flags indicate whether the *
* exit has been invoked for shared data tables or for *
* coupling facility data tables support. If neither is *
* set, then the exit has been invoked under the basic *
* data tables support which pre-dated shared data tables. *
* *
* The UEPDTCMT and UEPDTUMT flags are available only to *
* exits which have been invoked by shared data tables *
* support. They distinguish the two kinds of shared *
* data table. Please note that on releases earlier than *
* CICS Transaction Server 1.3, the UEPDTUMT flag is NOT *
* available; on these releases, a user-maintained data *
* table is implied by the UEPDTCMT flag being turned off. *
* *
* If the exit has been invoked by CFDT support, then the *
* data table can only be a coupling facility data table, *
* so there are no extra flags to identify the kind of *
* data table when the exit has been invoked by coupling *
* facility data tables support. *
* *
* The UEPDTOPT flag is available to exits which have *
* been invoked by either shared data tables support or *
* coupling facility data tables support (but not to exits *
* which have been invoked by basic data tables support). *
* This flag is therefore not available on releases *
* earlier than CICS/ESA 3.3 (plus SDT support). *
*---------------------------------------------------------------------*
DS BL1
UEPDTSDT EQU X'80' Exit invoked by SDT support
UEPDTCMT EQU X'40' Table is CICS-maintained
UEPDTOPT EQU X'20' Exit invoked by table loader, X
so optimization of the load by X
skipping may be requested X
(flag is for XDTRD only)
UEPDTCFT EQU X'10' Exit invoked by CFDT support X
UEPDTUMT EQU X'08' Table is user-maintained
* EQU X'07' Reserved
*---------------------------------------------------------------------*
* The following fields are available to exits which *
* have been invoked by all flavors of data tables support. *
* Not all fields are available at all of the exit points. *
*---------------------------------------------------------------------*
UEPDTORC DS AL1 Data table load return code - X
XDTLC only, values below (In)
DS BL2 Reserved
UEPDTRA DS A Data record address - XDTRD X
and XDTAD only (In)
UEPDTRBL DS F Data buffer length - XDTRD and X
XDTAD only (In)
UEPDTRL DS F Data table record length - X
XDTRD and XDTAD only, XDTRD X
can return new length in here X
if it amends record (only X
allowed for UMT or CFDT) X
(In/Out)
UEPDTKA DS A Key address - XDTRD and XDTAD X
only (In)
UEPDTKL DS F Key length - XDTRD and XDTAD X
only (In)
*---------------------------------------------------------------------*
* The following fields are available to exits which *
* have been invoked either by shared data tables support *
* or by coupling facility data tables support. *
* Not all fields are available at all of the exit points. *
*---------------------------------------------------------------------*
UEPDTDSL DS F Length of data set name (In)
UEPDTDSN DS CL44 Source data set name (In)
UEPDTSKA DS A Address of skip-key area: exit X
should return a key of length X
UEPDTKL in this area if it has X
requested optimisation of load X
by skipping - XDTRD only (In)
*---------------------------------------------------------------------*
* Values for UEPDTORC (supplied to XDTLC exit only) *
*---------------------------------------------------------------------*
UEPDTLCS EQU 0 load completed successfully
UEPDTLFL EQU 128 load failed
The user exits should set a return code in register 15. The return code values are supplied by the DFHUEXIT macro. The valid values for each user exit are given in the following descriptions.
If you want your exit programs still to work for basic data tables as well as for shared data tables, you can check UEPDTFLG to find out which version of data tables support invoked the exit program. For SDT, this flag byte also indicates which type of data table is being used and whether the exit program is being invoked during loading.
The exit program should use either the filename (field UEPDTNAM) or the name of the source data set (see fields UEPDTDSN and UEPDTDSL) to determine whether any action is to be taken for this file.
You can enable several exit programs at the same exit point, each of which, for example, takes action for a particular file or data set.