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.For example,
DLZACT TYPE=PROGRAM,PGMNAME=DLZBPC00,PSBNAME=(myPSB1,myPSB2...) - 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 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 page, ensure that VSEConnector.jar and cci.jar are in the Class path oder section.
- On the 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.