Special DL/I situations for IMS TM programming

Special considerations during application programming for IMS™ Transaction Manager include mixed-language programming, using the extended addressing capabilities of z/OS®, COBOL compiler options for preloaded programs, and considerations for the DCCTL environment.

Mixed-language programming

When an application program uses the Language Environment® language-independent interface, CEETDLI, IMS does not need to know the language of the calling program.

When the application program calls IMS in a language-dependent interface, IMS determines the language of the calling program according to the entry name specified in the CALL statement:

  • CALL CBLTDLI indicates the program is in COBOL.
  • CALL PLITDLI indicates the program is in PL/I.
  • CALL PASTDLI indicates the program is in Pascal.
  • ctdli(…) indicates the program is in C language.
  • CALL ASMTDLI indicates the program is in assembler language.

If a PL/I program calls an assembler language subroutine and the assembler language subroutine makes DL/I calls by using CALL ASMTDLI, the assembler language subroutine should use the assembler language calling convention, not the PL/I convention.

In this situation, where the I/O area uses the LLZZ format, the LL is a halfword, not the fullword that is used for PLITDLI.

Using Language Environment routine retention

If you run programs in an IMS TM dependent region that requires Language Environment (such as an IMS message processing region), you can improve performance if you use Language Environment library routine retention along with the existing PREINIT feature of IMS TM.

Related reading: For more information about Language Environment, see z/OS Language Environment Programming Guide.

Using the extended addressing capabilities of z/OS

The two modes inz/OS with extended addressing capabilities are: the addressing mode (AMODE) and the residency mode (RMODE).

IMS places no constraints on the RMODE and AMODE of an application program. The program can reside in the extended virtual storage area. The parameters referenced in the call can also be in the extended virtual storage area.

Related reading: For more information about Language Environment, see z/OS MVS™ Programming: Assembler Services Guide.

COBOL compiler options for preloaded programs

If you compile your COBOL program with the COBOL for z/OS & VM compiler and preload it, you must use the COBOL compiler option RENT. Alternatively, if you compile your COBOL program with the VS COBOL II compiler and preload it, you must use the COBOL compiler options RES and RENT.

DCCTL

In a DCCTL environment, the application can only reference the address of an I/O PCB, alternate PCB, or GSAM PCB. An application program can use a PSB that contains PCBs referencing databases; however, these PCBs cannot be used during processing. Entry statements for COBOL, PL/I, C, and Pascal must refer to all PCBs included in the PSB, including PCBs which you might not be able to process, as PCBs must be included in the order in which they are listed in the PSB. This includes all PCBs prior to the last referenced PCB and can include DB PCBs. If you used a GSAM PCB, all PCBs ahead of it must be referenced.