Runtime Interface

 
idms
 
The characteristics of the runtime interface are as follows:
  • Accepts retrieval and update requests from the DL/I application programs
  • The interface then processes the requests into appropriate CA IDMS/DB requests and sends them to CA IDMS/DB
  • After CA IDMS/DB processes the requests, the runtime interface accepts the retrieved data and status information from CA IDMS/DB for placement in a format acceptable to the DL/I application program
  • To accomplish these functions, the runtime interface consists of special-purpose components, a front end, and a back end.
The special-purpose components, the front end, and the back end are discussed in the remainder of this section.
2
2
Special-Purpose Components
The CA IDMS DLI Transparency special-purpose components consist of the following modules and database procedures:
  • IDMSDLRC module
    ── IDMSDLRC is the module used in place of the DL/I region controller.
  • IDMSDLLI module
    ── IDMSDLLI (the CA IDMS/DLI Transparency language interface used in place of native DL/I language interfaces) is for batch call-level DL/I application programs only.
  • IDMSDLHI module
    ── IDMSDLHI is the CA IDMS DLI Transparency language interface used for batch command-level DL/I (EXEC DLI) applications.
  • IDMSDL1C module
    ── IDMSDL1C is the language interface used with CICS call-level DL/I applications in z/OS.
  • IDMSDL1V module
    ── IDMSDL1V is the CA IDMS DLI Transparency language interface used for CICS call-level DL/I applications in z/VSE.
  • IDMSDLHC module
    ── IDMSDLHC is the language interface used for CICS COBOL command-level DL/I (EXEC DLI) applications in z/OS.
  • IDMSDLCV module
    ── IDMSDLCV is the language interface used for CICS COBOL command-level DL/I (EXEC DLI) applications in z/VSE.
  • IDMSDLHP module
    ── IDMSDLHP is the language interface used for CICS PL/I command-level DL/I (EXEC DLI) applications in z/OS.
  • IDMSDLPV module
    ── IDMSDLPV is the language interface used for CICS PL/I command-level DL/I (EXEC DLI) applications in z/VSE.
  • IDMSDLHA module
    ── IDMSDLHA is the language interface used for CICS Assembler command-level DL/I (EXEC DLI) applications in z/OS.
  • IDMSDLAV module
    ── IDMSDLAV is the CA IDMS DLI Transparency CICS Assembler command-level DL/I (EXEC DLI) applications in z/VSE.
  • IDMSDLVC database procedure
    ── IDMSDLVC is a system-provided database procedure for modifying variable-length records.
  • IDMSDLVD database procedure
    ── IDMSDLVD is a system-provided database procedure for retrieving variable-length records.
Each of the above components is discussed below. Additionally, diagrams are provided to illustrate the relationship among the components at runtime in both a batch and CICS environment.
Runtime Components in a Batch Environment
In a batch environment, CA IDMS DLI Transparency processing of a DL/I application program:
  • Begins in the IDMSDLRC module. The IDMSDLRC module's functions include
    • Issuing a call to the front-end (IDMSDLFE) module
    • Loading the DL/I application program and passing control to the DL/I application program
  • From the DL/I application program, call-level DL/I calls are passed to the language interface, IDMSDLLI. EXEC DLI type commands are passed to the command-level language interface IDMSDLHI.
  • The language interface transfers control to the IDMSDLFE module
  • IDMSDLFE issues, as appropriate, a BIND RUN-UNIT or a FINISH, or sends the DL/I call to RHDCDLBE
  • RHDCDLBE then converts the DL/I call to the appropriate CA IDMS/DB request
