Adding support for debugging under CICS
To debug applications that run in CICS®, z/OS® Debugger requires the following:
- Language Environment®. Refer to the Language Environment installation and customization information for more information.
- Do the steps described in this chapter.
- CICS version 2.2 or earlier: you must use DTCN.
- CICS version 2.3 or later:
either DTCN or CADP. If you choose to use CADP, read the following
topics for information on additional installation and setup tasks:
The application debugging profile manager
in Supplied TransactionPreparing to use debuggers with CICS applications
in Application Programming GuideSetting up the debugging profiles data sets
in System Definition Guide
To add z/OS Debugger support for CICS applications:
- Verify
that the current z/OS Debugger resources
are defined in the CICS CSD
and installed in the CICS region.
The CICS definitions are in
the
EQACCSDandEQACDCTmembers of thehlq.SEQASAMPdata set.- If your site policy is to define the Transient Data queues by
using DCT macro definitions, add the definitions in the EQACDCT member
to your DCT and reassemble it.
If your site uses COBOL or PL/I separate debug files, follow the instructions in EQACDCT to define the appropriate queues to CICS.
- Add the z/OS Debugger definitions
to the CICS CSD. The following
two members are provided in the
hlq.SEQASAMPdata set:- EQACCSD, which contains the resource definitions for the group EQA.
- EQAWCCSD, which contains JCL to apply the definitions which are in EQACCSD.
- If your site policy is to define the Transient Data queues by
using DCT macro definitions, add the definitions in the EQACDCT member
to your DCT and reassemble it.
- Update
the JCL that starts CICS:
- Update the
DFHRPLconcatenation in the CICS region startup JCL to include the following libraries:Table 1. Libraries to be included in DFHRPL Library Description hlq.SEQAMODz/OS Debugger library
In the
DFHRPLconcatenation,hlq.SEQAMODmust be placed before any other library that also containsCEEEVDBGfor z/OS Debugger to get control of a debug session.Defining the
hlq.SEQAMODdata set as a CICS LIBRARY resource is not supported. It must be included in theDFHRPLconcatenation.SCEECICSz/OS Language Environment runtime library SCEERUNz/OS Language Environment runtime library SCEERUN2z/OS Language Environment runtime library
Specify this library if it is required by your application.
MIGLIBSIEAMIGEz/OS system libraries
These libraries are needed to debug routines compiled with Enterprise COBOL V5 and V6.1
TESTand Enterprise COBOL V6.2 (and later)TESTorTEST(NOSEPARATE). - Remove any data sets from the concatenation that refer to old releases of z/OS Debugger.
- Include
EQA00DYNandEQA00HFSfrom the debugger'shlq.SEQAMODdata set in theSTEPLIBconcatenation by either of the following ways:- Use the Authorized Program Facility (APF) to authorize1 the
hlq.SEQAMODdata set and add the data set to the STEPLIB concatenation. - Copy2 the
EQA00DYNandEQA00HFSmodules from thehlq.SEQAMODdata set to a library that is already in theSTEPLIBconcatenation. - Place hlq.SEQAMOD in the system link list and use the Authorized Program Facility (APF) to authorize it1. For more information, see Setting up the link list data set (SEQAMOD).
- Use the Authorized Program Facility (APF) to authorize1 the
- Ensure that the JCL does not include DD statements for
CINSPIN,CINSPLS,CINSPOT,IBMDBGIN, orIGZDBGIN. - See Storing DTCN debug profiles in a VSAM file to determine if you want to store DTCN debugging profiles in a VSAM data set. If you do, follow the instructions in that topic to add the EQADPFMB DD statement that refers to the VSAM data set.
- Update the
- For any terminal that z/OS Debugger uses
to display a debugging session, do the following tasks:
- Verify that the CICS TYPETERM
definition specifies a minimum value of 4096 for the
RECEIVESIZEattribute and sets theBUILDCHAINattribute to YES. - Enable either color or highlighting. For best usability, enable both and the ability to query the screen size. To enable these three functions, verify that the CICS TYPETERM definition specifies EXTENDEDDS. For more information, refer to the CICS Transaction Server for z/OS Resource Definition Guide.
- Under CICS, z/OS Debugger can use a screen as large as 10922 characters (for example, 68x160 can be used, but not 69x160), and provides automatic switching from the application's screen size to the physical screen size. Larger screens can enhance user productivity. CICS selects the TYPETERM to use from the BIND information given to it from VTAM®. Ask your systems programmer to ensure that VTAM passes the screen sizes through to CICS.
- Verify that the CICS TYPETERM
definition specifies a minimum value of 4096 for the
- Verify that users can run the
CDT#transaction without receiving any errors.If the
CDT#transaction runs successfully, no messages are displayed. You might seeX-SYSTEMafter you press Enter. This disappears when the transaction finishes and the keyboard unlocks. - If
you are running your CICS programs
in a multi-region CICS environment:
- Define the DTCN transaction name the same across all local and remote systems. If the DTCN transaction name is changed, or if a DTCN transaction is duplicated and given a different name, change the name on all systems.
- If a debugging session might run in a region that is different
from the one where DTCN or CADP was used to save the debugging profile,
use the PLTPI program EQA0CPLT with the CICS start
up parameter
INITPARM=(EQA0CPLT='NWP'). - If you are using DTCN, ensure that the region shares the debug
profile repository. See Sharing DTCN debug profile repository among CICS systems for
more information about defining the region that owns the debug profile
repository. The most common multi-region debugging scenario is
where the debug profile repository is shared and DTCN runs in the
TOR while the application to be debugged is transaction routed to
an AOR.
One of two methods must be used in this case to start the debugger's new program support in the AOR. Either use EQA0CPLT to enable this support when the region starts (see step 9 for information about EQA0CPLT), or use the z/OS Debugger DTCP transaction to start or stop this support as needed. In the AOR, enter DTCPO on a clear CICS screen to activate this support and enter DTCPF to deactivate it. You can activate and deactivate this support multiple times.
- If you are using CADP for debugging profiles, set the startup parameter DEBUGTOOL=YES for any region where a z/OS Debugger session might start. This parameter activates the z/OS Debugger new program support.
- If users need to debug Enterprise PL/I for z/OS, Version 3 Release 4 (or later),
applications under CICS:
- Install the following corequisite:
- If you are running z/OS Version 1 Release 6, you need to apply the PTF for Language Environment APAR PK03093.
- If you are compiling with Enterprise PL/I for z/OS, Version 3 Release 4, apply the PTF for APAR PK03264.
- The entry to programs invoked by EXEC CICS LINK or XCTL.
- The entry to any program, even if it is a nested program within a composite load module, invoked as a static or dynamic CALL.
- To enable users to start debug sessions
with CADP, use PLTPI program EQA0CPLT with the CICS start up parameter
INITPARM=(EQA0CPLT='NWP'). See step 9 for information about EQA0CPLT.
- Install the following corequisite:
- If you are planning to debug command-level assembler application programs that do not run under or use Language Environment services, activate the CICS non-Language Environment exits as described in Activating CICS non-Language Environment exits.
- If your CICS region
is started with the SEC parameter set to YES and the XCMD parameter
is set to YES to activate command security, review the access settings
for the following resources:
- EXITPROGRAM
- Do one of the following options:
- Verify that z/OS Debugger users have UPDATE authority to the EXITPROGRAM resource so that they can run EXEC CICS ENABLE PROGRAM EXIT, DISABLE PROGRAM EXIT, and EXTRACT EXIT.
- Activate the debugger's single-terminal mode screen stacking user
exits during CICS start up
by doing the following:
- Verify that the user ID that runs the CICS region has UPDATE access to the EXITPROGRAM resource.
- Add the program EQA0CPLT to your Program List Table (PLTPI).
- Add
INITPARM=(EQA0CPLT='STK')to your CICS startup parameters.
- TDQUEUE
- Verify that all users have UPDATE authority to the TDQUEUE resource, so that they can run EXEC CICS INQUIRE and EXEC CICS SET TDQUEUE.
- PROGRAM
- Verify that all users have READ authority to the PROGRAM resource, so that they can run EXEC CICS INQUIRE PROGRAM.
For more information about the CICS security features, see CICS RACF® Security Guide.
- (Optional)
Set up the CICS PLTPI program
called EQA0CPLT:
- Add the program EQA0CPLT to your Program
List Table (PLTPI). EQA0CPLT initializes parts of z/OS Debugger during CICS startup as indicated by a CICS INITPARM system initialization
parameter. Run EQA0CPLT as a Stage 2 or Stage
3 PLTPI program. IBM® recommends that you place EQA0CPLT after other
PLT programs. The following sample PLT includes EQA0CPLT:
TITLE 'DFHPLTXX - IBM z/OS Debugger CICS Sample PLT' DFHPLT TYPE=INITIAL,SUFFIX=XX * DFHPLT TYPE=ENTRY,PROGRAM=DFHDELIM DFHPLT TYPE=ENTRY,PROGRAM=EQA0CPLT * DFHPLT TYPE=FINAL END DFHPLTBA - Add the
INITPARMkeyword to the CICS startup parameters. Multiple parameters can be passed to EQA0CPLT in the same INITPARM. The following common parameters can be used:- NLE
- Non-Language Environment support. See Activating CICS non-Language Environment exits.
- STK
- Screen stack exits. This parameter is required if you are using command security.
- NWP
- New program support. This parameter is required if you are using multi-regions or Enterprise PL/I Version 3 Release 4 (or later) with CADP.
- STG
- This parameter enables the protection of storage that was GETMAINed in the current task by a program that is not the active program. This protection is only provided when the user is using the remote debugger.
- DNT
- This parameter disables the generation of z/OS Debugger trace entries. By default, these trace entries are generated for IBM Software Support to diagnose problems with z/OS Debugger. You can specify this parameter to disable generation if z/OS Debugger trace entries are not needed.
For example, to activate the non-Language Environment support, screen stack exits, and new program support (multi-region and Enterprise PL/I Version 3 Release 4 with CADP) in a single INITPARM, add the following to your CICS startup parameters:
INITPARM=(EQA0CPLT='NLE,STK,NWP')Any combination of these four can be coded on the same INITPARM.
- Add the program EQA0CPLT to your Program
List Table (PLTPI). EQA0CPLT initializes parts of z/OS Debugger during CICS startup as indicated by a CICS INITPARM system initialization
parameter. Run EQA0CPLT as a Stage 2 or Stage
3 PLTPI program. IBM® recommends that you place EQA0CPLT after other
PLT programs. The following sample PLT includes EQA0CPLT:
- If the users use COBOL or PL/I separate
debug files, verify that the users specify the following attributes
for the PDS or PDSE that contains the separate debug files:
- RECFM=FB
- LRECL=1024
- BLKSIZE set so that the system determines the optimal size
Important: Users must allocate files with the correct attributes to optimize the performance of z/OS Debugger. - (Optional)
Increase the DSALIM and EDSALIM sizes in your CICS region so that z/OS Debugger functions
properly with multiple concurrent users. The amount of increase is
based on the current workload in the CICS region.
Recommendation: Increase the sizes of DSALIM and EDSALIM in increments of 5% or 10%. Monitor the storage in the region as z/OS Debugger users are debugging for the highest amount of storage that is used at any one point.
- To enable users to start debug sessions for Enterprise
COBOL or Enterprise PL/I application with DTCN, use one of the following
methods:
- Use PLTPI program EQA0CPLT with the CICS start
up parameter
INITPARM=(EQA0CPLT='NWP'). For more information about EQA0PLT, see Step 9. - Save a DTCN profile.
- Run DTCPO transaction after the region starts up.
- Use PLTPI program EQA0CPLT with the CICS start
up parameter
See the IBM z/OS Debugger User's Guide for information about how to debug CICS programs.