Module 1: IMS Introduction
IMS- Introduction
IMS (Information Management System) is IBM's flagship database and transaction management system for mainframes. First built in the late 1960s for NASA's Apollo program, it is still the backbone of high-volume online transaction processing at banks, insurance companies, airlines and government agencies around the world.
IMS is really two products in one: IMS DB, a hierarchical database manager, and IMS DC (also called IMS TM), an online transaction manager. Both share the same data-access language, DL/I. This module introduces both halves and shows how they fit together.
What is IMS?
- IMS is a hierarchical DBMS: data is stored as a tree of segments (records) with one root segment and dependent segments below it.
- Programs access data only through DL/I (Data Language/I) calls such as GU, GN, ISRT, REPL and DLET.
- IMS DB handles the stored data; IMS DC handles thousands of concurrent terminal users sending transactions.
- It is famous for extreme reliability and throughput: a single IMS system can process tens of thousands of transactions per second with sub-second response times.
IMS DB vs IMS DC (TM)
- IMS DB (Database Manager): stores and manages hierarchical databases. Used by batch programs and by online programs through DL/I. Databases are defined with DBDGEN and accessed via PSB/PCB.
- IMS DC / TM (Data Communications / Transaction Manager): manages the online environment - terminals, message queues, transaction scheduling and Message Processing Programs (MPPs).
- A batch program talks directly to IMS DB. An online user sends a message to IMS DC, which schedules an MPP; the MPP then uses DL/I calls against IMS DB to do the work.
- You can run IMS DB without IMS DC (pure batch), but IMS DC always needs IMS DB underneath for data.

Where IMS is used
- Core banking: account inquiries, fund transfers, ATM/POS transaction switching.
- Insurance: policy administration and claims systems that must never lose a transaction.
- Airlines and logistics: reservation and cargo-tracking systems with very high concurrency.
- Government: tax, social-security and licensing systems with huge batch windows plus online access.
- Any shop where DB2 is not enough: IMS is often chosen when predictable sub-second response under massive load matters more than ad-hoc SQL queries.
IMS vs DB2 at a glance
- DB2 is relational (tables, SQL); IMS DB is hierarchical (tree of segments, DL/I calls).
- In DB2 you write a SQL statement and the optimizer picks the access path. In IMS the access path is predefined in the DBD, so performance is very predictable.
- IMS DC has no direct DB2 equivalent: CICS plays a similar online role for DB2/VSAM shops.
- Many large enterprises run both: IMS for the highest-volume core transactions, DB2 for flexible reporting and newer applications.
Key terms you will meet in this tutorial
- Segment: the basic unit of IMS data, like a record. One root segment plus dependent segments form a database record.
- DL/I: the data manipulation language - a set of call functions (GU, GN, ISRT, ...) issued via CALL 'CBLTDLI'.
- DBD: Database Description, coded with DBDGEN macros; defines segments, keys and hierarchy.
- PSB / PCB: Program Specification Block / Program Communication Block; defines which databases and segments a program may touch.
- SSA: Segment Search Argument; the "where clause" of a DL/I call.
- MPP: Message Processing Program; an online program scheduled by IMS DC per transaction.
- BMP: Batch Message Processing; a batch program that can access online IMS databases and message queues.
How the rest of this tutorial is organized
- Module 2: the hierarchical database model and DL/I database types.
- Module 3: segments, keys, parent-child relationships and DBD coding.
- Module 4: DL/I call functions with real COBOL examples.
- Module 5: IMS DC online processing - MPPs, transactions and message flow.
- Module 6: BMP vs MPP regions and checkpoint/restart processing.
