DLI - Data Language Interface
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) andGN(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 codeindicating the success or failure of the operation, which applications must check for proper error handling.
- Call-Level Interface: Programs make explicit DLI calls (e.g.,
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.
- Optimize Segment Search Arguments (SSAs): Use qualified
SSAseffectively to narrow down searches and avoid unnecessary database scanning, significantly improving performance. - Implement Robust Error Handling: Always check the
status codereturned 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 (orCOMMITs 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) andGN(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.