KR-229*; DIFs, DOFs, MIDs and MODs!
IMS is something we haven’t dealt with in KRs – so here’s one on IMS.
There are times in online programming when you might get the error MID and DIF are incompatible; what is MID and DIF?
MFS (Message formatting service): It is part of IMS TM (transaction manager) - which is basically the online portion of IMS (IMS DC). The database part is IMS DB.
What does MFS do?
Flow will be:
Terminal -> DIF -> MID -> Application program
Then application program processes info and sends output in this chain: Application program -> MOD -> DOF
KR-233*: IMS lands man on moon
We’ll have a few KRs on a topic we haven’t really touched upon much…
IMS (Information Management System); it was created in 1968 to enable realizing the dream of man walking on the moon; You must be saying - “IMS and NASA? No way – how did IMS help man get to the moon” – actually developing the spacecraft involved procuring material from a large number of vendors – managing all of that led to the creation of IMS; IMS generates around $1 billion revenue annually for IBM even today.
So now you have some arguments to counter people who say IMS is outdated!
You will generally encounter three types of IMS programs:
1.) DLI – pure batch program.
Typically these programs run when the online regions are down and the program will have exclusive access on the databases it accesses. You write a JCL to execute them – just like any normal COBOL program is executed.
2.) BMP (Batch message processing)
These are also like batch programs but they can coexist while the online region is running; no need to bring down anything for these to run. These programs will also be executed through a JCL but the parameters used will vary.
3.) MPP (Message processing program)
The normal online IMS DC programs which will have front end screens where the user can interact with the system.
More clues:
The PSB (program specification block) defines the PCB (program control block) for each DB or terminal accessed by the program.
So in the PSB a PCB TYPE=DB entry means it could be used by a MPP, BMP or DLI program while a PCB TYPE=TP means it could be used by a MPP or BMP program only.
KR-234*: PSB, PCB, DBD, ACB
DBD (database descriptor)
PSB (program specification block)
ACB (application control block)
PSB and application name should be the same for an MPP.
Have you seen PSBs where there are no IO PCBs (no terminals) mentioned but the code has an IO PCB? More on that in the next edition…
KR-235*: Patting CMPAT
CMPAT option
Reading all of this you begin to wonder how PCBs are used by IMS and by our programs – more on that in the next edition (guess we are going from complex to simpler topics; reverse KRs!)
Copyright © 2020 Sethu Subramanian All rights reserved. Reach me via email at ssbell @ gmail.com