IMS DB – DL/I, BMP, MPP – Advanced Concepts

Big data
Big data


Batch message processing programs (BMPs)Programs that run as batch jobs but access databases that they share with online transactions. In other words, theses share online (message ques) as input, and sends output to database.

Transaction-oriented BMP
A BMP that accesses the message queue for input. It can also access databases and operating system files. Output can be sent to databases, operating system files, or a message queue. Only one input file can be associated with the message queue.
Batch-oriented BMP
A BMP that does not access a message queue for input. Databases and operating system files are available for input and output processing, and message queues are available for output.


Batch programsPrograms that can access private databases and operating system files directly. Batch jobs do not access message queues or databases shared with an online system. In IMS documentation, these are referred to as DL/I batch jobs.

Data Entry Database. This is a type of IMS fast path database that contains large volumes of data with a high rate of availability. Subset pointers help manage long chains of segment occurrences. One segment type is stored near the root segment and the occurrences are in chronological order.
Main Storage Database. A type of IMS fast path database that uses fixed-length root segments that reside in virtual storage for quick access. The segments can be related to a specific terminal or be defined so all terminals can access the data.


Generalized sequential access method- GSAM enables MVS™ batch programs and BMPs to access a sequential OS/VS data set as a database. The database is a root-only database, and the entire root segment represents a record. Unlike sequential OS/VS data sets, you can checkpoint and restart GSAM files just like DL/I databases.


Message processing programs (MPPs)IMS programs that process requests from terminals and from other programs. The requests or messages are stored in message queues accessible to the MPP. The MPP can perform required database access and write new messages to output queues for further terminal and program processing.

MPPs cannot access GSAM files. There are two types of MPPs

Conversational MPP
A type of MPP that saves data in a scratchpad area (SPA) during user think time, even though locks on the database are lost. IMS conversational mode is similar to CICS® pseudoconversational mode. IMS has no capability that is similar to CICS conversational mode.
Nonconversational MPP
A type of MPP that can process a single input message with, at most, a single response. No data can be saved during user think time (except for data saved on the screen or in a database).

Message Queue

A location in IMS where information being sent to an alternate terminal or to another transaction can be stored so IMS can handle the I/O to the terminal or schedule the other transaction to start processing. It is accessed through DL/I calls.


Message Format Services. Use this editing facility with IMS so that programs can access message data from a terminal. MFS enables you to customize the presentation of the data, but shields the program from panel formats and device dependencies by providing access to only the data required from the terminal.PCBProgram Communication Block. In IMS, this collection of information is related to an IMS resource that a program can use. IMS uses this control block to determine the resource being used and to return the results of an I/O operation against the resource to the program. IMS uses the following types of PCBs:

Represents an IMS logical terminal or a message from another program. A program uses DL/I calls for this PCB to read input from a terminal or program and write output messages back to that same terminal.
Represents the message queue for an IMS logical terminal or an alternate transaction. It differs from an I/O PCB because the alternate PCB can represent logical terminals other than the terminal from where the input message came. An alternate PCB is also known as a teleprocessing (TP) PCB.
An alternate PCB that sends a completed message immediately to its destination. A non-express alternate PCB does not send a completed message to its destination until a commit point. When this process is not successful, complete messages sent to an express PCB cannot be backed out. A message is complete when a PURG call is issued. You can force a PURG call by using the EGL close statement. An express PCB is also known as a teleprocessing (TP) PCB.
Represents a DL/I database that a program can access. In addition, the DB PCB specifies the data that the program can access, the segment or field level, and the type of processing valid with that database.
Represents a GSAM file that a program can access and contains the processing option available for the program.


A Program Specification Block. In IMS, a PSB is a set of statements that define the PCBs a program can use. The database PCBs identify the required databases, segments to be accessed, and database options for a given program. Alternate PCBs define message queues for terminals or other programs.Program switchA way of transferring control from one program to another. There are two types of program switches:

Deferred program switch
Occurs when Program A responds to the terminal and informs IMS to start another transaction that is associated with Program B on the next input from the terminal.
For a conversational MPP, the program modifies the SPA to specify the new transaction name before sending that name back to IMS through the I/O PCB.
For a nonconversational MPP, the program includes the next transaction name on the form so it is the first 8 bytes of the input message.
Immediate program switch
Occurs when Program A passes control directly to another transaction that is associated with Program B without responding to the originating terminal first.
For a conversational MPP, the program inserts the SPA to an alternate PCB that has its destination set to the new transaction name.
For a nonconversational MPP, the program inserts a message to an alternate PCB that has its destination set to the new transaction name.


The scratchpad area for IMS. The SPA is used for conversational processing to save data while the map is displayed during user think time.

Work database

A database that saves information about a running program during user think time. Except for defining a PCB for the work database or including it in your DB2® plan, you do not need to do any special processing for a work database.

Read more


Author: Srini

Experienced software developer. Skills in Development, Coding, Testing and Debugging. Good Data analytic skills (Data Warehousing and BI). Also skills in Mainframe.

Comments are closed.