Defining the language interface module

In order for an IMS application program to use the language interface module, the application program modules must be bound using the IMS reenterable DL/I language interface. IMS provides the DFSLI macro, which you can use to generate a language interface module. This topic describes the DFSLI macro and its parameters.

In order for an IMS application program to use the language interface module, the application program modules must be bound using the IMS reenterable DL/I language interface. The true attributes must be specified; for example, if a module is reusable only, do not specify RENT.

Restriction: IMS does not support dynamic calls to the language interface.

To make dynamic calls, provide the RMODE value at bind time so that the language interface is shown below the 16 MB line.

The IMS DL/I language interface is not reenterable. Any IMS application programs that were designed to be reenterable or serially reusable can use external subsystem resources only after being bound with the IMS language interface.

Important: IMS and Db2 for z/OS® share a common alias name, DSNHLI, for the language interface module. Keep this in mind when concatenating your libraries to ensure the correct order.

For subsystems other than Db2 for z/OS, IMS provides a language interface module, DFSLI000, which supports the external subsystem interface. DFSLI000 passes a language interface token (LIT) value of SYS1. The installation can use this module or it can define its own language interface if it wants to use a LIT value other than SYS1. When two or more external subsystems are accessed by the IMS system, the installation must define its own language interface modules because each subsystem has a unique LIT.

IMS provides the DFSLI macro to assist the installation in generating a language interface module. The code necessary to perform the language interface function is generated in the DFSLI macro expansion. The IMS macro library must be supplied when the macro statements are compiled to generate the module. The format of this macro is as follows, where user-supplied values must be substituted for the x's.
DFSLIxxx   DFSLI   TYPE=V2DB,LIT=xxxx
           END
where:
DFSLIxxx
Specifies the CSECT name for the module.

Recommendation: Make the CSECT name match the bind name of the language interface module.

For the IMS-supplied language interface module, the value for this parameter is DFSLI000.

TYPE=
Specifies the language interface type to IMS. The only value that you can enter for this parameter is V2DB.
LIT=
Specifies the language interface token that relates this language interface to an external subsystem with their respective specifications in a PROCLIB member entry as the LIT and SSN parameters. The IMS-supplied language interface module DFSLI000 uses a LIT value of SYS1.

Example: When IMS issues an external subsystem request, IMS knows the target subsystem by the LIT used in the request. For example, consider the case of an IMS dependent region accessing two external subsystems ESS1 and ESS2.

Although a region can communicate with two or more external subsystems, an IMS application can access only the external subsystem referred to in the bound language interface. However, you can alter the SSM member to route application requests to a different external subsystem from the subsystem defined in the language interface. Alternatively, you can use the DFSESS entry point in the language interface module.