DLI Vs BMP
Answers were Sorted based on User's Feedback
Answer / sd
IMS programs can be run two ways: under IMS’s control, as a
BMP, or as a stand-alone batch job, known as DLI.
BMP jobs have these features:
Run in conjunction with an IMS control region, an MVS
started task that controls all online and BMP programs
Require no DD statements for the databases; the IMS control
region contains the knowledge of the databases.
Require an ACB gen to process.
Require the IMS DBDLIB in the JCL ONLY when GSAM databases
are being used
Does not require the allocation of a log dataset, as there
is one log dataset of all of IMS
BMP jobs must run on the machine which is processing the
IMS control region. This is controlled by job class. Most
installations have specific job classes for BMP jobs.
DLI jobs have these features:
Run as stand-alone jobs with no communication or knowledge
of the online IMS system
Require DD statements for all databases
Can be run with an ACB, or with the DBD and PSB (IMS will
dynamically create the ACB at execution time)
Require the DBDLIB or ACBLIB DD statement
Require the allocation of a log dataset if recovery is to
be performed
Is This Answer Correct ? | 23 Yes | 2 No |
Answer / joshna
Can u Please tell u r opinion with correction (don't ever
think... be sure)
Is This Answer Correct ? | 10 Yes | 3 No |
Answer / ben richardson
BMP is a bit of a misnomer because only some BMP will
access message queues. When they do they can be WFI or non-
WFI. WFI will run until it is shut down by command or
message (special instruction in the message to shut down).
Non-WFI BMP will run until status code = QC (I remember it
as Quit Calling). The messages are exhausted and the BMP
ends. This is typically used for triggering massive
updates from an order entry system requiring that parts
master explosion and shop floor inventory transfers occur
in batch or by BMP inserting many discrete transactions,
limited by class to only a few MPP regions so as to prevent
slowing down transactions originated by terminals.
DLI can access databases on-line or off-line, depending on
whether you have enabled BLDS Block Level Data Sharing via
the IRLM. You cannot share to DLI using the default PI
Locking (program isolation). When DLI is used for updates
it will write logs on IEFRDER. When it fails you must
sometimes run log term utility in dupe mode (disk log ran
out of space), then run the repaired log into BBO Batch
Back-Out via IMSLOGR DD with a new IEFRDER DD dataset to
log the backout. This becomes more complicated when DLI is
also updating DB2 via connection of the SSM or DDITV02
parameters. Connect the DLI BBO in the same way but be
aware DDITV02 will not be read unless DFSBBO00 is running
as an application into DSNMIN10... getting too weird huh?
Anyway, if the IRLM is running and databases are on-line
with SHRLEVEL=3, then BLDS will work. Dynamic allocation in
the DLI address space should be used where the RECONS and
the DBD DDNAMES are in a single MDALIB... Protection should
also be considered in the form of FORCER (forced
registration) in the production RECON.
Why not do this? I'm glad you asked. When DLI fails you
will have retained locks. On-line access will be
restricted until BBO succeeds. Your 24x7 availability will
be impacted. BMP backs out to the last chkpt and can
restart with CHKPT=LAST, no other is allowed when BLDS is
sharing with multiple IMS systems or with DLI batch. This
is because merging the logs by timestamps is required and
you cannot be selectively integrating a restart of any UOW
which has already commited updates in a checkpoint. Once
the locks were released the data was updatable by other
UOWs in either MPP, BMP, or DLI modes... from same or
different address space buffers (DFSVSAMP DD). BLDS
forfeits full backout of BMP or DLI jobs when applications
make mistakes and want a do-over.
In my 30 years of IMS at AT&T, AMEX, PCS/CVS Caremark I
have found that DLI is less and less desirable and BMP can
always be used instead. BMP will improve performance where
data concurrency is desired for readers, since the updated
buffers can be read uncommited by PROCOPTs GO, GOT, GOTP.
Also consider that large dedicated buffers in the control
region exceed your batch DLI address space region in many
cases and allow BMP to read tons of database records
without I/O. DLI is guaranteed to use I/O for every new
record and cannot have good buffer hits unless there is
frequent access to the same reoord AND no on-line UOW is
invalidating the buffers through the IRLM.
My conclusion -- Don't use DLI except for batch only
databases... databases that are never used on-line. That
is pretty strong, but that's my opinion.
Is This Answer Correct ? | 6 Yes | 0 No |
Answer / santhosh
Most of the answers given above are wrong in one way or the other...
Please refer the following link guys...
http://www.sstutor.com/kr/kr229235.aspx
Note: Please avoid posting your own theories in public forums.No offense meant.
Is This Answer Correct ? | 7 Yes | 2 No |
Answer / mahesh vasudevan
BMP is a Batch message Processing that means the online
databases are accessed through batch schedule that is by
submitting a JCL. While DL/I can be run to access the
databases while allocated to online or offline or even to
your own copy of database datasets.
But In general some shops only allow DL/I when the
databases are down and in the mainframe legacy environment
if a shop uses DL/I then it is run in the batch night
schedules when the databases are offline.
Many shops have converted DL/I to BMP for many reasons that
include easy maintenance ; no need for batch backout etc.
It is fair and easy to have online(MPP) and BMPs ...but if
the user wants to run test against his own dataset then
DL/I serves better.
Keep in mind about the different flaours of BMP also.
Is This Answer Correct ? | 7 Yes | 3 No |
DL/I-
No data communication services are required
databases are accessed through offline
transactions are batch oriented and saved in file
application programs run through jcl
BMP-
Runs in two ways-
transaction oriented
-can read & write online message queues
-process online files & databases
batch oriented
-can read only massage queues
-can process online databases in batch mode,send messages to the message queue.all are scheduled by jcl
Is This Answer Correct ? | 3 Yes | 1 No |
Answer / ben richardson
I did not stress strongly enough -- BMP backs out to the
last checkpoint -- AUTOMATICALLY. You don't every have to
make a BMP back out with any JCL or utility. Even if the
IMS subsystem fails and is restarting, BMP backout will be
AUTOMATIC.
Is This Answer Correct ? | 2 Yes | 0 No |
Answer / s
BMPs require the IMS control region to be running and can
run programs that process messages off the IMS Message
queue,called transaction-oriented BMPs as well as Batch-
oriented BMPs that do not process IMS messages. Both types
have access to IMS databases.
DLI are applications that only use IMS Database functions
and they run in DLI Batch address space.
Is This Answer Correct ? | 2 Yes | 4 No |
Answer / joshna
DLI- it is Batch processing.
BMP- batch message processing(why batch message? - actually
messages are inputs for online processing but it is a
special type of batch processing whose inputs can be
messages some times/ batch job that runs in an online
region)
there is no point of test,dev or prod for these both tyes
of processing possible in production also
IMS online region will be down when batch processing DLI is
goin on( usvally batch schids run at night time)
BMP processing happens only when MPP regions are running
some times it is possible that BMP processing can run even
though no active MPP region is running
Practical example of BMP:
from morning till evening there may be many onlin
transactions occuring for a particular system.
each transaction updates or modifies database seperately.
instead of allocating locks to database resource all the
changes to database are captured on flat files and at end
of day when onlines are going to shutdown a BMP job is run
with the above said file as input to update all changes to
database at once(specific for a particular system)
Usvally BMP's are run before onlines shutdown.
Correct me if i am wrong
Is This Answer Correct ? | 8 Yes | 13 No |
What is difference between concurrent image copy and online image copy?
What is the maximum number of segment types allowed for a single database?
I found some good questions/answers regarding IMS here:
Static & Dynamic PSB
What is batch dl/i mode?
What are the processing modes available in ims db?
What is a Hierarchy path?
How man key fields and search fields can a segment have?
What is the disadvantage of dynamic generation of acb?
what is the maximumm length of account information in job card of a jcl?
How many PCB?s can be coded within a PSB?
What is the need for a secondary index in ims?