The following illustration shows the runtime components in a batch environment:
! Runtime_IF_Batch.png
Components in a CICS Runtime Environment
  • The DL/I application program issues a DL/I call through the language interface. The language interface locates the address of the IDMSDLFC module in the CICS common workarea (CWA) and passes control to IDMSDLFC.
  • IDMSDLFC is part of the IDMSINTC module created for CA IDMS DLI Transparency (see Section 5, "CA IDMS DLI Transparency Runtime Environment") and is the CA IDMS DLI Transparency's equivalent of native DL/I's online nucleus. At runtime, IDMSDLFC validates the call and control is passed to the IDMSDLFE module (the front end).
  • IDMSDLFE issues a BIND RUN-UNIT or FINISH, or sends the DL/I call information to RHDCDLBE (the back end).
  • RHDCDLBE converts the DL/I call to the appropriate CA IDMS/DB request.
The following illustration shows the runtime components in a CICS environment:
Runtime_IF_CICS.png
IDMSDLRC module
The IDMSDLRC module is the replacement for the DL/I region controller. In DL/I, the operating system executes a region controller and the region controller loads and passes control to the DL/I application program. IDMSDLRC performs the following functions:
  • Accepts from the JCL the user-specified parameters. In z/OS ,these parameters are specified in the JCL in the PARM clause of the EXEC statement; in z/VSE, they are specified in the JCL in the SYSIPT file. The parameters identify the DL/I application program to be processed and the IPSB that is to be accessed at runtime.
  • Issues a call to the front end (IDMSDLFE), requesting the front end to issue a BIND RUN-UNIT. Along with this call, IDMSDLRC provides the front end with the name of the IPSB to be used at run time.
  • Receives the addresses of the PCBs used by the DL/I application program.
  • Loads and passes control to the DL/I application program. As IDMSDLRC passes control, it provides the DL/I application with the PCB parameter list.
  • Issues a termination call to IDMSDLFE after the DL/I application has executed. This call requests the front end to issue a FINISH.
IDMSDLLI module
The IDMSDLLI module is used for batch DL/I application programs only. This module replaces the following DL/I language interfaces:
  • Native DL/I COBOL language interface (CBLTDLI)
  • Native DL/I PL/I language interface (PLITDLI)
  • Native DL/I Assembler language interface (ASMTDLI)
At runtime, the CA IDMS DLI Transparency user link edits IDMSDLLI to each DL/I application program to be processed by CA IDMS DLI Transparency. When link edited to the DL/I application, the IDMSDLLI performs the following functions:
  • Receives control on a DL/I call from the DL/I application program
  • Reformats the call parameter list and sends the list to the front end
  • Passes control to the front end, which establishes, controls, and terminates communication with the back end
    In XA environments, if the COBOL DYNAMIC link-edit optionis used, and the DL/I application program does not run in XA mode, relink module IDMSDLLI with RMODE=24.
