Modernization Hub

DLI - Data Language Interface

Enhanced Definition

DLI, or Data Language Interface, is the application programming interface (API) used by programs to interact with IBM's Information Management System (IMS) databases. It provides a standardized set of calls for application programs (such as those written in COBOL, PL/I, or Assembler) to access, manipulate, and manage data stored in IMS hierarchical databases.

Key Characteristics

    • Call-Level Interface: Programs make explicit DLI calls (e.g., GU, GN, ISRT, REPL, DLET) embedded within their code to perform database operations.
    • IMS DB Specific: It is the primary and native interface for accessing IMS hierarchical databases, often referred to as DL/I databases.
    • Program Specification Block (PSB) Dependent: DLI calls operate within the context of a PSB, which defines the application program's specific view (Program View) of the database structure and the segments it can access.
    • Procedural Navigation: Requires the application program to explicitly navigate the hierarchical database structure using calls like GU (Get Unique) and GN (Get Next) to locate desired segments.
    • Segment-Level Operations: Data manipulation occurs at the segment level; programs retrieve, insert, update, or delete entire segments rather than individual fields.
    • Status Codes: Each DLI call returns a two-character status code indicating the success or failure of the operation, which applications must check for proper error handling.

Use Cases

    • Batch Processing: COBOL batch programs extensively use DLI to process large volumes of IMS database records for tasks like payroll, billing, or end-of-day reporting.
    • Online Transaction Processing (OLTP): CICS transactions interact with IMS DB via DLI calls to handle real-time data access and updates for customer inquiries, order entry, or inventory management.
    • Data Extraction and Loading: Utility programs written in various languages utilize DLI to extract specific data from IMS databases for reporting or migration, or to load data into IMS.
    • Database Maintenance: Programs developed to perform specific database maintenance tasks, such as reorganizing data or correcting inconsistencies, often use DLI.

Related Concepts

DLI is fundamentally intertwined with IMS DB (Information Management System Database), serving as the sole programmatic interface for applications to interact with its hierarchical data structures. It works in conjunction with a Program Specification Block (PSB), which defines the application's specific view of the database, and a Database Description (DBD), which describes the physical structure of the IMS database. DLI calls are typically embedded within COBOL or PL/I programs, which are then compiled and executed under z/OS, often managed by CICS for online transaction processing or as standalone batch jobs.

Best Practices:
  • Optimize Segment Search Arguments (SSAs): Use qualified SSAs effectively to narrow down searches and avoid unnecessary database scanning, significantly improving performance.
  • Implement Robust Error Handling: Always check the status code returned by DLI calls and implement comprehensive error handling routines to gracefully manage database errors and prevent program abends.
  • Manage Commit Points: For update programs, establish frequent SYNCPOINTs (or COMMITs in CICS) to release locks, ensure data integrity, and reduce the impact of potential rollbacks, especially in long-running batch jobs.
  • Efficient Database Navigation: Understand the hierarchical structure of the IMS database and design DLI calls to navigate efficiently, minimizing redundant GU (Get Unique) and GN (Get Next) calls.
  • Utilize Program Views (PSBs): Design PSBs to provide the most restrictive view necessary for the application, enhancing security and simplifying program logic by hiding irrelevant segments.

Related Vendors

ABA

3 products

ASE

3 products

IBM

646 products

Tone Software

14 products

Trax Softworks

3 products

Related Categories

Operating System

154 products

Automation

222 products

Databases

211 products

Transactions

29 products