Previous Topic: DC Extended StatisticsNext Topic: Type Qualifier on Vary Program


IDMSINTL User Exit

The IDMSINTL CICS interface now supports an OPTIXIT that allows rerouting of navigational DML request units to different back-end systems or databases. The exit contains information about an IDMS request and its default routing location. The exit may update the routing information to direct it to another location.

To take advantage of this feature, you must write an assembler program and link it with your CICSOPT options module.

When creating an OPTIXIT module for IDMSINTL, consider the following:

When called, the exit is passed three parameters. The first and third parameters contain information about the request: the address of the subschema control block and the caller's registers at the time the request was issued, respectively.

The second parameter passed to the exit is the address of an OPTI structure generated either from parameters in the CICSOPT macro or from the SYSCTL file specified in the CICSOPT SYSCTL parameter. To direct the request unit to a different back-end CV, the exit must update the OPTI structure passed in the second parameter.

Registers at entry to exit:

Return codes: None

IDMSINTL User Exit Parameters

The following parameters are passed to the exit:

Fullword 1

Defines the address of the application program's subschema control block (SSC).

Fullword 2

Defines the address of an OPTI structure describing where the request will be routed unless overridden by the exit. (The OPTI structure is described by DSECT #OPIDS.)

Fullword 3

Defines the address of the savearea where the registers at entry to the interface were saved.

Example: OPTIXIT Program

The following example of an OPTIXIT for the IDMSINTL interface forces all requests to be routed to the target system accessed through SVC 226 and CV number 173.

TITLE 'SAMPLE OPTIXIT FOR IDMSINTL'

*----------------------------------------------------------------- * SAMPLE OPTIXIT FOR USE WITH VERSION OF IDMSINTL THAT SUPPORTS * AN OPTIXIT * * ON ENTRY: * R1 --> ADDRESS OF PARM LIST DESCRIBED BY DSECT OPTXPLST * R13 --> CALLER'S SAVE AREA * R14 --> RETURN ADDRESS * R15 --> THIS MODULE'S ENTRY POINT * * * TO INSTALL THIS EXIT, LINK THE ASSEMBLED MODULE WITH IDMSINTL BY * ADDING AN INCLUDE STATEMENT TO YOUR NORMAL IDMSINTL LINK JOB. * *----------------------------------------------------------------- TESTEXIT CSECT ENTRY OPTIXIT USING OPTIXIT,12 USING OPTIXIT,12 OPTIXIT DS 0H STM 14,12,12(13) SAVE CALLER'S REGISTERS LR 12,15 SET LOCAL BASE LA 15,SAVEAREA POINT TO MY SAVE AREA ST 13,4(,15) SA FORWARD CHAIN ST 15,8(,13) SA BACKWARD CHAIN LR 13,15 SET SAVE AREA POINTER USING OPTXPLST,1 L 2,OPTXOPTA USING OPI,2 MVI OPICVNUM,226 SAMPLE HARD-CODED CV NUMBER MVI OPISVCNO,173 SAMPLE HARD-CODED SVC NUMBER L 13,4(,13) CALLER'S SAVE AREA LM 14,12,12(13) RESTORE REGISTERS XR 15,15 CLEAR RETURN CODE BR 14 AND EXIT SPACE SAVEAREA DC 18F'0' LTORG OPTXPLST DSECT OPTXSSCA DS A(0) A(16-CHARACTER SUBSCHEMA-CTRL OPTXOPTA DS A(0) A(OPI DSECT STORAGE) OPTXSAVA DS A(0) A(INTL CALLER'S SAVEAREA) COPY #OPIDS END