IDMSDL1C module
IDMSDL1C is for use only under z/OS CICS for call-level DL/I applications. This module replaces the DL/I application interface resolving the entry points CBLTDLI, ASMTDLI, and PLITDLI.
IDMSDL1V module
IDMSDL1V is for use only under z/VSE CICS for call-level DL/I applications. This module replaces the DL/I application interface resolving the entry points CBLTDLI, ASMTDLI, and PLITDLI.
IDMSDLHI module
IDMSDLHI is for use with batch command-level (EXEC DLI) COBOL and PL/I programs in z/OS. This module replaces modules DFSLICBL, DFSLIPLI. IDMSDLHI must be ordered first in the link edit with the application program.
IDMSDLHC module
IDMSDLHC is for use with CICS command-level (EXEC DLI) COBOL programs in z/OS. This module replaces module DFHECI. IDMSDLHC must be ordered first in the link edit with the application program.
IDMSDLCV module
IDMSDLCV is for use with CICS command-level (EXEC DLI) COBOL programs in z/VSE. This module replaces module DFHECI. IDMSDLCV must be ordered first in the link edit with the application program.
IDMSDLHP module
IDMSDLHP is for use with CICS command-level (EXEC DLI) PL/I programs in z/OS. This module replaces module DFHEPI. IDMSDLHP must be ordered first in the link edit with the application program.
IDMSDLPV module
IDMSDLPV is for use with CICS command-level (EXEC DLI) PL/I programs in z/VSE. This module replaces module DFHPL1I. IDMSDLPV must be ordered first in the link edit with the application program.
IDMSDLHA module
IDMSDLHA is for use with CICS command-level (EXEC DLI) Assembler programs in z/OS. This module replaces module DFHEAI. IDMSDLHA must be ordered first in the link edit with the application program.
IDMSDLAV module
IDMSDLAV is for use with CICS command-level (EXEC DLI) Assembler programs in z/VSE. This module replaces module DFHEAI. IDMSDLAV must be ordered first in the link edit with the application program.
IDMSDLVC database procedure
IDMSDLVC is a database procedure provided with CA IDMS DLI Transparency for modifying variable-length records that correspond to variable-length segments. Before a variable-length record is modified, IDMSDLVC is called to maintain the length of the CA IDMS/DB variable-length record. IDMSDLVC is specified in a CALL sentence as part of the RECORD DESCRIPTION in the schema (see the
CA IDMS Database Administration Section
).
IDMSDLVD database procedure
IDMSDLVD is a database procedure provided with CA IDMS DLI Transparency for retrieving variable-length records that correspond to variable-length segments. Before a variable-length record is retrieved, IDMSDLVD is called to maintain the length of the CA IDMS/DB variable-length record. IDMSDLVD is specified in a CALL sentence as part of the RECORD DESCRIPTION in the schema (see the
CA IDMS Database Administration Section
).
CA IDMS DLI Transparency Front End
The CA IDMS DLI Transparency front-end components consist of the IDMSDLFE module and, if CA IDMS DLI Transparency is used under CICS, the IDMSDLFC module.
IDMSDLFE module
The IDMSDLFE module establishes, controls, and terminates communication with the back end (the RHDCDLBE module). When IDMSDLFE receives an initialization call from the IDMSDLRC module in a batch environment or from IDMSDLFC under CICS (see below), it performs the following functions:
  • Acquires work area
  • Issues a BIND RUN-UNIT to the back end (RHDCDLBE)
  • Issues a call to RHDCDLBE for PCB information
Once the initialization functions are complete, IDMSDLFE accepts DL/I calls from the language interface and performs the following functions:
  • Sends the DL/I calls to the back end.
  • Accepts the retrieved data and status information from the back end.
  • Receives from the back end the updated PCB control blocks, which are used to return retrieved data and status information to the DL/I application. When the DL/I application finishes executing, the front end receives a termination call from the region controller and performs the following:
    • Issues a FINISH to the back end
    • Frees storage
IDMSDLFC module
The IDMSDLFC module is a component in the reassembled IDMSINTC macro (see CA IDMS DLI Transparency Run-Time Environment). Used only under CICS, IDMSDLFC is initialized by a special signon transaction and performs the following functions:
  • Linking a CICS DL/I application with IDMSDL1C or any other CA IDMS DL/I Transparency language interface establishes the intent to use CA IDMS DLI Transparency (see CA IDMS DLI Transparency Run-Time Environment).
  • Receives control on a DL/I call from the DL/I application program.
  • Reformats the call parameter list and sends the list to the front end.
  • Passes control to the front end, which establishes, controls, and terminates communication with the back end.
CA IDMS DLI Transparency Back End
The back end consists of the RHDCDLBE module The back end processing is initiated by a BIND RUN-UNIT issued by IDMSDLFE. The back end performs the following functions during initiation of the run unit:
  • Loads the appropriate fixed IPSB
  • Acquires storage
  • Acquires PCB information from the IPSB and then uses the information to build the PCBs
Once the run unit is initiated, the back end performs the following functions for it:
  • Issues appropriate CA IDMS/DB calls to service DL/I requests
  • Accepts from CA IDMS/DB retrieved data and/or status information
  • Sends retrieved data and/or status information to the front end
After the DL/I application program has executed, RHDCDLBE receives a FINISH from either the front end (in batch processing) or IDMSINTC (in CICS processing) and terminates processing.