Using the EGL debugger to debug VSE DL/I applications
You can debug EGL programs that access DL/I databases on
z/VSE.
The EGL debugger uses the VSE Connector Client to access DL/I databases
under CICS® on z/VSE. Most DL/I
operations are support, but there are some restrictions:
Only DL/I database PCBs are supported. The debugger cannot access
an I/O PCB, TP PCBs, or GSAM PCBs..
The following DL/I calls are not supported: GSCD and XRST.
All database PCBs in the IMS PSB must be named and the name must
match the corresponding pcbName property in the EGL PSB. Alternatively,
if your program is using the CBLTDLI interface, the PCBs in the EGL
PSB must be in the same position as the PCBs in the VSE PSB.
Configuring the host environment
Several prerequisites are needed on the host, for debugging:
The AIBTDLI interface must be installed.
DL/I VSE 1.11 or later must be installed.
APAR PQ39683 for DL/I must be applied.
Your CICS/DLI system should have all PSBs defined in the DL/I
online nucleus DLZNUCxx and it should have an active MPS system (in
the CICS log, look for the
line "DLZ093I MPS STARTED WITH APPLID=MYCICS"). The online nucleus
must have an entry for the program DLZBPC00 and any PSB that you need
to access remotely.
The DL/I task termination exit DLZBSEOT must be resident in the
SVA.
In case above requirements are not met, you get a exception telling
that the DLI Plugin is disabled.
CAUTION:
The following exception is displayed if
the requirements are not met:
DLI Plugin is disabled.
Local workspace configuration
Take the following actions in your local workspace to enable remote
debugging:
On the Window > Preferences > EGL > Debug page,
clear the Set systemType to DEBUG option. This
will force EGL to use the system type from the build descriptor option.
To use the Remote DL/I for VSE, the EGL Build Descriptor used
for debugging will need to be set as follows:
destHost
The VSE host name or IP address.
destUserID
The userID for connecting to the VSE host.
destPassword
The password for connecting to the VSE host.
destPort
The port number that the VSE Connector Server is listening on.
If this option is not specified, port 2893 will be used.
imsID
The APPLID of the CICS region to be used for Remote DL/I access
(the CICS region must have an active MPS system).
imsPSB
The name of the host PSB to use for debugging. This overrides
the PSB option in the EGL debugger preferences.
system
Either VSEBATCH or VSECICS.
debugTrace
Set this to yes if an error occurs with the debugger. Trace output
is written to the Rational® Business Developer console.
Set the EGL Debug preferences as follows:
On the Window > Preferences > EGL > Debug page,
ensure that VSEConnector.jar and cci.jar are
in the Class path oder section.
On the Window > Preferences > EGL > Debug > Debug
IMS DLI page, enter the following information:
ConversionTable
Defines the language of the host.
PSB Name
Select one of the following options for specifying the PSB name:
Review the build descriptor option imsPSB
A non-blank value in build description option imsPSB takes
precedence over any other source of PSB name.
Prompt user for PSB name
At the start of each debug session, the user is prompted to enter
the PSB name used to access DL/I data. With the ODBA interface, the
PCB must be named and must match a PCB in the PSB defined either in
the program for IMS™ or in dliLib.psbData for CICS.
Use PSB name from DLILib.psbData
The default for CICS. The
program still uses a DL/I property for transaction commit/rollback
determination, but the PSB name comes from the psbData record
in dliLib.
Use program name for PSB name
The default for IMS. This
is either the value of the alias property
(if used), or the program name. This value is folded to upper case.
The EGL Debugger requires one of the following in your
EGL program:
For callInterface = DLICallInterfaceKind.CBLTDLI, the EGL PSB
must have the PCBs in the same order as in VSE PSB in terms of the
number of PCBs and their respective positions.
For callInterface = DLICallInterfaceKind.AIBTDLI , which is the
default if no callInterface option is specified, the PCBs in the EGL
PSB must have the same name as the PCBs in the VSE PSB.