To handle Adabas direct calls issued by 3GL (COBOL, PL/I, etc.)
                       programs, the Entire Transaction Propagator provides an interface program,
                       ETPDB3GL, which is part of ETPNUC. Because Adabas
                       call handling varies with the operating systems and TP monitors, it may be
                       necessary for you to write a program that passes Adabas calls to the
                       ETPDB3GL interface program; this depends on your installation
                       requirements.
               
For 3GL programs running under CICS, the ETP Interface for CICS is available as a Natural add-on product. For more information, see the section ETP Interface for CICS.
The ETPDB3GL interface program provides two ways for your
                       3GL programs to use the Entire Transaction Propagator:
               
Invoking ETPDB3GL directly from your 3GL program, using
                               changed Adabas calls;
                     
Invoking ETPDB3GL from a user-written
                               "pseudo-Adabas" program, using existing Adabas calls.
                     
Using the interface requires initialization calls to provide
                       ETPDB3GL with information such as the database ID and file number
                       of the administration file. In addition to the normal Adabas parameters, you
                       must also provide a storage area as work storage.
               
Let's assume that your 3GL program now contains calls to Adabas similar to the following:
              .
              .
CALL ADABAS (CB,FB,RB,SB,VB,IB)
              .
              . 
                   Here, all program calls are issued directly to Adabas, as shown in the following figure:

With the Entire Transaction Propagator and the ETPDB3GL
                       interface program, you now have two possibilities to pass calls:
               
Change your 3GL programs to call the interface module
                               ETPDB3GL instead of Adabas; that is, instead of CALL
                                  ADABAS, code CALL ETPDB3GL. Include the initialization
                               calls and modify all other Adabas calls so that they look like the
                               following:
                     
              .
              .
CALL ETPDB3GL (CB,FB,RB,SB,VB,IB,WORKAREA)
              .
              .
 
                           - where WORKAREA is the required work storage for the
                               Entire Transaction Propagator. Now, your programs have the following call
                               logic:
                     

* The initialization parameters are described in the sample program
                               which is provided in data set
                               ETPvrs.SRCE.
                     
Write a program that accepts Adabas calls, performs initialization
                               calls to ETPDB3GL, and passes all Adabas calls to
                               ETPDB3GL (see figure above). Name the program ADABAS,
                               and link it to your application programs. You may need to change your
                               "compile and link" JCL to ensure that your application will always
                               pass Adabas calls to the interface. 
                     
This user-written program ADABAS provides all necessary
                               information to ETPDB3GL. It also must provide the address of the
                               "real" Adabas, which is usually an entry point in the normal
                               Adabas interface (for example, ADAUSER). To avoid linkage editor
                               errors caused by multiple entry points for the name ADABAS, you
                               may also have to use the linkage editor to change the normal Adabas
                               interface.
                     
With this alternative for passing calls, you do not need to change
                               your 3GL programs. Note, however, that the program ADABAS must
                               also specify work storage as in choice [1], above.
                     

* The initialization parameters are described in the sample program
                               which is provided in data set
                               ETPvrs.SRCE.
                     
A sample program using this second alternative for z/OS batch mode is
                               provided in data set ETPvrs.SRCE. This
                               sample program also contains the description of the interface to program
                               ETPDB3GL. This alternative has the call logic shown in the figure
                               above.
                     
Both alternatives require you to link the module ETPNUC to
                       all your applications for which Entire Transaction Propagator services will be
                       used; ETPNUC contains the interface program
                       ETPDB3GL.
               
Note that ETPDB3GL cannot handle the new ACBX control block
                       format as available with Adabas Version 8; if such a control block is
                       encountered, an error is returned to the caller of ETPDB3GL
                       immediately, regardless if the control block specifies a database ID that is
                       defined as an ETP database with the ETP3PARM macro or not.