Mainframe Path Start learning free
Core9 min readLesson 1 of 4

What IMS is and where it runs

IMS has two parts: IMS DB, a database that stores data as trees rather than tables, and IMS TM, a transaction manager that queues and runs online transactions. Many sites use both; some use IMS DB with CICS, or IMS TM with DB2.

An old system doing current work

IMS was created in the late 1960s, originally to track parts for the Apollo space programme. It is still in active use and development, because it is extremely fast for high-volume, predictable access, and because the systems built on it hold decades of business rules. If you join a large bank or insurer, there is a fair chance some account or policy data lives in IMS.

The two halves

IMS components
IMS DB
Hierarchical database managerData stored as segments in treesAccessed with DL/I callsUsable from IMS TM, CICS, batch and Java
IMS TM
Transaction manager, like CICSReceives input messages and queues themSchedules programs in dependent regionsUsable with IMS DB or DB2 data

Regions: where programs run

IMS runs as a control region plus several dependent regions, each its own address space. Your program never runs in the control region; it runs in one of these:

RegionWhat runs there
MPP (message processing program)Online transactions: get an input message, process it, send a reply
BMP (batch message processing)Batch-style programs that run while IMS is up and share its databases with online work
IFP (Fast Path)Very high-volume, simple transactions that bypass the normal message queues
JMP / JBPJava message and batch programs
Batch DL/I (DLI or DBB)Stand-alone batch with its own copy of the IMS database code; databases are not shared with online

Alongside these are DBRC, which records backups, logs and recovery information in the RECON datasets, and IMS Connect, which lets TCP/IP clients such as web services and Java applications send transactions to IMS.

Common mistakes

Thinking IMS is just a database

IMS is two products in one. A job ad for 'IMS' may mean IMS DB, IMS TM or both; ask which.

Running batch DL/I against databases online needs

A batch DL/I job has its own database access. To update databases while online IMS is using them, programs run as BMPs.

Assuming IMS is being retired everywhere

Many IMS systems are actively maintained and modernised, for example by exposing transactions as APIs through IMS Connect.

What you will see at work

Key terms

Check your understanding.
Take this lesson's quiz and save your progress. Free.

Take the lesson quiz
Hierarchical data: segments, DBDs and PSBs →