396 Using IBM Application Development Tools for z/OS and OS/390
19.1 Traditional methods of debugging under IMS
Traditionally, the hardest part of debugging preparing for debugging of an IMS program or
transaction is setting the runtime options.
For compilation, the instructions given in the individual language chapters should be used.
For runtime options, there has traditionally never been a way to specify command line
runtime options under IMS. In releases prior to IMS V8, you must use one of the following
ways to set the runtime options for a transaction or program:
An LE CEEUOPT
The #pragma runopts (for C/C++)
PLIXOPT for PL/I
MFI single terminal mode is not available under IMS. MFI VTAM or the Remote Debugger
should be used.
19.2 Debugging with IMS V8 and above
If you have Debug Tool Utilities and Advanced Functions installed on your system and are
using IMS version 8. There are some new DTU facilities that allow you to easily change your
LE runtime options “on the fly”. The new V4.1 Debug Tool interface uses the IMS Single Point
of Control facilities that are described in the IMS books, but provides an easy-to-use full
featured interface tailored towards Debug Tool users.
In the past, the only way to provide the TEST runtime option that is required to bring up
Debug Tool was to compile it into the program (with a CEEUOPT or using #pragma runopts
with C/C++). This caused problems because:
All users of the program were affected by this change, not simply the person debugging
Two people could not debug the same program simultaneously because only one VTAM
LUNAME or TCP/IP address could be given.
The CEEUOPT or program had to be recompiled and relinked every time your TCP/IP
address or available VTAM terminal changed.
A second set of features are usable without IMS Version 8 and allow you to Create or Edit
setup files for your IMS program using Debug Tool Utilities.
19.2.1 Linking an application to allow the managing of runtime options
IMS uses a customized version of the LE CEEBXITA to allow LE runopts to be specified. This
exit is called DFSBXITA and is found in SDFSSMPL. This exit can be used in one of two
1. You can assemble and link it with your application in order to allow dynamic changing of
the LE runtime options for that application only.
2. Your system programmer can assemble and then link it into the SCEERUN(CEEBINIT)
module. When this SCEERUN is used with your IMS region, it will allow the new
functionality to be used with ALL applications running in the region. The JCL shown in
Example 19-1 is the assembled DFSBXITA that was in HLQ.MY.OBJECT(CEEBXITA).
Chapter 19. Using Debug Tool with IMS 397
Example 19-1 JCL
//LKED EXEC PGM=IEWL,REGION=4M,
//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
// DD DSN=CEE.SCEERUN,DISP=SHR
//MYOBJ DD DSN=HLQ.MY.OBJECT,DISP=SHR
//SYSLMOD DD DSN=<>,DISP=SHR
//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(3,1)),
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DDNAME=SYSIN
//SYSIN DD *
19.2.2 A tour of the new DTU IMS facilities
1. Option 4 on the Debug Tool Utilities panel as shown in Figure 19-1 provides the new IMS
debug support facilities.
Figure 19-1 Debug Tool Utilities
398 Using IBM Application Development Tools for z/OS and OS/390
2. Figure 19-2 allows you to choose from two options:
– The first option allows you to manage your LE runtime options dynamically.
– The second option helps in managing IMS message regions.
We first select option 1 to manage the LE runtime options.
Figure 19-2 IMS panel
3. The panel shown in Figure 19-3 requires you to enter the IMS Plex ID. All other fields are
optional and can be used to reduce the number of entries on the following panel. Unless
you have a large number of entries or know specifically which entry you are looking for, it
may not be a good idea to specify any query qualifiers.
This facility allows the specification of runtime options to be as global as the whole IMS
plex, or as specific as a given program in a given transaction from a given terminal
submitted by a specific userid. Simply stating the transaction you are looking for may not
find all profiles that apply to that transaction.