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.
- If you are running an IMS dependent region with an application program using the COBOL dynamic option, the IMS library must be concatenated first.
- If you are running an application program strictly under Db2 for z/OS, be sure the Db2 for z/OS library is concatenated first.
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.
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.
- You already have a default language interface module DFSLI000,
as specified by the default LIT,
SYS1
. You now generate a second language interface DFSLI001 with a LIT ofSYS2
. - Define two entries in the PROCLIB SSM member. The first entry
points to ESS1 with
LIT=SYS1
. The second entry points to ESS2 withLIT=SYS2
. - Bind IMS application programs accessing ESS1 with the IMS-provided language interface module DFSLI000.
- Bind IMS application programs accessing ESS2 with the language interface module that you have generated, DFSLI001.
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.