Previous Topic: CARD File DefinitionNext Topic: User-Supplied File Access Definition


IMS-DL/I Database Definition

This format of the FILE command defines the physical attributes of an IMS-DL/I database input file. The IMS-DL/I Database Definition command is coded as follows:

►►─ filename: ─┬─ INPUT ─┬─ DLI ─ RECORD=nnn ─────────────────────────────────►◄
               └─ FILE ──┘
filename:

Is a unique file name within the Reporting Facility program. The Reporting Facility automatically generates a one-character alphanumeric field, with the same name as the file name. It is to be used as a return code in conjunction with the GET command.

DLI

Indicates that this is an IMS-DL/I file. An 80-byte Communications Area is automatically allocated by the Reporting Facility to be used for communication between the DL/I interface program and the Reporting Facility.

On completion of a GET command, the Reporting Facility automatically returns the PCB feedback information to this area in a specific format. Use it in conjunction with the return code to determine the status of the I/O area. The format is as follows:

Field Name

Position

Description

PCBPROPT

1—4

Processing option

PCBSC

5—6

Status code

PCBDBDNM

7—14

Database name

PCBLEV

15—16

Segment level feedback

PCBSEGNM

17—24

Segment name feedback

PCBLFBK

25—28

Length of key feedback (fullword binary)

PCBFBK

29—80

Key feedback area

For a complete description of the contents and utilization of the PCB feedback area, see the relevant IBM publication.

RECORD=nnn

Is an unsigned numeric constant specifying the length of the data portion of the DL/I file to be accessed, plus an additional 255 characters for communication with DL/I. The system reserves the 255 characters of control information to be the first 255 characters of the I/O area.

The data accessed from a DL/I file is returned starting at location 256. The subsequent Format 1 DEFINE commands must define all data to be returned as being relative to 256.

The following is a schematic of the format of the I/O area as required by the DL/I interface program:

1—4

4-character function code

5—6

2–byte packed decimal number, denoting the number of segment search arguments (SSAs) to follow (maximum value is ten)

7—14

8–character segment name, specifying the segment to be retrieved

15—255

Optional SSAs

256—nnn

Returned data

Note the following:

The database name is returned in bytes 7—14 of the PCB feedback area after each DL/I call. You can, at any time, reference a different database simply by changing the contents of this field. You can use this method to access different databases even if only a single DL/I file is defined in the Reporting Facility program.

IBM imposes strict rules for coding SSAs and you must follow them precisely. A typical qualified SSA is structured as follows:

 (key/sequence fieldname = search argument)

The search argument is the comparative value against which the specified key/sequence field is to be checked and must therefore be the same length and format of the key/sequence field.