1.2.1 Supported DL/I Interfaces

The following table lists supported DL/I interfaces.

Table 1-7 Supported DL/I Interfaces

Interfaces Name Description
CBLTDLI The 0 entry for DL/I calls in IMS/TM on OS/39
AIBTDLI AIBTDLI is an entry function for the whole DL/I layer. The essential difference from CBLTDLI is that AIBTDLI uses AIB mask as the first parameter to pass control information in and out.
CTDLI CTDLI is an entry function for the whole CTDLI library. Any request to DLI is passed

1.2.1.1 CBLTDLI

1.2.1.1.1 Name

CBLTDLI - The 0 entry for DL/I calls in IMS/TM on OS/39.

1.2.1.1.2 Description

In Tuxedo ART for IMS, CBLTDLI is a function acting as the entry of DLI library. CBLTDLI calls appropriate function based on the function code passed to it.

1.2.1.1.3 Parameter(s)

Function Code, e.g. “GU ”; I/O PCB or alternate PCB, I/O area, MOD

1.2.1.2 AIBTDLI

1.2.1.2.1 Name

AIBTDLI - an entry function for the whole DL/I layer.

1.2.1.2.2 Description

AIBTDLI is an entry for DL/I calls in IMS/TM on z/OS. In Tuxedo ART for IMS, AIBTDLI is a function acting as an entry of the DL/I library. AIBTDLI gets the PCB address according to the PCB name specified in AIB mask, then calls appropriate function based on the function code passed to it with the PCB address found.

1.2.1.2.3 Parameter(s)

Function Call: e.g. 'GU '; AIB Mask, I/O Area: Input or Output Buffer. The following table 7 lists the AIB mask parameters.

Table 1-8 AIB Mask Parameters

Name Value Description Support
AIBID X(8) AIB Identifier, it must be set to "DFSAIBbb". It's for input only Yes
AIBLEN X(4) AIB Length, the length of the AIB mask. It must be set correctly in the application program and its minimum value is 128. It's for input only. Yes
AIBSFUNC X(8) AIB subfunction, the subfunction required by some DL/I calls. It must be set correctly by application program if it's required. Yes In IMS, we only support INQY subfunction.
AIBRSNM1 X(8) This field contains the PCB name. It must be specified by program correctly. For its setting, referring to AIBTDLI section. Yes
RESERV1 X(16) Reserved 16 bytes No
AIBOALEN X(4) AIB Output Area Length, the length of the I/O area specified for AIBTDLI Yes
AIBOAUSED X(4) AIB output area used length, the length of returned data in the I/O area. It's valid only in case the I/O area is used as output buffer. Yes
RESERV2 X(12) Reserved 12 bytes No
AIBRETRN X(4) AIB Return Code, the return code of AIBTDLI call. Partial support.

Currently, we only support setting this field in the following scenarios:

  1. INQY subfunction.
  2. DLI call upon DBPCB(excludes GSAM database).
For other scenarios, if operation fails, this field is set to 0x0900, You must check the related PCB status.

If operation is successful success, this field is set to 0x0000.

AIBREASN X(4) AIB Reason Code, the reason code of AIBTDLI call. Partial support.

Currently, we only support setting this field in the following scenarios:

  1. INQY subfunction.
  2. DLI call upon DBPCB(excludes GSAM database).
If operation is successful success, this field is set to 0x0000.
AIBERRXT X(4) AIB Error Code Extension, contains the additional error information No
AIBRSA1 X(4) AIB Resource Address, it's an output field to hold the PCB address corresponding to the PCB name specified in AIBRSNM1. In ART/IMS 64-bit, the PCB address is 8 bytes long, this field occupies actually 8 bytes, the other 4 coming from the first 4 bytes in the following reserved area. Yes But on 64bit platform, customer needs to use the AIBRSA1 plus the first 4 bytes in RESERV3 to get the right PCB's address.
RESERV3 X(48) In ART/IMS 64-bit, its firstly 4 bytes are borrowed to store the returned PCB address in combination with AIBRSA1, so it can't be used for any other purpose. No

The detailed rules for specifying PCB name in AIB mask field AIBRSNM1 is as follows:

I/O PCB
The name of I/O PCB must be specified as "IOPCBbbb",
Alternate PCB
The name of alternate PCB must be configured with "label=" in $appname.psb configuration file, and must be specified correctly in AIB mask, the name (label) of each alternate PCB must be unique in a single PSB (i.e., in a single $appname.psb file).
DB PCB
The name of DB PCB must be configured with "label=" in $appname.psb configuration file, and must be specified correctly in AIB mask, the name (label) of each DB PCB must be unique in a single PSB (i.e., in a single $appname.psb file).

1.2.1.3 CTDLI

1.2.1.3.1 Name

CTDLI - An entry function for the whole DL/I layer.

1.2.1.3.2 Description

In Tuxedo ART for IMS, CTDLI is a function acting as the entry of DLI library. CTDLI calls appropriate function based on the function code passed to it.

1.2.1.3.3 Parameter(s)

Function Call: e.g. 'GU '; PCB: I/O PCB or Alternate PCB, I/O Area: Input or Output Buffer.

The op argument specifies the DL/I function to be performed. The ctdli() call format depends on the function selected. For more information, see CBLTDLI.

Note:

When using CTDLI, SSA parameter must be a pointer parameter.