Home > Mainframe MVS > What is IMS Transaction Manager
What is IMS Transaction Manager
User Rating: / 18
Written by Philip L Yuson   

IMS is a transaction manager and database system for the mainframe. This article provides a brief overview of the transaction manager.

In a previous article (What is an IMS Database), I discussed about IMS databases. IMS is more than a database system. It also manages online transactions. If you need to know what an online transaction is, please read my previous article ( Types of Processing on the Mainframe: Batch and Online)

Message Format Services (MFS)

While modern systems are just discovering that it is better to separate the data from the presentation layer, this concept has been implemented decades ago in IMS. In IMS, the presentation component allows a developer to define how data is to be presented on the terminal. This component is called a Message Format Service (MFS). Since mainframe terminals are limited to text, MFS allows a developer to put labels and data on specific locations in the terminal.

Through MFS, IMS can strip off data related to presentation and data needed by the program. Once IMS has done that, the data is passed on to the program as a string.

IMS has three types of regions: IMS Control Region, IMS Message Processing Region and IMS Batch Message Processing Region. All these regions are started tasks under MVS.

IMSVS Transaction Manager

IMS Control Region

An IMS control region is responsible for managing incoming transactions, scheduling the programs to be executed by these transactions, managing database accesses and database update logging among other things. For the control region to manage the resources, all these should be defined through a process called an IMSGEN.

In an IMSGEN, DBD, PSB, transactions and programs are defined. While the PSBs identify the databases they use, transactions need to be related to programs in an IMSGEN. Requests to access databases are centralized in the control region.

IMS Message Processing Region (MPR)

The MPR is a region that processes programs used by online transactions. The programs are scheduled by the control region. The program accesses the input from the transaction by calling the DL/I interface. The DL/I interface passes the transaction input to the program and the program processes the input.

If there is a need to access the database, the program calls the DL/I interface. The DL/I interface passes the request to the control region that performs the access on behalf of the program. Once the program is done processing, it normally sends a response. The response is passed to the control region again through the DL/I interface.

The control region accepts the response and formats the response through the MFS to be displayed on the terminal. The control region can control several MPRs at the same time.

IMS Batch Message Processing Region (BMP)

The BMP is a region that processes batch jobs that use IMS databases. Programs running in BMP processes inputs in batch. User interaction is not available for BMP. The BMP works under the control of the IMS control region.

All accesses to the database are passed to the control region through the same DL/I interface used by the online program. BMPs are scheduled through submitted batch jobs. Once the job is submitted and is executing, the BMP interacts with control region to request access to databases.

The control region can control several BMPs at the same time.

Modernizing IMS Transactions

Modernizing IMS TransactionsThere are several products in the market that aim to modernize IMS transactions. Some of the older technologies use screen scraping technology. This basically emulates a mainframe terminal and reads the screen. It parses the screen for the fields it wants and displays it in a format that can interface with other applications.

Other newer technologies work with the IMS system itself. One of them re-uses existing IMS transactions and works on the data level (before the data is formatted for display). Instead of parsing the terminal, these parse the data and can wrap the needed data into HTML or XML. In the case of HTML, the IMS transaction can be displayed in a more user friendly format. While in the case of XML, the IMS transaction can work as a service consumed by a web application.

Another approach is to access the IMS database directly either by connecting to IMS through an ODBC/JDBC driver. With this, a web service or Windows program can access IMS using SQL.

Copyright: © 2017 Philip Yuson