XPCICSCOBOLUserGuide PDF
XPCICSCOBOLUserGuide PDF
XPCICSCOBOLUserGuide PDF
Release 17.02
ii Xpediter/CICS COBOL User Guide
http://go.compuware.com/
This document and the product referenced in it are subject to the following legends:
Copyright 1984 - 2016 Compuware Corporation. All rights reserved. Unpublished rights reserved under
the Copyright Laws of the United States.
This product contains confidential information and trade secrets of Compuware Corporation. Use,
disclosure, or reproduction is prohibited without the prior express written permission of Compuware
Corporation. Access is limited to authorized users. Use of this product is subject to the terms and
conditions of the users License Agreement with Compuware Corporation.
Xpediter, Xpediter/CICS, Xpediter/Xchange, Xpediter/Code Coverage, Abend-AID for CICS, FrontLine, and
Compuware are trademarks or registered trademarks of Compuware Corporation.
CICSPlex, CICS Transaction Server, DB2, DFSMS, IBM, MVS, MVS/ESA, OS/390, VTAM, IBM MQ for z/OS,
and z/OS are trademarks or registered trademarks of International Business Machines Corporation.
Adobe Reader is a trademark of Adobe Systems Incorporated in the United States and/or other
countries.
All other company and product names are trademarks or registered trademarks of their respective owners.
Doc. OCT2016
September 30, 2016
iii
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viii
System Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viii
Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viii
Online Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Compuware FrontLine Customer Support Website . . . . . . . . . . . . . . . . . . . ix
Contacting Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Phone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Corporate Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Information for Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-1
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I-1
vii
Introduction Intro
The chapters listed below contain exercises using common examples. The first examples
show how to access and exit the product and how to debug a simple transaction.
Subsequent chapters provide exercises on how to set breakpoints in a program, how to
step through the program, and how to change storage. The later chapters provide
exercises on advanced features.
The exercises cover only a portion of the many Xpediter/CICS screens and functions. For
more information on these topics, see the Xpediter/CICS Reference Manual.
Chapter 1, Product Overview: Introduces Xpediters facilities and discusses the need
for an interactive debugging tool. The overview also includes features that are new to this
release of the product.
Chapter 2, Getting Started: Shows how to prepare your application for debugging,
accessing, and exiting Xpediter/CICS.
Chapter 7, Monitoring Tasks Started from Remote Terminals: Describes how to set
and intercept remote traps.
Chapter 9, Interfacing with Abend-AID for CICS: Discusses the interface with
Compuwares Abend-AID for CICS fault diagnosis product.
Chapter 10, Using Automatic Trap Activation: Explain how ATA traps abends
without the user having an Xpediter session active.
Chapter 12, Accessing Files: Shows you how to browse records, change file service
requests, and work with data and storage queues.
Chapter 13, Accessing DL/1 Databases: Shows how to list PCBs and edit a DL/I
segment.
Chapter 14, Using Xpediter/CICS with DB2: Tips on row and column editing of DB2
tables and views.
viii Xpediter/CICS COBOL User Guide
Chapter 15, Using Xpediter/CICS with MQ: Describes the MQ File Utility and how to
debug MQ programs.
Chapter 16, Accessing CICS Storage: Describes how to access and update CICS
storage.
Chapter 17, Using Global Storage Protection: Shows how to set protection, define
system labels, and control storage exceptions.
Chapter 18, Editing CICS Tables and Control Blocks: Describes how to display CICS
table entries and DSECTs.
Chapter 19, Using 3270 Web Bridge Support: Demonstrates how to run Xpediter
using the 3270 Web Bridge function.
Intended Audience
Xpediter/CICS is structured in three levels to accommodate several types of users. The
audience for this manual may differ, depending on the experience of the user and the
transactions for which the user is authorized. The following three transactions are used
to describe Xpediters three levels:
XPED Intended for application programmers who want a source level focus.
XPRT Intended for application programmers who want a break/abend focus.
XPSP Intended for experienced system programmers who are authorized to update
CICS tables and control areas.
System Environment
See the Xpediter/CICS Release Notes for the most current system environment information.
Related Publications
The documents in the following list are no longer provided in the installation package.
For details, see Online Documentation below.
For information regarding Compuware Shared Services, refer to the Enterprise Common
Components Installation and Customization Guide.
Online Documentation
The Xpediter/CICS product installation package does not include the product
documentation. Access the Xpediter/CICS documentation from the Compuware
FrontLine customer support website at http://go.compuware.com in the following
electronic formats:
View PDF files with the free Adobe Reader, available at http://www.adobe.com.
View HTML files with any standard web browser.
Customer Support
Compuware provides a variety of support resources to make it easy for you to find the
information you need.
Web
You can report issues via the Quick Link Create & View Support Cases on the
Compuware FrontLine home page.
Mail
Compuware Customer Support
Compuware Corporation
One Campus Martius
Detroit, MI 48226-5099
x Xpediter/CICS COBOL User Guide
Corporate Website
To access Compuwares site on the Web, go to http://www.compuware.com.
Chapter 1.
Product Overview Chap 1
Xpediter/CICS gives the CICS programmer complete control over the execution of
application code, trapping of abends, and access to data files and CICS storage, including
tables and control blocks in DSECT format. An easy-to-use architecture allows you to
interactively debug application programs quickly and accurately.
Xpediter/CICS lets you control the execution of your program and monitor its status at
any time. You can set breakpoints to suspend execution (with or without conditions),
change the program logic flow, intercept abends or storage violations, and many other
functions, all without leaving the test session or recompiling.
Xpediter/CICS allows you to interact directly with the program as it executes, allowing
you to perform the following functions:
Using Xpediter/CICS, you can observe a program as it executes, stop execution, look at
intermediate results, correct problems as they arise, and proceed with the test. When
Xpediter/CICS traps an abend, it displays a wealth of information that aids in
understanding and correcting that abend. You can even resolve multiple problems during
a single test session. Xpediters Script Facility allows you to record selected primary and
line commands entered during a debugging session, save them in a dataset, and then
replay them later.
Xpediter/CICS provides alternatives for problem resolution. When the product identifies
a problem, you can select particular statements at which to suspend execution, then
analyze both working storage and a program trace. If a program stops at an abend, you
can correct the problem or bypass the abend. To bypass an abend, just instruct Xpediter
to resume execution at a statement number or offset past the point of the abend.
Note: All descriptions in this manual, unless otherwise noted, pertain to Xpediters
standard, non-restricted operating mode.
Product Architecture
Xpediter/CICS is designed to provide different levels of functionality.
The ISPF-like nature of Xpediter and its source-based approach make it immediately
familiar. Yet it is powerful enough to meet your most complex debugging requirements.
Xpediter/CICS provides an efficient, non-intrusive architecture that can protect the CICS
region from storage violations. It also offers complete CICS-specific debugging
capabilities for both application and system programmers in the CICS environment.
Xpediters unique multi-access design lets users access the product through their choice
of three separate and securable debugging transactions:
XPED access causes Xpediter to display the Source Listing screen (2.L) when an
abend occurs or a breakpoint is encountered.
XPRT retains the feel of earlier releases by displaying the Break/Abend screen (2.1) at
an abend or breakpoint.
XPSP access provides all the power of the XPED and XPRT transactions, plus
additional system maintenance capabilities for the CICS specialist responsible for
supporting the CICS region.
XPED is the standard transaction used by application programmers. All the commands
and functions available with XPED can also be accessed through the XPRT transaction.
With either transaction, Xpediter/CICS provides:
The only real difference between the two transactions is that when a breakpoint is
reached or an abend occurs, by default XPED displays the Source Listing screen (2.L),
while XPRT displays the Break/Abend screen (2.1).
The XPSP transaction is designed for those system programmers authorized to update
unprotected CICS tables and control areas. It permits unrestricted storage area updates
and provides hung task analysis, along with other special region maintenance and
debugging functions. XPSP allows you to establish and control system-wide storage
protection.
Xpediter can also be configured to operate in any of three restricted modes of operation:
Diagnosis Mode
Utilities Mode
Diagnosis/Utilities Mode.
These modes allow a site to tailor its Xpediter implementation to suit the processing
integrity and throughput requirements of its various CICS regions. In Diagnosis Mode,
the user is prevented from modifying data or changing the sequence of program
execution. In Utilities Mode, only the Xpediter file utility, storage display facility, and
source listing utility are accessible. Storage, databases, and files can be viewed and
modified, but trap, trace, and monitor functions are unavailable. Diagnosis/Utilities
Mode combines the restrictions of the other two modes. You can access Xpediters file
utility and source listing utility and view storage on the Memory Display (2.2 and 9.2),
Task Storage Display (2.S), and DSECTs (2.D and 9.D) screens. A mode indicator message
Product Overview 1-3
is displayed in the upper left-hand corner of all Xpediter screens when the product is
operating in one of the restricted modes. For more information see Chapter 5, Restricted
Operating Modes in the Xpediter/CICS Reference Manual.
Note: All descriptions in this manual, unless otherwise noted, pertain to Xpediters
standard, non-restricted operating mode.
The Xpediter/CICS Primary Menu, shown in Figure 1-1, lists the screen number and
name of each product facility menu available via the XPED and XPRT transactions. The
option shown for Code Coverage, a sophisticated and powerful tool used with
Xpediter/CICS to verify the thoroughness of testing, is only displayed if the separate
Xpediter/Code Coverage product has been installed for the current CICS region. The
option shown for Xchange/CICS is only displayed if Xpediter/Xchange is active in the
CICS region. The option shown for CICSPlex facilities is only displayed if the CICSPLX
global parameter is set to YES.
There are four main ways you can navigate through Xpediter/CICS:
Type one of the screen numbers from a displayed menu in the COMMAND field and
press Enter.
Move the cursor next to the desired screen number on a menu, type S, and press
Enter.
Transfer directly to any product screen by typing an equal sign (=) followed by the
complete screen number for instance =5.2.2 then pressing Enter.
Use PF keys to transfer to commonly used screens. The PF keys and defaults for the
corresponding screens are as follows:
While the Primary Menu is displayed, pressing PF2 or PF14 will display the copyright and
trade secret notices as shown in Figure 1-2.
XPSP Transaction
The XPSP transaction gives the CICS system programmer all the functionality of the
XPED and XPRT transactions, and adds special CICS region-related utilities. When you
access Xpediter/CICS with XPSP, the Primary Menu displayed is similar to the
XPED/XPRT Primary Menu, but with one additional option:
When you select option 9, System Facilities, you have access to the extended XPSP
functions, which include:
The System Facilities Menu (Figure 1-3) shows the additional functions available to the
XPSP user.
Product Facilities
Compuware product developers know that, without Xpediter, debugging an application
can be among the most time-consuming and exasperating tasks you perform. Yet an
error-free application is an absolute necessity. The Xpediter/CICS facilities listed below
help you locate, identify, and eliminate application errors.
Note: In its character display of memory, Xpediter/CICS uses a decimal point to stand
for any unprintable character. For that reason, a decimal point you type into that
character display will not be recognized unless it overtypes a printable character
not another decimal point. When hex is displayed, x'4B' can be entered to
denote a decimal point.
File Utility
Browse, edit, and map records (for COBOL and PL/I only) from CICS files
Log changes to supported resources
Support for BDAM and VSAM files, temporary storage, transient data, DB2 and IMS
databases, and MQ queues.
Customizing Facilities
Multitransaction architecture with specific facilities for different types of users
Three restricted modes of operation
User session profiles
Hexadecimal calculator
Screen footings.
Xpediter/CICS can be used in both the test and production environments for a variety of
tasks, including:
Bad Record Correction The File Utility can be used in either environment to
correct bad records.
System Maintenance Authorized users can view and modify CICS storage without
bringing down the region.
Hung Task Analysis System programmers can look at an end users task to
determine problems.
Remote Trapping Application support personnel are able to set traps to gain
control and diagnose end-user sessions.
Help Facility
Xpediter/CICS contains an extensive set of Help screens to assist you in learning the
product. The Xpediter/CICS Help facility uses hypertext links to allow easy navigation
Product Overview 1-7
through topics. Links to related topics are displayed with distinctive color and intensity.
Simply tab to the hypertext link and press Enter to display the linked topic.
Help screens are available from any product screen by pressing PF1. The screens provide
detailed information about the commands and functions available in each of the
Xpediter/CICS areas. Use the Help screens when you need information about a particular
screen or command. For example, to obtain a description of the SHOW command, type
SHOW on the COMMAND line and press PF1, or enter the primary command HELP
SHOW. A description of the format and use of the SHOW command will be displayed.
While in the Help facility, use the following keys to move through the screens:
Many common 3270 terminal emulation software packages running on PCs can be
configured to allow selection of hypertext links by double-clicking with the left mouse
button. You can also double-click on the highlighted commands (CANCEL, END, UP, and
DOWN) at the top of the Help screens to return to previous topics, scroll, or exit the Help
facility.
The Help PF key can also be used to supply you with additional error information. Error
messages are usually enclosed in asterisks (*). When an error message is displayed with
plus signs (+), you can receive more specific information about that message by pressing
PF1. For example, pressing PF1 for the error message NO SOURCE AVAILABLE will
provide exact information on why source for that particular program cannot be located.
HELP NEWS provides online information about the new features in the latest release,
including new commands, screens, and parameters. HELP NOSOURCE provides
information to help you discover why source listings are not displayed for a particular
program. Several possible causes are listed with suggested solutions.
Product Conventions
This section discusses the following Xpediter/CICS product conventions:
Figure 1-4 shows the fields that are common across Xpediter/CICS screens. Each field is
described below.
1-8 Xpediter/CICS COBOL User Guide
System ID The SYSIDNT value for the current CICS region is conveniently
displayed in the upper-right corner of every screen.
COMMAND Field Type primary commands and screen IDs in the COMMAND
field. Some PF keys also depend on the parameters that you enter in this field.
Multiple primary commands, separated by the current command delimiter, can be
entered at the same time. A semi-colon (;) is the default delimiter.
Note: The default command delimiter can be changed with the CMDDLM global
parameter. (See the Xpediter/CICS Installation and Configuration Guide chapter
entitled Global Parameters Table for more information.) The CMDDLM
value is the default delimiter only for users with no delimiter stored in their
user profile, such as new users or existing users invoking a new release of
Xpediter for the first time. Once a command delimiter has been set for a
given user, it can be changed using the DELIM field on the Set Profile
Defaults screen (0.1). See the Xpediter/CICS Reference Manual for details.
Note: The HELP primary command cannot be entered together with other
commands, and multiple primary commands cannot be entered from
Xpediters Help facility.
SCROLL Field Sets the scroll value for screens that permit scrolling.
MODULE Field Displays the current load module name regardless of what CSECT
within the load module is being debugged.
Product Overview 1-9
CSECT Field Identifies the CSECT on the Xpediter screen. To change to another
CSECT, simply type the new name. Current breakpoints and keeps are retained until
they are deleted or the session is ended.
Notes:
The CSECT field accommodates mixed-case CSECT names up to 16 characters
and abbreviated CSECT names when the name is greater than 16 characters.
This field is protected on the Script Dataset Allocation screen (0.6), the Data Area
screens (2.3), and the Break/Abend screen (2.1).
Xpediter/CICS may issue diagnostic or informational messages that overlay the
CSECT and COMPILED fields. If the message is surrounded by plus signs (+++),
you can access extended help by pressing PF1. When you press PF3 to exit the
help, the CSECT and COMPILED fields are redisplayed. If extended help is not
available, simply press Enter to redisplay the fields.
COMPILED: Field Displays the date and time the program was compiled in
DD MMM YYYY format. When Xpediter/CICS issues a diagnostic or informational
message, the message displays instead of the compilation date and time.
When the text of the message is surrounded by plus signs (++), type HELP in the
COMMAND field and press Enter, or use PF1 (HELP), to obtain more detailed information
about the message.
Command Entry
Xpediter/CICS has many commands to assist you in your debugging tasks. There are
three ways of entering commands, but not every command can be entered in every way:
For specific information on command syntax, usage, and notation conventions, refer to
the Xpediter/CICS Quick Reference.
Primary Commands These commands are entered in the COMMAND field of any
screen.
Line Commands A subset of the primary commands, line commands are typed in
the line number area of the display (2.L screen) or in the prefix command field that
may precede the data displayed on a line.
PF Keys PF keys are set by default to the most commonly used commands; they are
executed simply by pressing the key. If you wish, you can reset the PF key
assignments as part of your user profile. See PF Key Settings on page 1-12.
AFTER
Sets conditional or unconditional breakpoints after the execution of a statement or
instruction.
BEFORE
Sets conditional or unconditional breakpoints before the execution of a statement or
instruction.
CALC
Performs hexadecimal/decimal calculations and displays the results online.
1-10 Xpediter/CICS COBOL User Guide
COUNT
Sets execution counts and gathers test coverage statistics.
DELETE
Removes either a specific object or a dataset record, depending on the screen you access.
EXCLUDE
Excludes specified lines from display. You see only the lines of code in which you are
interested. When you step through a program, lines are redisplayed as they are executed
so you can see the logic flow of the program. Symbolic label support is provided so that
you can exclude a range of lines.
EXIT (PF4)
Transfers to the Exit Session screen.
FIND
Positions the cursor on a specified string. Can be used in conjunction with the EXCLUDE
command.
GO (PF12)
Executes program logic by the specified parameter. If no parameters are specified,
resumes execution from the current location. GO 5 1 will execute five statements,
pausing one second between each statement. GO UNTIL WA-HOURS executes until the
value of WA-HOURS changes.
GOTO
Used to reposition execution at another point in the program. Repositions the current
execution pointer to the specified statement, offset, or address.
GPREGS
Sets footing options to the general purpose registers.
HELP (PF1)
Displays hypertext online help. HELP COMMANDS displays a list of the available
commands. HELP NEWS gives information about the current release. Entering HELP on a
particular screen will display information about that screen.
KEEP
Selects the contents of a data item to be viewed in the scrollable and sizeable keep
window. To change displayed data, overtype it with a new value.
LOCATE * (PF6)
Transfers from any Xpediter screen directly to the Source Listing screen (2.L) or
Assembler Break/Abend screen (2.20).
REPEAT
Re-executes the last primary command.
RUNTO
Sets a one-time unconditional breakpoint before the execution of a statement or
instruction. GO will also be issued if you are at a trapped transaction.
Product Overview 1-11
SET
Changes debugging parameters:
SHOW
Modifies the format of selected screens to display data in different forms.
SKIP
Temporarily bypasses the execution of a statement.
USING
Maps data according to a record format from a COBOL or PL/I program in the file utility.
VERIFY
Displays and, if desired, modifies Assembler object code.
WHEN
Sets conditions for pausing program execution.
A (After)
Sets an unconditional breakpoint after a statement.
AC (After Conditional)
Sets a conditional breakpoint after a statement.
B (Before)
Sets an unconditional breakpoint before a statement.
1-12 Xpediter/CICS COBOL User Guide
BC (Before Conditional)
Sets a conditional breakpoint before a statement.
C/CC (Count)
Sets an execution analysis/count for a statement or range of statements.
D/DD (Delete)
Deletes Afters, Befores, Counts, Keeps, Runtos, Skips, conditional Skips, and Verifies for a
single line or range of statements.
DH (Delete Hex)
Reverts the display of contents of a kept data name from vertical hex format back to
standard format.
GT (Go To)
Repositions the execution pointer (=====>).
H (Hex)
Displays contents of a kept dataname in vertical hex format. DH reverts contents back to
standard format.
K/KK (Keep)
Selects one or more data names to be kept on a line or range of statements.
P (Peek)
Transfers to Working Storage screen (2.3) positioned to the first variable selected.
S/SS (Skip)
Indicates that the selected line or range of lines are to be skipped.
SC (Skip Conditional)
Indicates that the selected line is to be skipped if the specified condition is true.
X/XX (Exclude)
Excludes a line or range of lines.
Z (Runto)
Sets a one-time unconditional breakpoint before the execution of a statement or
instruction. GO will also be issued if you are at a trapped transaction.
PF Key Settings
Xpediter/CICS uses PF keys for command shortcuts. For example, to display HELP
information about the SHOW command, type SHOW in the COMMAND field and press
PF1 (HELP). You can elect to display the current PF key assignments at the bottom of your
non-menu screens. To set this option, use the SET FOOT KEYS command.
Product Overview 1-13
The default values for the PF keys are shown in Table 1-2. To customize the PF keys to suit
your individual needs, use the KEYS primary command.
Table 1-2. Default PF Key Settings
Function PF Key Description
HELP PF1 Provides help information on the function currently in use.
Generates a runto before breakpoint on the source line containing the cursor. If
RUNTO CSR PF2 you are at a trapped task, the GO command will also be issued, and the runto
breakpoint will be deleted when it is subsequently taken.
Ends current function and returns to the next higher level screen. For DB2
END PF3
screens only, returns to previous screen.
=X PF4 Transfers to the Exit Session screen.
When used with a previously issued FIND command, searches for the next
RFIND PF5
occurrence of the specified data.
Directly transfers from any screen to the Source Listing screen (2.L) or Assembler
LOCATE * PF6
Break/Abend screen (2.20).
UP PF7 Scrolls up through the data portion of a screen or the Help facility.
DOWN PF8 Scrolls down through the data portion of a screen or the Help facility.
Resumes program execution for one instruction or statement, then halts the
GO 1 PF9
program.
Scrolls the data portion of the screen to view data to the left of the current
LEFT PF10 display. On the Memory Display screens (2.2 and 9.2), PF10 acts as the PREV
command.
Scrolls the data portion of the screen to view data to the right of the current
RIGHT PF11 display. On the Memory Display screens (2.2 and 9.2), PF11 acts as the NEXT
command.
Steps through program logic by the specified parameters. If no parameters are
GO PF12 specified, resumes program from current location. This key is available in all
situations where resuming is allowed.
Ends the current Xpediter/CICS function and transfers to the highest level
MENU PF13 System Menu. From the Help facility or the Primary Menu, the copyright and
trade secret notices are displayed.
Transfers to the Memory Display screens (2.2). On the Primary Menu, PF14
MEMORY PF14
displays the copyright and trade secret notices.
Selects a function from a menu or selection screen, or lists the sixteen most
SELECT PF15
recently accessed addresses from the Memory Display screens (2.2 and 9.2).
Transfers to the Working Storage screen (2.3) for COBOL, the Defined Storage
WS, DS, or VS PF16
screen (2.3) for Assembler, or the Variable Storage screen (2.3) for PL/I and C.
=2.4 PF17 Transfers to the Program Trace screen (2.4).
=2.8 PF18 Transfers to the Last 3270 screen (2.8).
UP MAX PF19 Scrolls up the maximum amount possible.
DOWN MAX PF20 Scrolls down the maximum amount possible.
FILE PF21 Transfers to the File Utility Menu (5).
Scrolls the data in the keep window to view data to the left of the current
DLEFT PF22
display.
Scrolls the data in the keep window to view data to the right of the current
DRIGHT PF23
display.
Displays the last command entered in the COMMAND field, allowing it to be
RETRIEVE PF24
changed or reissued.
When this facility is enabled, the following field is displayed on the screen when using a
given transaction:
To update memory displayed on the screen, enter the password and modify the data to be
changed before pressing Enter or a PF key. If no password is entered or the password is
invalid, all modifications to the data area of the screen are ignored. If memory is not
updated, you receive a message indicating why the update was bypassed.
2-1
Chapter 2.
Getting Started Chap 2
This chapter gives you the basic information needed to start using Xpediter/CICS. It
discusses the steps necessary to prepare your program for execution, including
compiling, processing, and loading a new copy. The chapter also discusses how to access,
navigate through, and exit Xpediter/CICS.
Take a few minutes to read this chapter before starting the exercises in this guide. It
answers many common questions.
To take advantage of this support, you must run your COBOL programs through the
COBOL language processor, which provides you with the following functionality during
a debugging session:
Set one or more breakpoints to stop execution at any statement. Breakpoints may be:
Unconditional: Halts program execution at the selected statement.
Conditional: Halts program execution only if the specified condition is met.
Examine program storage by data name.
Select data fields for viewing during program execution.
Resume execution at any statement.
Change the execution point by statement number.
Examine the statement-level trace during or after execution.
Language processing lets you work with the code in the way you are accustomed to
seeing it: at the source level. The next section discusses the Compuware language
processor and how to get source-level support.
Simplified JCL: While the postprocessor requires that the user add a step after the
compile step, the preprocessor requires only that the EXEC name be altered and a
CWPDDIO DD card and CWPPRMO DD card be added.
Automated print options: The postprocessor requires that certain compiler options
be specified in order to print all needed sections of the compiler listing. The
preprocessor can automatically pass the required options to the compiler.
Capturing of suppressed source code: When COBOL COPY SUPPRESS is used,
sections of source code can be suppressed from the compiler listing. The preprocessor
can capture this information from the compiler before the data is suppressed from
the listing. This provides improved debugging under CICS.
To enable source-level support, the language processor must be installed. The most up to
date version of Compuware Shared Services is furnished with Xpediter/CICS and is
usually installed as part of the Xpediter installation process. For information on how to
install the Compuware Shared Services language processor, refer to the Xpediter/CICS
Installation and Configuration Guide and the Enterprise Common Components Installation and
Customization Guide.
During a debugging session, Xpediter/CICS searches the source listing file for an entry
that matches your program name. It also checks the compile date and time. For COBOL
programs, if a match is found, the source listing is used during the debugging session to
display source and to set breakpoints and keeps by statement number. If no match is
found, the NO SOURCE AVAILABLE message is displayed. Press the help PF key (default
PF1) for specific information.
The NEWC transaction loads a new copy and resets generic breakpoints. Generic
breakpoints are those set without reference to a specific statement number or offset, such
as those created by the commands BEFORE ALL PARA and AFTER ALL EXEC. Explicit,
non-generic breakpoints are set with commands such as BEFORE 100 and AFTER +24 as
well as the line commands B, A, and C and are deleted from the new copy of the
program created with the NEWC transaction.
To use the NEWC transaction, type NEWC followed by the program name on a blank
CICS screen. If the NEWCOPY is successful, the following message is displayed:
NEWC CWDEMCB2
MXDNC0001I 01 Jan 2006 09:00:00 - SYSID=C123 - APPLID=CICSC123
Program 'CWDEMCB2' newcopy successful Len(00021E8)..
The program name in the first line of the message may be overtyped to issue an
additional NEWCOPY request.
If the program is in use or the program name is entered incorrectly, error messages are
returned. Any authorized user in the region can NEWCOPY a program; if the program is
in use, an error message is issued, but the program is not disabled.
For more information on the NEWCOPY function, refer to the Xpediter/CICS Reference
Manual.
Accessing Xpediter/CICS
There are three ways to access Xpediter/CICS:
Getting Started 2-3
Basic access
Fast-path access to the Source Listing screen (2.L)
Direct access to selected screens.
Any of the three transactions, XPED, XPRT, or XPSP, can be used with each method.
XPED and XPRT automatically issue the abend trap facility to trap any potential abends
in your program before they can actually occur.
Xpediter can also be configured to run in any of three restricted modes of operation:
Diagnosis Mode
Utilities Mode
Diagnosis/Utilities Mode.
Note: All descriptions in this manual, unless otherwise noted, pertain to Xpediters
standard, non-restricted operating mode.
Basic Access
The easiest way to access Xpediter/CICS is by entering XPED, XPRT, or XPSP on a blank
CICS screen and pressing Enter. XPED and XPRT take you to the Primary Menu shown in
Figure 2-1. XPSP takes you to a similar Primary Menu with additional functions for
system programmers. The Primary Menu will only display certain choices if the
corresponding Compuware product or functionalitysuch as Xpediter/Xchange,
Xpediter/Code Coverage, or CICSPlex supportis installed and active in the CICS region.
Transfer to any of the options shown on the menu by typing the appropriate number
and pressing Enter.
Type a program name in the MODULE field and press the LOCATE * PF key (default
PF6) to transfer to the Source Listing screen (2.L).
Press Clear to return to CICS to start your application.
2-4 Xpediter/CICS COBOL User Guide
From here you can set breakpoints in your programs, select variables to keep for viewing,
set up an execution analysis, specify statements to be skipped, or transfer to another
screen.
Figure 2-2. Accessing the Source Listing Screen (2.L) Using the Fast-Path Method
Type one of the screen numbers from a displayed menu in the COMMAND field and
press Enter.
Move the cursor next to the desired screen number on a menu, type S, and press
Enter.
Transfer between screens by typing = followed by the screen ID. For example, type
=5.1 in the COMMAND field and press Enter to transfer to the CICS Datasets Menu
(5.1).
Use PF keys to transfer to commonly used screens. The PF keys and defaults for the
corresponding screens are as follows:
Access the Source Listing screen (2.L) from any product screen with the LOCATE *
primary command. For more information, refer to the Xpediter/CICS Reference Manual.
Exit Xpediter/CICS by typing =X in the COMMAND field and pressing Enter.
Ending a Session
1. Type =X in the COMMAND field on any Xpediter/CICS screen. If you are not
currently in Xpediter/CICS, type XPED X on a blank CICS screen. Press Enter. The
Exit Session screen (X) appears as shown in Figure 2-3.
You may also exit Xpediter directly, bypassing the Exit Session screen (X), by typing
XPND on a blank CICS screen.
The Resource Summary screen (1.P) can be used to release breakpoints set from the local
terminal, and the XPSP transactions Resource Summary screen (9.P) can be used to
release breakpoints from programs in the entire CICS region. This is especially helpful if
your site uses autoinstall terminals and you sign off CICS without ending an
Xpediter/CICS session. For more information, see the screen descriptions for the
Resource Summary screens (1.P and 9.P) in the Xpediter/CICS Reference Manual.
3-1
Chapter 3.
Testing a COBOL Program Chap 3
This chapter demonstrates how to test a COBOL application program, first without
setting breakpoints, and then by setting breakpoints and stepping through the code. You
will use the XPED transaction to test an application transaction (XCB2) and fix an abend.
XCB2 is the sample demonstration transaction shipped with Xpediter/CICS. It is a simple
employee payroll transaction that executes the COBOL program CWDEMCB2. The XCB2
transaction is used throughout this guide to cause several types of abends.
If you have questions about which screen to use for a function, the Xpediter/CICS Quick
Reference contains a list of screen IDs and titles, default PF key settings, and commands.
Xpediter/CICS is now turned on and ready to intercept any abends that may occur.
2. Press Clear to return to CICS to start your test.
3-2 Xpediter/CICS COBOL User Guide
3. On a blank CICS screen, type XCB2 and press Enter. The Demonstration Transaction
screen appears as shown in Figure 3-2.
4. To cause an ASRA abend, type 00001 and press Enter. The CWDEMCB2
demonstration program is intercepted when the abend occurs, and the Source Listing
screen (2.L) is displayed as shown in Figure 3-3. This gives you the opportunity to fix
the problem, re-execute the statement, and continue the test.
Note: The line numbers shown in this guide may vary from those seen during actual
program execution. The source for the EXEC CICS commands may also appear
different depending on the use of the CICS integrated translator.
The module and CSECT names and the compile date and time of the executing
program are displayed at the top of the screen. The keep window appears next. All
data items from the current statement automatically appear in the window.
You can scroll this window by positioning the cursor in it and using PF keys to scroll
up and down, left and right.
The status line is displayed after the keep window. The displayed message indicates
that an ASRA abend, caused by a data exception, has been intercepted at statement
423 in CWDEMCB2.
Testing a COBOL Program 3-3
The source code follows the status line. You can scroll through this section by
positioning the cursor anywhere on the screen outside the keep window. An arrow in
the statement number field indicates the current statement where execution is
paused.
5. The contents of other data items can be checked by using the PEEK primary
command. Type PEEK WA-TAX-RAT in the COMMAND field and press Enter.
Xpediter/CICS will transfer to the Working Storage screen (2.3) with the contents of
WA-TAX-RAT positioned to the top of the screen as shown in Figure 3-4.
Figure 3-4. Working Storage Screen (2.3) Accessed with PEEK Command
9. Press PF12 (GO) to continue the test. If any other abends occur, Xpediter/CICS will
intercept them. Otherwise, the transaction completes, and the Demonstration
Transaction screen appears as shown in Figure 3-6.
10. Remember to end the session as described in Exiting Xpediter/CICS and Ending a
Debugging Session on page 2-5.
In the example just completed, an ASRA occurred because WA-HOURS contained bad
data. In the next example, we will find out how the bad data got there.
Viewing Source
1. Use the fastpath method to quickly access program source. Type XPED
CWDEMCB2 on a blank CICS screen, and press Enter. The Source Listing screen (2.L)
appears (Figure 3-7).
Testing a COBOL Program 3-5
Note: For a more complete explanation of autokeeps and the Intelligent Autokeeps
feature, Compuware encourages you to use the HELP AUTOKEEPS and HELP
INTELLIKEEPS commands built into Xpediter/CICS. These Help topics
provide highly detailed information and examples, as well as performing
real-time evaluations to point out any restrictions you might encounter
while attempting to use these facilities.
In the previous example, an abend occurred because the field WA-HOURS contained
invalid data. By setting a keep on this field before reexecuting the program, you can
view it to monitor its value and check its effect on the program execution.
2. To turn on the trace facility, type SET TRACE ON on the COMMAND line and press
Enter.
3. Type FIND FIRST WA-HOURS on the COMMAND line and press Enter. The display is
positioned to the declaration for WA-HOURS.
4. Type the K line command on the statement number to the left of WA-hours and press
Enter. The value of WA-HOURS will appear in the keep window when you execute the
program.
Whenever a keep is set, a K is placed on the line where the data is defined, as shown
in Figure 3-8 on page 3-6.
3-6 Xpediter/CICS COBOL User Guide
Figure 3-8. Selecting a Variable to Keep on the Source Listing Screen (2.L)
Breakpoints are set to halt execution of the program. They are set at any executable verb
to be executed either before or after the statement is executed. There are two types of
breakpoints:
In this case, we will set an unconditional breakpoint at the beginning of the program.
1. Type BEFORE 0 in the COMMAND field and press Enter. This sets a breakpoint on
the first executable statement in the program. Xpediter/CICS displays the message:
3. To see where breakpoints have been set, type SHOW BREAKS and press Enter (Figure
3-10).
This screen displays all breakpoints that have been set. The B indicates a before
breakpoint has been set on the line.
4. Type RESET and press Enter to display all lines of the source.
Note: The following step requires that CSR be entered in your SCROLL field.
7. Place the cursor on PAYROLL-DATA-EMP001 in the keep window and press PF8 to
scroll it to the top of the keep window.
8. Press PF16 (WS) to display the Working Storage screen (2.3) as shown in Figure 3-13.
9. Type K, the keep line command, next to the PAY001-HOURS, 040 over $$$, and press
Enter. This changes the value and sets a keep.
3-10 Xpediter/CICS COBOL User Guide
1. Type GO 5 1 in the command line and press Enter. The following actions occur:
Five statements are executed with a one-second pause between each execution.
The execution pointer points to the current statement, which is highlighted.
The keep window displays the variable fields contained in the current statement
and those you selected for viewing.
The screen shows the statements that have executed and the number of steps
that are completed.
2. If you have the trace utility already turned on, press PF17 to transfer to the Program
Trace screen (2.4) (Figure 3-14). This screen shows the execution flow of your
program logic. You can scroll the information.
Figure 3-14. Program Trace Screen (2.4) Showing Program Logic Flow
Figure 3-16. PF2 (RUNTO CSR) on the Source Listing Screen (2.L)
5. Press Enter. The screen is refreshed and the result of each new line command is
displayed as shown in Figure 3-19. If the intercept was successfully set, the LISTING
and OFFSET fields are updated and the STATUS column shows INTERCEPT SET.
If there was an error, the data in error is highlighted and an error message is
displayed under STATUS. In our example, both intercepts were successfully set.
6. Clear your screen.
7. Enter XCB2. As shown in Figure 3-20, a before breakpoint is taken at the entry point
of CWDEMCB2.
8. After taking the first intercept at the entry point of CWDEMCB2, press PF12 to
continue the program and display the Demonstration Transaction screen requesting
the employee number (Figure 3-21).
9. Enter 00005 and press Enter. The initial intercept in CWDEMCB2 is taken again.
10. Press PF12 to continue. The second intercept in CWCDSUBA is taken as shown in
Figure 3-22.
3-14 Xpediter/CICS COBOL User Guide
11. You can now end your debugging session as described in Exiting Xpediter/CICS and
Ending a Debugging Session on page 2-5.
1. Type XPED CWDEMCB2 on a blank CICS screen and press Enter. Program
CWDEMCB2 is displayed on the Source Listing screen (2.L) as shown in Figure 3-23
on page 3-15.
Testing a COBOL Program 3-15
2. Type BEFORE 0 in the COMMAND field and press Enter. This sets a before breakpoint
on the first executable statement in CWDEMCB2. As shown in Figure 3-24, Xpediter
displays the message
Note: If your profile specifies TRAP=ON, starting Xpediter automatically creates a trap
based on netname and terminal ID. If TRAP=OFF, the trap is created when you set
a breakpoint.
3. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6) is
displayed (Figure 3-25) showing the trap Xpediter automatically created based on
netname and terminal ID.
3-16 Xpediter/CICS COBOL User Guide
The breakpoints you set will only be taken when the task is running on netname
ACME0027 and terminal 0027. Abends for that netname and terminal will also be
trapped.
This enhanced trap causes Xpediter to take breakpoints and trap abends only when
both of the following conditions are met:
The task is running on netname ACME0027 and terminal 0027, and
The initial DFHCOMMAREA has a value of TEST in the four characters starting at
position 26.
The literal T'TEST' could also have been entered as 'TEST' without the preceding type
specification of T. Because this text type literal is not case-sensitive, you could also
have entered T'test', 'Test', or 'TeSt'.
5. The enhanced trap could also be modified to eliminate the netname and terminal ID
requirements. As shown in Figure 3-27, overtype ACME0027 in the NETNAME field
and 0027 in the TERM field with all asterisks (*), type CWDEMCB2 in the PROGRAM
field, and press Enter.
This type of enhanced trap is useful if there are hundreds of terminals executing a
single program, but you only want to stop in that program when the initial
COMMAREA contains the specified value.
Testing a COBOL Program 3-17
Figure 3-27. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMCB2
Notice that the trap was not taken by Xpediter/CICS. This is because the initial
invocation of the pseudo-conversational transaction XCB2 does not contain a
COMMAREA for the trap criteria to match.
8. Type 00999 for the employee number and press Enter. Now Xpediter traps the
transaction as shown in Figure 3-29 on page 3-18. This is because the second
invocation of the transaction was passed an initial COMMAREA containing the
characters TEST in positions 26 through 29 (26:4).
3-18 Xpediter/CICS COBOL User Guide
9. To confirm that the initial COMMAREA satisfied your enhanced trap criteria, first
transfer to the Memory Display screen (2.2) by typing =2.2 in the COMMAND field
and pressing Enter.
10. Type ICA (for Initial Common Area) in the TABLE/AREA field and press Enter.
Xpediter displays the contents of the COMMAREA as shown in Figure 3-30. Notice
the characters TEST starting 26 bytes (relative to 1) into the initial COMMAREA.
11. End your debugging session by typing XPND on a blank CICS screen and pressing
Enter.
2. Type BEFORE 0 in the COMMAND field and press Enter. This sets a before breakpoint
on the first executable statement in CWDEMCCH. As shown in Figure 3-32, Xpediter
displays the message
Note: If your profile specifies TRAP=ON, starting Xpediter automatically creates a trap
based on netname and terminal ID. If TRAP=OFF, the trap is created when you set
a breakpoint.
3. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6) is
displayed (Figure 3-33) showing the trap Xpediter automatically created based on
netname and terminal ID.
The breakpoints you set will only be taken when the task is running on netname
ACME0027 and terminal 0027. Abends for that netname and terminal will also be
trapped.
3-20 Xpediter/CICS COBOL User Guide
This enhanced trap causes Xpediter to take breakpoints and trap abends only when
both of the following conditions are met:
The task is running on netname ACME0027 and terminal 0027, and
The program has access to container CCHREPCOMMAREA and it has a value of
TEST in the four characters starting at position 26.
The literal T'TEST' could also have been entered as 'TEST' without the preceding type
specification of T. Because this text type literal is not case-sensitive, you could also
have entered T'test', 'Test', or 'TeSt'.
5. The enhanced trap could also be modified to eliminate the netname and terminal ID
requirements. As shown in Figure 3-35, overtype ACME0027 in the NETNAME field
and 0027 in the TERM field with all asterisks (*), type CWDEMCCH in the
PROGRAM field, and press Enter.
This type of enhanced trap is useful if there are hundreds of terminals executing a
single program, but you only want to stop in that program when the programs
container, CCHREPCOMMAREA, contains the specified value.
Testing a COBOL Program 3-21
Figure 3-35. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMCCH
Notice that the trap was not taken by Xpediter/CICS. This is because the initial
invocation of the pseudo-conversational transaction XCCH does not have a
container named CCHREPCOMMAREA with data for the trap criteria to match.
8. Type 00999 for the employee number and press Enter. Now Xpediter traps the
transaction as shown in Figure 3-37 on page 3-22. This is because the second
invocation of the transaction was passed a container named CCHREPCOMMAREA
with the characters TEST in positions 26 through 29 (26:4).
3-22 Xpediter/CICS COBOL User Guide
Figure 3-38. Confirm that Container Data Satisfied Enhanced Trap Criteria
10. End your debugging session by typing XPND on a blank CICS screen and pressing
Enter.
2. Type BEFORE 2896 in the COMMAND field and press Enter. This sets a before
breakpoint on statement 2896. As shown in Figure 3-40 on page 3-23, Xpediter
displays the message
Note: If your profile specifies TRAP=ON, starting Xpediter automatically creates a trap
based on netname and terminal ID. If TRAP=OFF, the trap is created when you set
a breakpoint.
3. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6) is
displayed (Figure 3-41) showing the trap Xpediter automatically created based on
netname and terminal ID.
The breakpoints you set will only be taken when the task is running on netname
ACME0027 and terminal 0027. Abends for that netname and terminal will also be
trapped.
3-24 Xpediter/CICS COBOL User Guide
This enhanced trap causes Xpediter to take breakpoints and trap abends only when
the MQ message descriptor has a value of TESTUSER in the MQMD_USERIDENTIFIER
area (the eight characters starting at position 196).
The literal T'TESTUSER' could also have been entered as 'TESTUSER' without the
preceding type specification of T. Because this text type literal is not case-sensitive,
you could also have entered T'testuser', 'Testuser', or 'TeStUsEr'.
This type of trap is useful for enabling enhanced breakpoints in programs for non-
terminal tasks. The transaction that initiates CSQ4CVB1 can be started from any
platform anywhere on the network, and Xpediter will pause execution at the
breakpoint if the specified MQ message descriptor condition is met.
5. End your debugging session by typing XPND on a blank CICS screen and pressing
Enter.
2. Type BEFORE 2896 in the COMMAND field and press Enter. This sets a before
breakpoint on statement 2896. As shown in Figure 3-44 on page 3-25, Xpediter
displays the message
Note: If your profile specifies TRAP=ON, starting Xpediter automatically creates a trap
based on netname and terminal ID. If TRAP=OFF, the trap is created when you set
a breakpoint.
3. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6) is
displayed (Figure 3-45) showing the trap Xpediter automatically created based on
netname and terminal ID.
The breakpoints you set will only be taken when the task is running on netname
ACME0027 and terminal 0027. Abends for that netname and terminal will also be
trapped.
3-26 Xpediter/CICS COBOL User Guide
This enhanced trap causes Xpediter to take breakpoints and trap abends only when
the MQ message data has a value of 1234567 for the seven characters starting at
position 1.
The literal T'1234567' could also have been entered as '1234567' without the
preceding type specification of T.
This type of trap is useful for enabling enhanced breakpoints in programs for non-
terminal tasks. The transaction that initiates CSQ4CVB1 can be started from any
platform anywhere on the network, and Xpediter will pause execution at the
breakpoint if the specified MQ message data condition is met.
5. End your debugging session by typing XPND on a blank CICS screen and pressing
Enter.
breakpoints that are taken based on ICA, CONT, MQMD, or MQD information after the
trap conditions are met.
2. Type BC on statement number 2896 and press Enter. This sets a before conditional
breakpoint on the statement and opens an IF line for entering a condition as shown
in Figure 3-48 on page 3-27. Xpediter also displays the message
Figure 3-48. Setting a Conditional Breakpoint on the Source Listing Screen (2.L)
Figure 3-49. Specifying Enhanced Breakpoint Condition on the Source Listing Screen (2.L)
Note: If your profile specifies TRAP=ON, starting Xpediter automatically creates a trap
based on netname and terminal ID. If TRAP=OFF, the trap is created when you set
a breakpoint.
4. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6) is
displayed (Figure 3-50) showing the trap Xpediter automatically created based on
netname and terminal ID.
The enhanced conditions for the breakpoint you set will be evaluated only when the
task is running on netname ACME0027 and terminal 0027. The breakpoint will be
taken only when the data at MQMD(198:6) is TESTUSER. Abends for that netname
and terminal will also be trapped.
5. End your debugging session by typing XPND on a blank CICS screen and pressing
Enter.
1. Type XPED CSQ4CVB1 on a blank CICS screen and press Enter. The IBM-supplied
sample IBM MQ for z/OS program CSQ4CVB1 is displayed on the Source Listing
screen (2.L) as shown in Figure 3-51.
Testing a COBOL Program 3-29
Figure 3-52. Setting Three Breakpoints on the Source Listing Screen (2.L)
Note: If your profile specifies TRAP=ON, starting Xpediter automatically creates a trap
based on netname and terminal ID. If TRAP=OFF, the trap is created when you set
a breakpoint.
3-30 Xpediter/CICS COBOL User Guide
3. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6) is
displayed (Figure 3-53) showing the trap Xpediter automatically created based on
netname and terminal ID.
None of the breakpoints you set will be taken unless the task is running on netname
ACME0027 and terminal 0027. The conditional breakpoint on statement 2904 will be
taken only if the trap condition and the enhanced condition ICA(1:4)=T'CPWR' are
both met.
This enhanced trap causes Xpediter to take breakpoints and trap abends only when
the initial COMMAREA has a value of 1234567 for the seven characters starting at
position 33.
None of the breakpoints you set will be taken unless the task is running on netname
ACME0027 and terminal 0027 and the enhanced condition ICA(33:7)=T'1234567' is
met. The conditional breakpoint on statement 2904 will be taken only if the trap
condition and the enhanced condition ICA(1:4)=T'CPWR' are both met.
Optimization Considerations
COBOL programs that are optimized using compiler options or using the CA-
OPTIMIZER compiler can be symbolically debugged with Xpediter/CICS. Depending on
the optimizing algorithm employed, execution trace, code stepping, and resuming
execution at another statement under Xpediter/CICS can appear to be incorrect.
Testing a COBOL Program 3-31
An OPT indicator is displayed near the upper right corner of the screen if a C, COBOL, or
PL/I program has been compiled with some level of optimization or inlining, as shown in
Figure 3-55. For COBOL 5.1 and above, OPT(n) is displayed, where n is the level of
optimization. For optimized C programs, either OPT or OPT(n) is displayed, depending on
the level of optimization.
The optimization technique used by high level language compilers attempts to improve
the run-time performance of application programs. The methods typically used involve
the rearrangement of object code to the point where there may be little correspondence
between the sequence of generated machine instructions and the sequence of the source
statements generated by the programmer.
Chapter 4.
Debugging Applications Without Source Code Chap 4
This chapter demonstrates two methods for using sourceless debugging when testing
your applications: PSEUDOSOURCE and Line Mode. You can still use Xpediter/CICS to
set breakpoints, intercept abends, step through instructions, modify data, and generally
test your program.
Line Mode debugging, although somewhat more complicated than using a pseudo-listing
produced by the PSEUDOSOURCE command, still provides a set of commands that allow
sourceless debugging of a COBOL program. Since you do not have a pseudo-listing
available, you are restricted to using offsets and working with a single assembler
instruction. In Line Mode, having a copy of the compiler listing is of tremendous help.
You also need to be able to decipher assembler instructions by looking at the
hexadecimal display of storage that can be obtained from the 2.2 screen.
The following scenario is based on the application transaction XCB2. This is the sample
payroll transaction shipped with Xpediter/CICS that executes the COBOL program
CWDEMCB2. Since sourceless debugging mandates that no source listing exists for the
program in question, you may wish to use a program of your own.
The program was not processed using the Compuware language processor.
A version of the language processor no longer supported was used.
The language processor step did not complete successfully.
The source listing dataset is not defined (or incorrectly defined) to your CICS region.
4-2 Xpediter/CICS COBOL User Guide
The load module timestamp does not match the Xpediter/CICS source timestamp
because:
The program was linked into a library other than the one in use under CICS.
Check your CICS library concatenation.
A new copy of the load module was not brought into storage.
Pressing the help PF key (default PF1) will display specific information on why no source
is available.
Type =2.6.1 in the COMMAND field and CWDEMCB2 in the PROGRAM field, then press
Enter to go to the List of CSECTs screen (2.6.1). Overtype CWDEMCB2 in the LISTING
column with XXDEMCB2 and press Enter to disable the source listing. Be sure to change
the name back to CWDEMCB2 when you have completed the procedures in this chapter,
or simply end your Xpediter session.
Using PSEUDOSOURCE
Sourceless Debugging without Breakpoints
1. On a blank screen, type XPED and press Enter. This activates Xpediter/CICS for your
terminal, turns on the abend trap option, and displays the Primary Menu as show in
Figure 4-1.
Debugging Applications Without Source Code 4-3
Xpediter/CICS is now turned ON and ready to intercept any abends associated with
your terminal and programs.
2. To enable the display of the OFFSET field in Assembler programs, type SET JUST OFF
in the COMMAND field and press Enter.
3. Type PSEUDOSOURCE CWDEMCB2 in the COMMAND line and press Enter. This
automatically transfers you to the Source Listing screen (2.L) and displays the
pseudo-listing created. This is shown in Figure 4-2.
4. Type SET KEEPS OFF and press Enter. When performing sourceless debugging with a
pseudo-listing, no variable names are generated, so keeps by variable name cannot be
set. The SET KEEPS OFF command closes the keep window portion of the source
listing screen while in stop/abend state and displays more source lines.
5. Press Clear to return to CICS to start your test.
4-4 Xpediter/CICS COBOL User Guide
6. On a blank CICS screen, type XCB2 or your transaction ID and press Enter. This
displays the Demonstration Transaction screen shown in Figure 4-3.
Since an ASRA took place on an MP instruction, there is a good chance that one or
both of the multipliers contain invalid packed data. To test this theory, you can view
the data. First, look at the instruction MP X'1C0'(5,13),X'1C8'(3,13). Since an MP
instruction utilizes an IBM SS format, you can determine the first operand is 5 bytes
long and located at X'1C0' off register 13. The second operand is 3 bytes long and
located at X'1C8' off register 13. The next step is to find out where the data fields
being multiplied originated.
Notice the interrupt offset is X'F04'. In order to determine the statement associated
with the abend, we need to refer to the hardcopy of the compiler listing (Figure 4-5).
In our example, the LIST compiler option was used, so we need to refer to the
Debugging Applications Without Source Code 4-5
Generated Assembler Listing section of the listing. Look for the closest offset that is
less than the interrupt offset (X'F04').
In our example, statement 423 contains a COMPUTE statement at offset X'EF0'. The
next statement, also a COMPUTE statement, is at offset X'F14'. Therefore the
statement that failed is at offset X'EF0', or COBOL compiler statement 423. Also
notice that statement 423 does not multiply WA-HOURS or WA-RATE directly, but
uses the PACK instruction to convert them from NUMERIC-ZONED format to
decimal packed format. It is important to know this, as changing the value of these
fields and attempting to resume at the MP will fail. Note the actual offset of the first
instruction in statement 423 is X'EF0'. It will become important later in this example.
000423 COMPUTE
000EF0 F242 D1C0 A1A4 PACK 448(5,13),420(3,10) TS2=0 WA-HOURS
000EF6 960F D1C4 OI 452(13),X'0F' TS2=4
000EFA F224 D1C8 A183 PACK 456(3,13),387(5,10) TS2=8 WA-RATE
000F00 960F D1CA OI 458(13),X'0F' TS2=10
000F04 FC42 D1C0 D1C8 MP 448(5,13),456(3,13) TS2=0 TS2=8
000F0A F363 A038 D1C1 UNPK 56(7,10),449(4,13) CURR-PAY TS2=1
000F10 96F0 A03E OI 62(10),X'F0' CURR-PAY+6
000424 COMPUTE
000F14 F266 D1C0 A038 PACK 448(7,13),56(7,10) TS2=0 CURR-PAY
000F1A 960F D1C6 OI 454(13),X'0F' TS2=6
000F1E F223 D1C8 A192 PACK 456(3,13),402(4,10) TS2=8 WA-TAX-RAT
000F24 960F D1CA OI 458(13),X'0F' TS2=10
000F28 FC62 D1C0 D1C8 MP 448(7,13),456(3,13) TS2=0 TS2=8
000F2E 920F D1C6 MVI 454(13),X'0F' TS2=6
000F32 F143 D1C2 D1C2 MVO 450(5,13),450(4,13) TS2=2 TS2=2
000F38 F363 A040 D1C3 UNPK 64(7,10),451(4,13) CURR-TAXES TS2=3
If you look for statement 423 in the Procedure Division of your listing (Figure 4-6),
youll notice the program is trying to multiply WA-HOURS by WA-RATE. One or both
of these fields contains invalid data that caused the exception.
000421 300-EMPLOYEE-PAY-RTN.
000422 IF WA-TYPE EQUAL 'N' OR 'I' OR 'S' 69
000423 1 COMPUTE CURR-PAY EQUAL WA-HOURS * WA-RATE 12 85 76
000424 1 COMPUTE CURR-TAXES EQUAL CURR-PAY * WA-TAX-RAT 13 12 82
000425 1 ADD CURR-PAY TO WA-YTD-GRS 12 83
000426 1 ADD CURR-TAXES TO WA-YTD-TAX. 13 84
000427
Modifying Storage
Next, you will apply the values from the listing to view and modify the data in storage.
Since for all intents and purposes, Xpediter/CICS believes we are debugging an Assembler
program, we can find offsets by examining the instruction where the abend occurred. We
can see operand 1 is at offset X'1C0' off of register 13 and has a length of 5. Operand 2 is
at offset X'1C8' off of register 13 and has a length of 3. However, we know from our
previous discussion that these offsets reflect the temporary areas used by the compiler. In
order to verify where the variables reside, we can reference our compiled listing.
To find the offsets in working storage, refer to your hardcopy listing. Figure 4-7 illustrates
an example of where the values for WA-HOURS and WA-RATE reside. Notice the offset
into working storage for WA-HOURS is X'1A4'. The offset into working storage for WA-
RATE is X'183'.
4-6 Xpediter/CICS COBOL User Guide
1. Type =2.2 in the COMMAND field and press Enter, or press PF14, to transfer to the
Memory Display screen (2.2) as shown in Figure 4-8.
Figure 4-8. Viewing Program Storage on the Memory Display Screen (2.2)
The Memory Display screen (2.2) shows a hexadecimal dump of your test program.
Any instruction or data in your program is available from here. Simply type the
displacement you wish to see in the HEX (or ADD) OFFSET fields.
2. To display the contents of your first multiplier (WA-RATE), use Xpediter/CICS to
display the programs working storage by pressing PF16 (WS), then type 183 in the
OFFSET field and press Enter. The display is positioned at the first data item as shown
in Figure 4-9.
Field WA-RATE is 5 bytes long and contains 00950. This is a valid number and is not
the cause of the data exception.
Debugging Applications Without Source Code 4-7
Figure 4-9. WA-RATE Data Field on the Working Storage Screen (2.3)
3. Press PF16 (WS) to refresh the screen, then display the contents of the second data
item (WA-HOURS) by typing 1A4 in the OFFSET field and pressing Enter. The screen
is positioned at the second data item as shown in Figure 4-10.
Figure 4-10. WA-HOURS Data Field on the Working Storage Screen (2.3)
This time, the displayed field contains bad data. The three-byte field contains
5B5B5B, otherwise known as $$$. This error caused the ASRA.
4. Position the cursor on the bad data ($$$).
5. Replace the bad data by typing a valid number, such as 040, over the data.
6. Press Enter to process the change. The field contains the valid data shown in Figure
4-11.
4-8 Xpediter/CICS COBOL User Guide
Figure 4-11. WA-HOURS Data Field on the Working Storage Screen (2.3)
Now that you have corrected the data causing the error, you can continue with the
test.
7. Press PF6, or type =2.L and press Enter, to return to the Source Listing screen.
8. To continue your test, re-execute the statement in error. Remember earlier we found
that statement 423 really begins with the instruction at offset x'EF0'.
We can see that offset x'EF0' is associated with the instruction at line 196. In order to
correctly re-execute the statement, enter GOTO 196 (or GOTO +EF0) in the
COMMAND line and press Enter. This relocates the execution pointer to this line as
shown in Figure 4-12.
Figure 4-12. Source Listing Screen (2.L) after Using GOTO 196 Command
9. Press PF9 several times to step through the MP instruction on line 200. This time, the
transaction should not abend.
10. Type GO in the COMMAND field and press Enter.
The program finishes without further abends, concluding our exercise in sourceless
debugging (Figure 4-13).
Debugging Applications Without Source Code 4-9
11. Change the listing name back to CWDEMCB2 as described in Preparing for
Sourceless Debugging on page 4-2. This will reset the listing name so you can again
access the COBOL source for this program.
Line Mode
Sourceless Debugging without Breakpoints
1. On a blank screen, type XPED and press Enter. This activates Xpediter/CICS for your
terminal, turns on the abend trap option, and displays the Primary Menu as shown
in Figure 4-14.
Xpediter/CICS is now turned ON and ready to intercept any abends associated with
your terminal and programs.
2. To continue with this section, you must first disable any Xpediter/CICS source listing
for CWDEMCB2. Type =2.6.1 in the COMMAND field and CWDEMCB2 in the
MODULE field, then press Enter to go to the List of CSECTS screen (2.6.1). Overtype
CWDEMCB2 in the LISTING column with XXDEMCB2 and press Enter to disable the
source listing. Be sure to change the name back to CWDEMCB2 when you have
completed the procedures in this chapter, or simply end your Xpediter session.
3. Press Clear to return to CICS to start your test.
4. On a blank CICS screen, type XCB2 or your transaction ID and press Enter. This
displays the Demonstration Transaction screen shown in Figure 4-15.
4-10 Xpediter/CICS COBOL User Guide
The program name is displayed at the top of the screen. Below the program name is
the cause of the abend, which is a data exception, and the abend code, which is
ASRA. Statistical information such as the current offset of the interrupted
instruction, its physical address, and the program status word (PSW) in use are
displayed. Notice that Xpediter/CICS displays the resume offset and address, should
you wish to continue processing.
Next we see the current instruction, complete with its operation code and operands.
Xpediter/CICS also shows that disassembled instruction to the right. From this, you
see the ASRA occurred on a multiply decimal (MP) instruction.
Toward the bottom of the screen, all 16 of the current general purpose registers are
displayed.
Since an ASRA took place on an MP instruction, there is a good chance that one or
both of the multipliers contain invalid packed data. To test this theory, you can view
the data. First, look at the instruction MP X'0F0'(5,13),X'0F8'(3,13). Since an MP
instruction utilizes an IBM SS format, you can determine the first operand is 5 bytes
long and is located x'0F0' off register 13. The second operand is 3 bytes in length,
located x'0F8' off register 13. The next step is to find out where the data fields being
multiplied originated.
Notice that the interrupt offset is x'1134'. Refer to your hardcopy of the condensed
listing to locate the statement containing offset x'1134' (Figure 4-17). Look for the
closest offset that is less than the interrupt offset.
Debugging Applications Without Source Code 4-11
In our example, statement 359 contains a COMPUTE statement at offset x'1120'. The
next statement, also a COMPUTE statement, is at offset x'1144'. Therefore, the
statement that failed is at offset x'1120'.
If you look for statement 359 in the Procedure Division of your listing, youll notice
that the program is trying to multiply WA-HOURS by WA-RATE. One or both of these
fields contains invalid data that caused the exception.
Modifying Storage
Next, you will apply the values from the listing to view and modify the data in storage.
1. To find the offsets in working storage, refer to your hardcopy listing. Figure 4-18
illustrates an example of the values for WA-HOURS and WA-RATE. Notice the offset
into working storage for WA-HOURS is x'1DC' and the offset into working storage for
WA-RATE is x'1BB'.
2. Type =2.2 in the COMMAND field and press Enter, or press PF14, to transfer to the
Memory Display screen (2.2) as shown in Figure 4-19.
Figure 4-19. Viewing Program Storage on the Memory Display Screen (2.2)
The Memory Display screen (2.2) shows a hexadecimal dump of your test program.
Any instruction or data in your program is available from here. Simply type the
displacement you wish to see in the HEX (or ADD) OFFSET field.
3. To display the contents of your first multiplier (WA-RATE), first use Xpediter/CICS to
display the programs working storage by pressing PF16 (WS), then type 1BB in the
OFFSET field and press Enter. The display will be positioned at the first data item as
shown in Figure 4-20.
Field WA-RATE is five bytes long and contains 00950. This is a valid number and is
not the cause of the data exception.
Figure 4-20. WA-RATE Data Field on the Working Storage Screen (2.3)
4. Press PF16 (WS) to refresh the screen. Then display the contents of the second data
item (WA-HOURS) by typing 1DC in the OFFSET field and pressing Enter. The screen
is positioned at the second data item as shown in Figure 4-21.
Figure 4-21. WA-HOURS Data Field on the Working Storage Screen (2.3)
This time, the displayed field contains bad data. The three-byte field contains
5B5B5B, otherwise known as $$$. This error caused the ASRA.
5. Position the cursor on the bad data ($$$).
6. Replace the bad data by typing a valid number, such as 040, over the data.
7. Press Enter to process the change. The field contains valid data shown in Figure 4-22.
Now that you have corrected the data causing the error, you can continue with the
test.
4-14 Xpediter/CICS COBOL User Guide
8. Press PF6, or type =2.20 and press Enter, to return to the Assembler Break/Abend
screen (2.20) shown in Figure 4-16 on page 4-10.
9. Change the resume offset to position to the beginning of the COMPUTE statement
by typing 1120 in the RESUME OFFSET field.
10. To continue your test, re-execute the COMPUTE statement by pressing PF12 or by
typing GO in the COMMAND field and pressing Enter. This time, the transaction
should not abend.
The program finishes without further abends, concluding our exercise in sourceless
debugging (Figure 4-23).
11. Change the listing name back to CWDEMCB2 as described in Preparing for
Sourceless Debugging on page 4-2. This will reset the listing name so you can again
access the COBOL source for this program.
5-1
Chapter 5.
Debugging Subroutines Chap 5
This chapter discusses how to test load modules that consist of multiple programs or
control sections (CSECTs). The sections of the chapter show how to access source code
and set breakpoints in calling and called programs, execute a program with multiple
CSECTs, and return to the calling program. It also provides ways to select and exclude
CSECTs.
Many modules consist of individual source members that are compiled or assembled
separately, then link edited together to create a load module. Xpediter/CICS lets you
debug these CSECTs at the source level, even when the CSECT is not defined to CICS as a
program resource.
The automatic CSECT support facility provides screens that list the CSECTs associated
with each program. You choose the program for which you need to see the source.
Facilities are also available so that IBM or vendor-supplied CSECTs may be excluded from
automatic CSECT processing.
In this chapter, you will set a breakpoint in the calling program CWDEMCB2, then access
the source code for CWCDSUBA and set a breakpoint there. CWCDSUBA is a subroutine
linked into CWDEMCB2 that does not have an entry in the program resources to define it
to CICS. After setting the breakpoint, you will execute the transaction that runs
CWDEMCB2 and step through the source in CWCDSUBA.
Note: If you cannot obtain a source listing for CWCDSUBA, your site may not be
licensed for Assembler support. When the NO SOURCE AVAILABLE message
appears, press PF1 for source information. If your site is not licensed for
Assembler support, you can still read through this chapter to understand the
concepts presented.
The chapter also includes details on how Xpediter steps through selected and unselected
CSECTs and Language Environment user condition handlers.
Note: DLL modules are supported at the CSECT level on the 2.6.1 screen described later
in this chapter. DLL modules are also supported at the function level via the 2.6.F
screen. If you are debugging a DLL module containing multiple functions, refer
to the Xpediter/CICS Reference Manual for further details.
3. Type F CWCDSUBA in the COMMAND field. Press Enter to find the call to
CWCDSUBA.
4. Type the B (Before) line command on the statement number for the call, which is
statement 523 in this example, and press Enter. The B flag on the Source Listing
screen (2.L) shows that the breakpoint has been set (Figure 5-2).
5. Type =2.6.1 in the COMMAND field and press Enter to display the List of CSECTs
screen (2.6.1) (Figure 5-3).
This screen shows all the CSECTs linked together to form the load module
CWDEMCB2. The SELECTED field indicates whether that CSECT has been selected
for debugging. CICS (DFH), COBOL (IGZ), and Language Environment (CEE)
modules are automatically excluded. The source for CWDEMCB2 displays
automatically; you do not need to select it.
Debugging Subroutines 5-3
3. Type 00005 in the field preceding ENTER EMPLOYEE NUMBER and press Enter. The
Source Listing screen (2.L) appears as shown in Figure 5-7.
Note that the program is stopped before the call to the subroutine.
Debugging Subroutines 5-5
4. Press PF9 (GO 1) to follow the logic into CWCDSUBA. The Source Listing screen (2.L)
is displayed for CWCDSUBA (Figure 5-8).
5. Type GO 5 1 in the COMMAND field and press Enter. Watch closely while
Xpediter/CICS slow steps through CWCDSUBA (Figure 5-9). When five statements
have executed, Xpediter/CICS displays the message
2. Press PF9 (GO 1) to step back to the calling program (Figure 5-11).
Debugging Subroutines 5-7
3. Press PF12 to continue execution of the calling program. The screen displays the
*** TRANSACTION COMPLETE *** message (Figure 5-12).
Support differs, however, at the time breakpoints are set. Setting a breakpoint in a static
subroutine automatically causes it to be selected, but Xpediter lets you set a breakpoint
in a dynamic subroutine with or without first selecting it. Xpediter allows the breakpoint
because dynamic subroutines are independent load modules which Xpediter cannot
distinguish from main programs until execution time. A module might act as a dynamic
subroutine under one transaction, then be invoked as the main program of another
transaction.
5-8 Xpediter/CICS COBOL User Guide
Dynamic subroutines can be selected on the List of CSECTs screen (2.6.1) by first typing
the module name in the MODULE field at the top of the screen. After Xpediter returns
the CSECT information, the module can be selected in the same way as any other CSECT.
If abend occurs in unselected subroutine, Xpediter will position to the call statement
in the calling module.
Xpediter will step into the selected CSECT and indicate that a program boundary has
been crossed.
Selected CSECT in call sequence
For example, if stepping a mainline program call statement to an unselected subroutine
when stepping (GO n)
which in turn calls a selected subroutine, Xpediter will step into the selected subroutine
and indicate that a program boundary has been crossed. The intermediate unselected
CSECT is executed transparently.
As shown in the table, with the GO (or RESUME) command, Xpediter will stop at a
breakpoint regardless of the CSECTs selection status. If the CSECT is unselected and not
the main program CSECT, Xpediter will auto-select it. The CSECT will remain selected
until it is manually unselected or the session is ended.
The stepping function (GO n), however, stops at breakpoints only in selected CSECTs. If a
CSECT is unselected, stepping will execute it transparently regardless of whether or
not it contains a breakpoint and the CSECT will not be auto-selected.
All three situations are treated as conditions. If a statement being stepped causes a
condition to be raised, Xpediter will step into the UCH, but only if it is selected on the
List of CSECTs screen (2.6.1).
Note that if the condition is the result of an abend and Xpediter was set up on the Trap
Abend screen (1.6) to trap it, Xpediters trap will preempt Language Environments
condition handler. To allow the UCH to get control, the TRAP ABEND option on the 1.6
screen should be set to NO. See the Xpediter/CICS Reference Manual for more information on
the trap facility.
If the UCH is able to correct the condition and retry, Xpediter will step back into the
main program or selected subroutine at the location where execution is being resumed.
Table 5-2 summarizes Xpediters criteria and resulting actions in regard to UCHs.
Table 5-2. Stepping User Condition Handlers
Situation When Stepping
Xpediter Action
(GO n)
Xpediter will step into the UCH if it was selected on the 2.6.1 screen.
Statement raises a condition For example, if a mainline program add statement causes an abend while
stepping, and the UCH is not selected, Xpediter will ignore any subroutines
called by the UCH even if they are selected.
If the UCH is selected, Xpediter will step into it and any of its subroutines
that are also selected.
When a statement is being stepped and causes a condition to be raised,
UCH percolates or promotes
Xpediter will step into any selected UCH invoked by the percolation
condition.
request, regardless of the status of the UCH issuing that request.
When a statement is being stepped and causes a condition to be
raised, Xpediter will step back into the module being resumed into if
it is selected.
1. Type XPED 0.1 on a blank CICS screen and press Enter to display the Set Profile
Defaults screen (0.1).
2. Press PF8 to display the next page of the Set Profile Defaults screen (Figure 5-14).
6. Type AUTOSEL in the PROFILE NAME field and press Enter to save the profile.
7. To load the profile for your next debugging session, enter XPED P=AUTOSEL on a
blank CICS screen. The profile is loaded, and the CWCDSUBA CSECT is automatically
selected.
This technique can also be used to set the CSECT field to ALL, selecting ALL CSECTS
when this profile is loaded.
5-12 Xpediter/CICS COBOL User Guide
6-1
Chapter 6.
Analyzing Program Execution Chap 6
This chapter shows how to analyze the execution of a program in order to uncover loops
and dead code as well as validate logic paths. It discusses how to prepare for analysis of a
program, execute the program, then analyze the data.
The COUNT command is used to designate portions of the application code you want to
analyze. As each designated statement is executed, a counter is incremented. After your
test is completed, Xpediter/CICS examines the counters and provides statistics about the
executed code.
appears. This indicates that counts have been set on all paragraphs in the program.
3. Type SET FOOT ANALYZE and press Enter to display the STATEMENT ANALYSIS
footing. When you are done using FOOT ANALYZE (or any FOOT command), turn it
off by typing SET FOOT OFF and pressing Enter.
4. Type =1.1 in the COMMAND field and press Enter to display the List Breakpoints
screen (1.1) (Figure 6-1).
6-2 Xpediter/CICS COBOL User Guide
This screen shows the statements that were set to be counted, as well as the statistics
concerning the execution. The STATEMENTS TO BE ANALYZED field is set to 18,
indicating that there are 18 paragraphs in the program in this example. The ANALYZED
STATEMENTS NOT EXEC field is set to 18 because the program has not been executed
yet. All other values are set to 0 for the same reason. Notice that the COUNT fields for
each statement are set to 0.
CAUTION:
The next step causes a storage violation. Before performing that step, you should
make sure your CICS region is not configured to terminate in response to storage
violations.
4. Type 00333 and press Enter. The XCB2 message screen appears, indicating that a
storage violation has occurred (Figure 6-2).
In this example, Xpediter/CICS allowed a storage violation to occur because storage
protection was turned OFF. The storage violation option was used because it provides
a graphic example of a looping problem.
Analyzing Program Execution 6-3
Figure 6-3. Showing Statistics For Analysis on the Source Listing Screen (2.L)
In this example, the statistics in the STATEMENT ANALYSIS area have changed to
show the number of statements that were executed.
This area shows that 18 statements were set for analysis. Of these, nine were executed
and nine were not. The nine paragraphs were executed a total of 26 times (TOTAL
ANALYZED COUNT), with one executing 17 times (HIGHEST COUNT). This indicates
a loop in the program. HIGHEST COUNT STMT points to the statement number
where the loop occurred. PARA shows the name of the paragraph that contains that
statement.
Also note that the COUNT parameters have changed. The first statement was
executed twice: once to send the initial XCB2 screen and once to process the
information on that screen.
3. Type L 558 in the COMMAND field to locate statement 558 and press Enter to see
where and why the loop occurred (Figure 6-4).
6-4 Xpediter/CICS COBOL User Guide
Figure 6-4. Browsing Source Code on the Source Listing Screen (2.L)
In this case, the loop occurred because the subscript is being checked for a maximum
value greater than 16, while the table has only 16 entries.
You can use the FIND COUNT command to browse through the source listing and
examine the COUNT associated with each paragraph. You can also use the SHOW
COUNT command to display the lines selected for analysis. By looking at these counts,
you can easily see how your program is processing. If Xpediters trace function has been
activated, you can also view the Program Trace screen (2.4) to review the logic flow.
You can reset the analysis by entering a new COUNT command. It can be turned off by
entering DELETE COUNT.
You can also use the COUNT command to check the overall efficiency of your program.
Use the COUNT ALL PARA command to set up an analysis for the entire program, then
execute each logic path in the program without resetting the analysis. Review the
STATEMENT ANALYSIS to determine if any code has not been executed. By leaving the
analysis active and executing all logic paths in the program, you can easily pinpoint code
that was not executed.
Chapter 7.
Monitoring Tasks Started from Remote Terminals Chap 7
This chapter describes how to use the Trap Summary screen (1.6) to monitor remote
terminals and non-terminal related tasks. The Trap Summary screen assigns a master
terminal to be used to trap abends occurring at other terminals or in non-terminal tasks.
The first four sections in this chapter assume that an end user is experiencing a problem
with a program. A person in the systems group will monitor the program for abends.
These sections show how to set remote traps and view a remote session, how to defer
remote trap selection, and how to release trapped terminals. The last section explains the
technique you should use when debugging programs that are not related to terminals.
Note: For information on debugging MRO and ISC transactions, distributed transaction
processing, and distributed program link, refer to the Xpediter/CICS Reference
Manual.
3. Type 6 in the COMMAND field and press Enter. The Trap Summary screen (1.6)
appears. This screen is used to specify the terminals to be monitored for abends
and/or breakpoints.
The display on your screen will show an entry for your terminal. When the XPED
and XPRT transactions are used, an abend trap is automatically set for the terminal
on which these transactions are entered.
7-2 Xpediter/CICS COBOL User Guide
In this example, you know the transaction that is causing the problem. Set an abend
trap for a remote terminal.
4. Type ALL in the NETNAME and TERM fields.
5. Type XCB2 in the TRAN field.
6. Type an asterisk (*) in the PROGRAM field and press Enter to specify that all
programs involved in transaction XCB2 are monitored.
In Figure 7-2, for example, three traps have been set:
For any transaction entered from terminal A011.
For XCB2 transaction regardless of its origin. This means that all transactions
and programs executed at A011 are monitored for abends, as well as any
programs involved in the transaction XCB2. If abend situations occur, the
information is displayed on your terminal.
The third trap is an enhanced trap. If an abend occurs in any program beginning
with CWDEM running at terminal A999, and the initial commarea associated
with the task contains the string test starting in position 16 for a length of 4,
the information is displayed on your terminal. Also, any breakpoints in programs
beginning with CWDEM will be taken if the initial commarea meets the criteria
above and the transaction was started on terminal A999.
7. Press Clear to return to a blank CICS screen.
You now have control over the execution of this program. You can set breakpoints,
skips, and keeps, view program storage, step through the program, and resume
execution at another point. In this demonstration, you fix the data and continue
processing.
5. Position the cursor over the $$$ in WA-HOURS, type 040, and press Enter.
6. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6)
(Figure 7-4 on page 7-3) is displayed. Notice that the second trap entry has a
highlighted arrow following the CMD field. This arrow indicates which trap caused
the task to be routed to your session.
7. Return to the Source Listing screen (2.L) by typing SOURCE in the COMMAND field
and pressing Enter.
8. Press PF12 (GO) to continue processing. The message TASK WAS RESUMED is
displayed (Figure 7-5), and control is returned to the user terminal (Figure 7-6).
7-4 Xpediter/CICS COBOL User Guide
Figure 7-5. Resuming a Remote Task on the Source Listing Screen (2.L)
The List Abends screen (1.3) (Figure 7-7) displays the break/abend summary information
retained each time a break/abend is trapped. If a remote break/abend is still active, it is
highlighted and can be selected by typing an S in the SEL column and pressing Enter. The
Source Listing screen (2.L) is displayed for that task, and you have control over the
execution of the program. Other entries shown on this screen are abends that have been
trapped by this terminal during the debugging session.
Monitoring Tasks Started from Remote Terminals 7-5
Intercept the trap, fix the problem, and resume the program.
Temporarily remove your trap and resume the program without fixing the problem.
Select the trapped task on the List Abends screen (1.3), then access the Exit Session
screen (X) and request a dump of the program.
End the debugging session by entering =X from any Xpediter/CICS screen.
When you end your session while remote abends are waiting and traps are active, all
trapped transactions are automatically freed and all abend traps are reset. To end your
session:
1. Type =X and press Enter. The Exit Session screen (X) (Figure 7-8) appears.
The lower portion of the Exit Session screen displays a summary of the current
testing session. The ACTIVE ABEND TRAPS field lets you know that you could be
receiving trap bulletins. The WAITING TASKS field indicates the number of remote
abends that have been trapped and have not yet been resumed or terminated. These
transactions are suspended until they are freed.
2. Type Y in the END SESSION field. If a dump is required, type Y in the DUMP OPTION
field. If you would like to execute a user or system script, type the script member
name in the POST SCRIPT field. Press Enter.
7-6 Xpediter/CICS COBOL User Guide
To release a remotely trapped transaction without ending your session, do the following:
Note: If you clear the screen or press Enter on the Exit Session screen (X) with NO in the
END SESSION and DUMP OPTION fields, any remotely trapped transactions will
not be freed.
Figure 7-9. Trap for Asynchronous Tasks on the Trap Summary Screen (1.6)
To prepare for debugging an asynchronous task, set a trap as shown in Figure 7-9 to
provide abend protection for the program. Also set a breakpoint at the beginning of the
program to give you control of the program as soon as it starts.
Monitoring Tasks Started from Remote Terminals 7-7
To set a breakpoint at the beginning of a program, type the program name in the
MODULE field in the upper left portion of the screen, type BEFORE in the COMMAND
field, and press Enter.
7-8 Xpediter/CICS COBOL User Guide
8-1
Chapter 8.
Providing Storage Protection Chap 8
This chapter discusses the storage protection features of Xpediter/CICS, including setting
storage protection and allowing storage violations.
The first two sections show how Xpediter/CICS handles a storage violation and how you
can allow processing to continue after a violation has been intercepted. This exercise is
done using the XPED transaction.
For more information regarding storage violation protection, refer to the Xpediter/CICS
Reference Manual.
1. Type XPED 1.8 in the upper left corner of a blank CICS screen.
2. Press Enter to display the Storage Protection screen (1.8) (Figure 8-1).
3. Type CWDEMCB2 in the PROGRAM field in the middle of the screen and type Y in
the STORE field under PROTECTION OPTIONS.
4. Press Enter to enter these values and redisplay the Storage Protection screen (1.8). See
Figure 8-2.
8-2 Xpediter/CICS COBOL User Guide
On the Storage Protection screen (1.8), Xpediter/CICS assigns a value of USER in the
TYPE field, indicating that this entry was set up by the user. The current terminal is
automatically entered in the TERM field.
The asterisks in the TRAN field indicate that this entry is valid for any transaction that
executes the program CWDEMCB2. The protection options FETCH, SHR, PGM, and CMD
Store are automatically set to NO. These entries are valid during the current debugging
session. For more information about these fields, press PF1.
and
to show that a potential storage violation has been intercepted and prevented.
When storage protection is turned ON, Xpediter/CICS intercepts any program that
attempts to write in a CICS storage area that the program does not own.
Xpediter/CICS intercepts all programs that violate CICS storage, but in certain
instances, you may not agree with its analysis. The ALLOW command is used for
these cases.
In this example, the user might decide that the subscript is acceptable and that the
ALLOW command should be used to permit the storage violation to occur.
Providing Storage Protection 8-3
Note: Xpediter/CICS is shipped with the ALLOWCM global parameter set to OFF for the
XPED transaction. Unless this value has been changed to ON at your site, you
will be unable to use the ALLOW command to allow the storage violation
described here. Read the remainder of the exercise to understand the concepts
presented.
is displayed to show that Xpediter/CICS will allow the storage violation to occur.
You would continue with the next step.
b. If the message
Chapter 9.
Interfacing with Abend-AID for CICS Chap 9
This chapter discusses the interface to Abend-AID for CICS, which allows you to access
Abend-AID for CICS without leaving Xpediter/CICS.
This exercise assumes that you have completed the examples in Chapter 3, Testing a
COBOL Program.
Note: If your site is using a release of Abend-AID for CICS other than that shown in this
chapter, your screens may appear different.
Refer to the Abend-AID for CICS Reference Manual for more information on the use of Abend-
AID for CICS.
5. To cause an AEIM abend, type 00002 in the field preceding ENTER EMPLOYEE
NUMBER and press Enter. The Source Listing screen (2.L) (Figure 9-3) will be
displayed.
Xpediter/CICS intercepts the abend and reports on the status of the problem.
However, you may need more information to resolve the problem. To obtain it, we
will access Abend-AID for CICS and issue a snap dump to produce a diagnostic report
for this AEIM abend.
Interfacing with Abend-AID for CICS 9-3
6. Type MENU in the COMMAND field and press Enter to redisplay the Xpediter/CICS
Primary Menu.
7. Type 7 in the COMMAND field and press Enter to display the Abend-AID for CICS
Interface menu (7) (Figure 9-4).
1. To issue a snap dump, type 1 in the COMMAND field of the Abend-AID for CICS
Interface Menu (7).
2. Press Enter. A snap dump is taken for the AEIM abend, and Abend-AID for CICS is
automatically invoked to create the report for this abend. The Diagnostic Summary
of the Abend-AID for CICS report appears as shown in Figure 9-5.
Note: If the report file is set up to suppress duplicate reports and the current snap is
deemed a duplicate and suppressed, Abend-AID will not return a report
number to Xpediter. This will cause the report file directory to be displayed
instead of the current report. From the directory screen, you may use Abend-
AIDs masking facilities to filter the reports that are displayed.
9-4 Xpediter/CICS COBOL User Guide
The Diagnostic Summary gives detailed diagnostics about the trapped abend. The
paragraph at the top of the screen identifies the abend code (AEIM), program name
(CWDEMCB2), abending transaction (XCB2), terminal, and user ID. Additional
paragraphs provide a detailed analysis of the abend.
Abend-AID for CICS -------- Diagnostic Summary -------- Row 000001 of 000063
COMMAND ===> SCROLL ===> CSR
An AEIM abend occurred in program CWDEMCB2. The abending transaction was
XCB2 running at terminal 0023 for user ID MYUSRID.
Analysis of the abend:
The AEIM abend occurred when a READ request to a file (or User maintained
Data Table) DBUGEMP could not be satisfied because the record desired could
not be found in the file.
If this is a Data Table, the record may be present but may have been
rejected at initial load time by user exit "XDTRD" or may have been
subsequently deleted from the data table.
You may want to specify "HANDLE CONDITION NOTFND.." to trap this condition
in the future. The following is the search argument of the record that was
not found on Data Set DBUGEMP :
Level/Field Name Picture/Type Value
01 VSAM-EMP-RECORD
02 EMP-NUM-KEY X(5) 00002
Entry=0000129(ACMEC123) Code=AEIM CF450QCV AssistMenu=PF24 More...
3. Press PF8 to scroll through the report. A report example is shown in Figure 9-6.
Abend-AID for CICS -------- Diagnostic Summary -------- Row 000026 of 000063
COMMAND ===> SCROLL ===> CSR
Next Sequential Instruction
000441 MOVE ZEROS TO EMP-RECORD-TABLE.
This statement is contained in paragraph "900-PROCESS-00002-SELECTION" of
program CWDEMCB2.
The program was compiled on 28MAY2003 at 11:11:29 and is 002020 bytes long.
It is part of load module CWDEMCB2 which was loaded from
SALESSUP.ACMEC123.LOADLIB. It was link edited on 28MAY2003. The load module is
002C38 bytes long. The program AMODE is ANY. The program RMODE is ANY.
The execution key for this program was USER_KEY.
Last Call or EXEC CICS Request
The last call or 'EXEC CICS' command was:
Entry=0000129(ACMEC123) Code=AEIM CF450QCV AssistMenu=PF24 More...
The Abend-AID for CICS report contains additional information that can be directly
accessed by entering the sections number or name in the COMMAND field.
4. To display a menu of the report sections, press PF6. A report menu appears as shown
in Figure 9-7.
Interfacing with Abend-AID for CICS 9-5
Abend-AID for CICS -------- Diagnostic Summary -------- Row 000020 of 000067
COMMAND ===> SCROLL ===> PAGE
Analysis of the abend:
to handle the condition using the "EXEC CICS HANDLE CONDITION' command. If
necessary, use t ----------- Row 00001 of 00020 ------------ or information
from the CICS tr | 1 or DIAG - Diagnostic Summary | of the
exception condit | 2 or NSI - Diagnostic Summary |
| 3 or REGS - Registers |
| 4 or TRACE - CICS Trace |
Next Sequential | 5 or ENQ - Enqueues Held |
| 6 or EIB - User EIB |
The next stateme | 7 or PROG - Program Information Menu |
| 8 or PLIST - Program Link Summary |
000575 | 9 or PSTOR - Program Link Summary | YMSG.
| 10 or LINK - Program Link Summary |
This statement i | 11 or EXTER - Program Link Summary | ELECTION" of
program CWDEMCB2 | Tab to the number or command Enter to |
| process it. |
| CF450QCV End=PF03 More... |
-------------------------------------------
The program was compiled on 28MAY2003 at 11:11:29 and is 002020 bytes long.
It is part of load module CWDEMCB2 which was loaded from
Entry=0000005(ACMEC123) Code=AEIM CF450QCV AssistMenu=PF24 More...
1. To return to the Abend-AID for CICS Interface Menu (7), press PF4 until you are
returned to Xpediter/CICS. The menu appears as shown in Figure 9-8.
Note: Your Abend-AID for CICS Directory screen display will differ from the one shown
here because abend activity varies from one CICS region to another.
9-6 Xpediter/CICS COBOL User Guide
Abend-AID for CICS --- Abend-AID for CICS Directory --- Row 000001 of 000002
COMMAND ===> SCROLL ===> PAGE
FDBRC2100I User MYUSRID successfully logged on
M Menu L Lock H Dup History R Recall T Terminate Analysis
S Diag U Unlock I Information E Migrate C Change Priority
D Delete G Messages A Analyze P Print N Contact Information
Entry Job Name Code Tran Date Time Program Offset Dups Status
******* ******** ****** **** ********* ***** ******** ****** **** *******
0000005 ACMEC123 AEIM XCB2 12AUG2003 08:19 CWDEMCB2 0014F2 0 COMPLET
0000004 ACMEC123 ASRA XCB2 12AUG2003 08:06 CWDEMCB2 001134 0 COMPLET
**************************** BOTTOM OF DATA ******************************
Type a line command and press Enter to process it
CF450QCV AssistMenu=PF24
1. To return to the Abend-AID for CICS Interface Menu (7), press PF3. The menu
appears, and you are now back in Xpediter/CICS.
2. To view the diagnostic messages, type 3 in the COMMAND field.
3. Press Enter to display the Abend-AID for CICS Diagnostic Information screen (Figure
9-10).
Abend-AID for CICS ------ Diagnostic Information ------ Row 000001 of 000009
COMMAND ===> SCROLL ===> PAGE
The transaction was terminated with the AEIM abend because the exceptional
condition NOTFND occurred for which there was no 'EXEC CICS HANDLE
CONDITION' request active.
Either change the application program to prevent the condition recurring, or
to handle the condition using the "EXEC CICS HANDLE CONDITION' command. If
necessary, use the contents of the EIBRCODE field in the EIB or information
from the CICS trace table to assist in determining the cause of the
exception condition.
Since an AEIM abend was the last abend to occur, this screen automatically displays
the diagnostics for an AEIM. The diagnostics for all CICS abend codes can be
displayed from this screen.
4. To display more information for an AEIM abend, tab to the highlighted AEIM abend
code and press Enter. The IBM Message Text screen shown in Figure 9-11 on page 9-7
will be displayed.
Interfacing with Abend-AID for CICS 9-7
Abend-AID for CICS --------- IBM Message Text --------- Row 000001 of 000011
COMMAND ===> SCROLL ===> PAGE
AEIM
Explanation:
NOTFND condition not handled.
This is one of a number of abends issued by the EXEC interface
program. Because of their similar characteristics these abends are
described as a group.
See the description of abend AEIA for further details.
CF450QCV AssistMenu=PF24
5. Press PF3 twice to return to Xpediter/CICS. The Abend-AID for CICS Diagnostics
screen (7) will be displayed as shown in Figure 9-12.
6. To see another diagnostic message, type ASRA in the ABEND CODE field.
7. Press Enter. The Abend-AID for CICS Diagnostic Information screen appears as shown
in Figure 9-13, with the explanation of an ASRA abend.
Figure 9-13. Abend-AID for CICS Diagnostic Information Screen for an ASRA Abend
Abend-AID for CICS ------ Diagnostic Information ------ Row 000001 of 000059
COMMAND ===> SCROLL ===> PAGE
FDBRC2100I User MYUSRID successfully logged on
The transaction was terminated with the ASRA abend because the CICS system
recovery detected a program check. This may occur for any of the following
reasons.
The invalid operation code exception occurs when the operation code of the
instruction to be executed is not a valid code or not available on the CPU
that the program is running on.
The priviledged operation exception normally occurs by executing a
priviledged instruction while the program is executing in problem state.
This is usually a symptom of another error.
The execute exception normally occurs by executing an "EXECUTE" instruction
by means of another "EXECUTE" instruction. This is usually a symptom of
another error.
The protection exception occurs when the storage protect key of an operand,
instruction, or data does not match the program's protection key. This
normally occurs by executing an instruction that either references or
resides at an illegal storage location. See also the notes on the
CF450QCV AssistMenu=PF24 More...
10-1
Chapter 10.
Using Automatic Trap Activation Chap 10
This chapter demonstrates Xpediters Automatic Trap Activation (ATA) feature. ATA traps
terminal-related transaction abendsbut not breakpointswithout the user having an
Xpediter session running.
Enabling the ATA feature is optional and is done with the ATA global table parameter.
With the parameter set to OFF (the default), ATA is deactivated. Setting the parameter to
XPED, XPRT, or XPSP activates Automatic Trap Activation.
With ATA activated, if a terminal-related transaction is about to abend, the abend will be
trapped and Xpediter will be invoked on the terminal or 3270 Web Bridge session where
the transaction was initiated. The transaction used to invoke Xpediter is determined by
the value of the ATA global parameter. If the ATASCREEN global parameter is set to YES, a
customizable notification/decision screen will first be displayed. If the user decides to
debug the abending transaction, the Source Listing (2.L), Break/Abend (2.1), or Assembler
Break/Abend (2.20) screen will be displayed, depending on the transaction specified for
the ATA parameter and the availability of program source.
Note: For the purpose of properly demonstrating Automatic Trap Activationbut not
for regular Xpediter/CICS useyou will first make sure Xpediter is not active on
the terminal being used.
1. On a blank CICS screen, type XPND and press Enter. A message will be displayed
saying either Xpediter is not active or it has been terminated.
2. On a blank CICS screen, type XCB2 and press Enter. The Demonstration Transaction
screen shown in Figure 10-1 will be displayed.
3. To cause an ASRA abend, type 00001 and press Enter. The Automatic Trap Activation
screen (Figure 10-2 on page 10-2) will be displayed. Pressing Clear will allow the
transaction abend to occur, while pressing Enter will display the appropriate
Xpediter screen for debugging the transaction.
10-2 Xpediter/CICS COBOL User Guide
4. Press Enter. The Source Listing screen (2.L) will be displayed with the source of
program CWDEMCB2 positioned to the instruction at which the abend occurred.
At this point, the user would debug the abending transaction as described in Testing
without Breakpoints on page 3-1.
11-1
Chapter 11.
Setting Up a Profile Chap 11
Xpediter/CICS allows you to have an individual user profile to customize your debugging
session for your needs and preferences. A profile is a set of default values that you have
specified and stored for your own use. This chapter discusses how to set up your own
profile.
When you use Xpediter/CICS, the system will recognize your userID and will call up your
profile. Then when you work with fields and actions that have defaults, Xpediter/CICS
will use defaults from your profile instead of those furnished by Xpediter itself.
Note: Menu option 6 SCRIPT DSN is not displayed if global parameter XDSCRPT is set to
NO. The default is YES.
Note: Certain settings may be overridden or non-applicable when using Xpediter in one
of the three restricted modes. For more information, see the Xpediter/CICS
Reference Manual.
11-2 Xpediter/CICS COBOL User Guide
3. To change a default option, overtype the current value with the new value in the
appropriate field.
4. Press Enter. The Set Profile Defaults screen (0.1) is updated to show the new value.
1. To access the PF key setting screen (0.2), type =0.2 in the COMMAND field of any
Xpediter/CICS screen.
2. Press Enter to display the Primary PF Key Settings screen (0.2) (Figure 11-4). On this
screen you can modify settings for PF1 through PF12.
Setting Up a Profile 11-3
3. Press Enter to update PF1 through PF12 and display PF13 through PF24. The
Alternate PF Key Settings screen (0.2) appears as shown in Figure 11-5. On this screen
you can modify settings for PF13 through PF24.
4. Press Enter to update PF13 through PF24 and redisplay the Primary PF Key Settings
screen (0.2).
5. To change the function of PF9, type GO 5 in the VALUE field next to PF9.
6. To change the label for PF9, type GO 5 in the LABEL field next to PF9. Press Enter.
The default PF key values can also be changed using the KEYS primary command from
any screen.
Note: The values in the LABEL column also appear on the PF key buttons displayed
when using Xpediters 3270 Web Bridge support.
your terminal codepage. The following example shows how C-language programmers can
display open and close brackets within a listing that was compiled with codepage 1047,
when their terminal codepage is 037. We will change the listing's bracket positions in
this table (x'AD' and x'BD' for IBM-1047 codepage) to the bracket values of your
terminal's codepage (x'BA' and x'BB', for IBM-037 codepage, respectively).
1. Start with a display of our C-language demo program CWDEMC on the 2.L screen.
Type UP MAX on the command line and press Enter. Type FIND eibtime on the
command line, and press Enter. Eibtime has left and right brackets on it. Note that
those brackets don't display as brackets on your terminal.
2. Type =0.3 on the command line to go to the Output Translate Table. Go to the "AD"
vertical hex spot found on the X80-XBF line, overtype the A (found on the top line)
with a B, and the D (on the bottom line) with an A and press Enter. You have now
replaced the X'AD' with X'BA'.
3. Go to the "BD" vertical hex spot also found on the X80-XBF line and leave the B (top
line) as is, and overtype the D (bottom line) with a B and press Enter. You have now
replaced the X'BD' with X'BB'.
Setting Up a Profile 11-5
Figure 11-7. Xpediter/CICS - Output Translate Table Screen (0.3) after changing X'AD' and X'BD'
4. Return to the Source Listing screen (2.L) to see your changes. If you aren't still
positioned on the eibtime field, repeat the UP MAX and FIND eibtime commands.
You should now see the brackets display as brackets.
Figure 11-8. Xpediter/CICS - Source Listing Screen (2.L) with display brackets
Loading a Profile
Once a profile is created, it can be loaded whenever XPED is entered. To load a profile,
enter XPED P = profile from a blank CICS screen, where profile equals the profile name.
For example, to load ALTKEYS, enter XPED P=ALTKEYS.
An alternate profile can be loaded at any time by accessing the Load Profile screen (0.4)
(Figure 11-9).
11-6 Xpediter/CICS COBOL User Guide
The current profile name can be changed via the SELECT line command on the Load
Profile (0.4) screen or by accessing the Set Profile Defaults screen (0.1) and over-typing
the profile name.
Note: If user ID is used to sign onto the CICS region, a profile for the user ID is
automatically created. If the P= option for specifying a profile is not used when
the Xpediter/CICS session is initiated, the profile for the user ID is automatically
loaded and used.
2. Type ALTKEYS (or any new profile name) in the PROFILE NAME field.
3. Press Enter. Xpediter/CICS displays the message:
next to the MODULE field to show that the new profile has been saved.
12-1
Chapter 12.
Accessing Files Chap 12
This chapter introduces the Xpediter/CICS file utility, which displays lists of resources
that you can access under CICS, including VSAM and BDAM datasets, DL/1 databases,
DB2 data, transient data, temporary storage queues, and MQ queues. Choose the resource
you want to access from these lists and perform any of the displayed service requests.
Once a resource is selected, Xpediter/CICS displays the records in that resource. You can
then add, delete, or modify the records. Security is available to restrict update and delete
access. To provide audit capabilities, Xpediters Log Facility gives sites the option of
logging all changes made to supported resources. For more information, refer to the
Xpediter/CICS Installation and Configuration Guide.
This chapter shows how to browse records in a file and change file service requests.
During these exercises, you will resolve two abends, AEIM and AEIP, that can occur when
working with VSAM files.
Figure 12-1. Record Not Found Message on the Source Listing Screen (2.L)
The File Utility Menu (5) lists the types of resources that can be accessed through the
file utility. Because the DBUGEMP dataset (the demonstration employee file) is a
VSAM file, you will access it with the CICS DATASETS option.
9. Type 1 in the COMMAND field.
10. Press Enter to display the CICS Datasets Menu (5.1) (Figure 12-3), which lists the
functions that you can perform on a dataset.
12. Press Enter to display the CICS Dataset List screen (5.1.1) (Figure 12-4).
Note: The datasets displayed on your screen differ from the ones shown in this
example. Xpediter/CICS lists all of the files in the file resources defined for
your CICS region.
The CICS Dataset List screen (5.1.1) lists the datasets that you can access from this
CICS region as defined in the file resources. In addition to the dataset name, the
screen displays the access method, current status, and allowed service requests.
Use PF7 and PF8 to scroll up and down through the list. Use the LOCATE command
to find a particular dataset. Valid line commands are B (Browse) and S (Select). The B
command displays a list of the records in the dataset. The S command displays the
Edit CICS Dataset Record screen (5.1.3), where you can enter a record key.
13. Type B to the left of the DBUGEMP dataset and press Enter to display the Browse
CICS Dataset screen (5.1.2) (Figure 12-5).
12-4 Xpediter/CICS COBOL User Guide
This screen displays a list of all records in the selected dataset. You can display the
records in hexadecimal or character format. You can also scroll through the list and
use the FIND command to find a particular string.
File information is shown at the top of the screen. The example shows that
DBUGEMP is a key sequenced dataset (KSDS), with fixed records (RECFM: F) that
have a key length (KEYLN) of 5. The relative key position (RKP) is 0, with a maximum
record length (MAX RECLN) of 80.
The KEY FIELD area shows the key of the record positioned at the top of the list. To
position to another record, enter its key in the KEY FIELD.
The record information is displayed in character format. You can select individual
records for update by typing an S next to the record and pressing Enter. You can also
map records to a COBOL copybook or data structure to display the field values next
to their data names.
14. Type S to the left of the first record and press Enter to display the Edit CICS Dataset
Record screen (5.1.3).
15. Type USING VSAM-EMP-RECORD in the COMMAND field. VSAM-EMP-RECORD is
the COBOL 01 level that defines the DBUGEMP file in CWDEMCB2 (Figure 12-6).
16. Press Enter to map the data in this record to the data structure VSAM-EMP-RECORD.
Notice the VALID COMMANDS field displays the commands that can be issued for
this file. Any of these commands can be entered in the COMMAND field. You can
browse through the file by using the NEXT command to move to the next record.
Accessing Files 12-5
17. Type NEXT in the COMMAND field and press Enter to display the next record in the
file.
Look at EMP-NUM-KEY of the displayed record. Our example program abended
because there were no records on the DBUGEMP file with the key 00002 (Figure 12-1
on page 12-2). However, there is a record with the key 00020.
18. Press PF6 (LOCATE *) to return to the Source Listing screen (2.L) to change the key.
19. Type 00020 in the data area of the field EMP-NUM-KEY as shown in Figure 12-7.
20. Press Enter to update the field.
21. Press PF12 (GO) to continue processing.
Figure 12-7. Modifying Key Data on the Source Listing Screen (2.L)
CICS command was a READ for UPDATE, as shown in lines 454 through 460 in Figure 12-
8.
1. Type =5.1.1 in the COMMAND field to check the service requests for DBUGEMP.
2. Press Enter. Xpediter/CICS transfers directly to the CICS Datasets List screen (5.1.1)
(Figure 12-9).
Look at the SERVICE REQUESTS field for DBUGEMP. Both read (REA) and browse
(BRO) are specified for this file. There is no update (UPD) capability, so the read for
update in CWDEMCB2 resulted in an INVALID REQUEST (AEIP) abend.
Authorized users can modify the current status and add or delete service requests
(ADD, DELETE, BROWSE, UPDATE, or READ). To change the service request, you
must first close and disable the dataset.
Accessing Files 12-7
Note: This change is temporary and remains in effect until the region is recycled.
You must update the file definition to make the change permanent.
Chapter 13.
Accessing DL/1 Databases Chap 13
This chapter discusses how to use the Xpediter/CICS File Utility to access and modify IMS
databases defined to your CICS region and/or the DBCTL region to which your CICS
region is attached.
Note: A sample Compuware database was used to generate the screens shown in this
chapter. Since the database you access will be different, your screens will vary
from those shown. Use this chapter simply as a model of how to access your
database.
Note that remote PSBs are shown first, listed with the remote system ID and the
remote PSB name. Those remote PSBs are display-only and cannot be accessed from
the File Utility. They are followed by DBCTL PSBs.
13-2 Xpediter/CICS COBOL User Guide
3. Type S in the SEL field next to the desired PSB name and press Enter to display a list
of PCBs in the selected PSB. The DL/1 PCB List screen (5.4.2) (Figure 13-3) appears.
A database description (DBD) is associated with a PCB and assigned a number which
is displayed prior to the DBD name on this screen. This number is used in place of
the DBD name, because multiple PCBs can access the same DBD using the same or
slightly different views of the database. The PCB list is displayed in the order in
which the PCBs have been defined in the PSB. You can scroll through this screen (UP,
DOWN, TOP, BOTTOM), or you can position the cursor to a particular PCB using the
LOCATE command followed by the DBD name.
This screen displays each segment that can be accessed via the selected PCB, along
with the associated level number for that segment. Each level in the hierarchy is
indented one position from the previous higher level to provide a hierarchical view
of the database.
The P line command highlights the hierarchical path required to reach a specific
segment.
2. Type a P command in the SEL field next to the lowest level segment to be accessed.
Press Enter to highlight the path indicating how the segment must be accessed
within the hierarchy.
Note: The PSBNAME and PCB# fields on this screen can be used to directly access a
segment list by typing the PSBNAME with a PCB number. Xpediter/CICS
checks the PSB and PCB number and returns an error message when they are
invalid.
3. Type an S in the SEL field next to a segment in this list and press Enter to display the
Edit DL/1 Segment screen (5.4.4) shown in Figure 13-5.
4. Type SHOW SSA in the COMMAND field and press Enter. Xpediter/CICS creates a
skeleton segment search argument (SSA).
This screen is used to perform DL/1 calls to the database. Xpediter/CICS uses
standard DL/1 notation rules to perform calls. READ and WRITE commands are not
used. Xpediter/CICS can build skeleton SSAs to access a segment or rebuild complete
13-4 Xpediter/CICS COBOL User Guide
SSAs displaying the path to the segment. You can perform sequential and random
calls to a database using PCB and TERM calls. A PSB holds the position in the
database for up to two minutes. That time is the default value of the global parameter
PSBWAIT and can be changed by specifying another value between 1 and 59.
The screen also shows the valid commands that are specified in the PCB definition.
The commands indicate the functions that can be used with DL/1 segments, I/O area
manipulation, and screen display. If NONE shows in the VALID COMMANDS area,
either Xpediter/CICS cannot determine the valid DL/1 commands or you are not
authorized to perform functions on this screen.
In this example, no PSB has been scheduled. The next example shows how to
schedule a PSB and retrieve a DL/1 segment.
1. Type a greater-than symbol (>) in the OP field to the right of the equal sign (=). Press
Enter to update the OP field. This tells Xpediter/CICS to search for a segment with a
value in PARTKEY greater than or equal to low values, such as the first segment in the
database (Figure 13-6).
Figure 13-6. Modifying the SSA on the Edit DL/1 Segment Screen (5.4.4)
2. Type PCB and press Enter to schedule a PSB. Xpediter/CICS displays the message
Figure 13-7. Displaying the Area on the PCB Edit DL/1 Segment Screen (5.4.4)
The PCB field area displays data fields obtained from the PCB used in the last DL/1
call. These fields reflect the current position in the database and the status returned
by DL/1.
The DBD field identifies DI21PART as the database being accessed. The LV and
SEGMENT NAME fields indicate the lowest segment in the last path DL/1
encountered while searching for the requested segment. The blanks in the STAT
CODE field indicate that the call was successful. If there was an error in processing,
this field would display a two-character status code, such as GB, AK or NO. In
addition, Xpediter/CICS provides extended diagnostics for many of the displayed
status codes. You can view these diagnostics by typing HELP xx in the COMMAND
field, where xx is the DL/1 status code.
The value in the PROC OPTS field indicates the type of call that can be issued by this
PCB. The A value indicates that all types of calls can be issued. A G value would
indicate get processing calls.
4. To display the data retrieved in this call, type SHOW DATA on the COMMAND field
and press Enter. The SSA area at the bottom of the screen is replaced by the segment
data (Figure 13-8).
6. To redisplay the original SSA, type SHOW SSA on the COMMAND line and press
Enter.
7. To update the SSA with key feedback data from the segment, type SHOW KEYS on
the COMMAND line and press Enter. This is used to update the SSA to the current
segment (Figure 13-11).
Accessing DL/1 Databases 13-7
Chapter 14.
Using Xpediter/CICS with DB2 Chap 14
Xpediter/CICS provides support for IBMs DB2 relational database manager. In addition
to the extensive interactive debugging facilities available to all CICS programs, special
facilities have been created to meet the needs of the DB2 programmer.
Note: A sample Compuware database was used to generate the screens shown in this
chapter. Since the database you access will be different, your screens will vary
from those shown. Use this chapter simply as a model of how to access your
database.
In order to limit resource contention, access to the DB2 File Utility is prohibited from a
terminal that has a program in a BREAK/ABEND state.
1. From a blank CICS screen, type XPED 5.5 and press Enter to access the DB2 Easy
Query Menu (Figure 14-1).
2. Type 0 and press Enter to display the DB2 Setup screen (5.5.0) (Figure 14-2).
14-2 Xpediter/CICS COBOL User Guide
It is unlikely that you will change the first six fields shown on this screen. The LIST
OF TABLES/VIEW LIMITS fields are used to limit the tables displayed on the DB2
Table/View List screen (5.5.1). The MAXIMUM ROWS TO SELECT field limits the
number of rows retrieved during a browse or query. This value is set during
installation and may be changed. The maximum value, which defaults to 1,000, is set
at product installation time and cant be exceeded.
The LOCK TABLES WHEN UPDATING field places or prohibits a lock on a table
selected for update. Specifying Y means that others cannot modify the table while
you access it. If you specify N in this field, you risk losing changes, but you gain
resource savings. For this reason, the system programmer can disable the lock
capability. If the lock capability is disabled, the LOCK TABLES GLOBAL OVERRIDE
field is set to NO.
3. To change a value on this screen, type over the existing value and press Enter. If the
Xpediter/CICS profile dataset is used, the overrides are saved for future debugging
sessions.
The DB2 Table/View List screen (5.5.1) displays a list of DB2 tables and views you are
authorized to access. The list is in alphabetical order by creator. DB2 security limits
the list to tables and views you are allowed to access with your CICS user ID.
The list can be further restricted by entering CREATOR, DATABASE, TABLE/VIEW,
TABLESPACE, or TYPE in the LIMIT LIST TO fields. If these fields were specified on
the DB2 Setup screen (5.5.0), these values are carried forward and appear on this
screen.
There are two choices from this screen: Q to create an SQL Easy Query or S to select a
table or view on which to work.
2. Type the S line command in the CMD field next to any table and press Enter to
display the DB2 Browse Result Table screen (5.5.4) (Figure 14-4).
This screen displays the rows in the selected table. The display is by column name,
and the rows are automatically formatted. The ROW field shows the current top row
and the number of rows in the resulting table. The total rows may be limited by the
MAXIMUM ROWS TO SELECT parameter on the DB2 Setup screen (5.5.0). The FIND
and LOCATE commands can be used to find a string or shift the display to a
particular column.
Editing a Row
1. Type S next to any row displayed on the DB2 Browse Result Table screen (5.5.4) and
press Enter. The DB2 Edit Result Table Row screen (5.5.5) appears as shown in Figure
14-5.
This screen is used to edit data in the selected row of the DB2 result table. Data in all
columns may be updated. If you are not authorized to update a column by DB2
security, the contents of the column are protected to prevent modification.
2. You can move to a specific column by using the FIND command to position to a data
string, or LOCATE to position to a column name. Two line commands are also
available: N sets a field to null, and C transfers to the DB2 Edit Composite Column
screen (5.5.6) described in Editing a Column on page 14-9.
The DB2 File Utility has built-in edit functions to verify data.
3. Position the cursor to the VALUE field in a column with a DECIMAL attribute.
Overtype the displayed value, and type an additional character. In this sample, we
attempted to enter a four-character value in the JOBCODE field defined as DECIMAL
(3,0).
4. Press Enter. Xpediter/CICS displays an error message
Note: The plus signs (+++) preceding and following the message indicate that
additional detail information is available using the Help facility.
Using Xpediter/CICS with DB2 14-5
Figure 14-6. Help Screen for INTEGER TO DECIMAL CONVERSION ERROR Message
Use the information displayed on the Help screen to determine the source of the
error message.
6. Press PF3 (END) to return to the DB2 Edit Result Table Row screen (5.5.5).
7. Position the cursor over the incorrect data and fix the error. Press Enter.
8. Press PF3 (END) to return to the DB2 Browse Result Table screen (5.5.4) (Figure 14-7).
The changes you made are displayed on this screen. You can use the CANCEL
command to cancel the changes. Changes are committed when the END command is
used to exit this screen.
This ISPF-like screen lets you select the fields to be used in the SQL call. You can
select the columns to display, the left-to-right order of the columns to be displayed,
the row selection using WHERE clauses, and the sort sequence using ORDER-BY
clauses.
3. Select desired columns by typing an S to the left of each column.
4. Type a two-character number in the ORDER-BY SEQ field to designate the order in
which you would like the columns to be sorted.
5. Type A or D in the ORDER-BY A/D field to specify the ascending or descending sort
sequence for this column.
6. Type a WHERE clause in the WHERE CLAUSE field. In the example shown in Figure
14-9, we entered a clause for the HIREDATE, so only those rows with a hire date after
May 1, 1975 appear in the result table.
7. Press Enter to process the selection criteria.
Using Xpediter/CICS with DB2 14-7
8. Type SHOW SQL in the COMMAND field and press Enter. Xpediter/CICS generates
an SQL call, and the DB2 Browse Generated SQL Call screen (5.5.3) (Figure 14-10)
displays the actual SQL statement.
You can save the SQL call in the Xpediter/CICS SQL transfer file to be printed or
included in a program. Each SQL call is stored as a single record in this VSAM file
with the name you supply as an operand on the CREATE or REPLACE command. In
this way, you can use Xpediter/CICS to generate and test SQL calls before your
program is written, then include them in your program code. For more information,
see Chapter 6, DB2 Format Utility, in the Xpediter/CICS Installation and Configuration
Guide.
9. Type SHOW RESULT in the COMMAND field and press Enter to see the result table
generated by this call on the DB2 Browse Result Table screen (5.5.4) (Figure 14-11).
14-8 Xpediter/CICS COBOL User Guide
This is the same screen that was discussed in Editing a Row on page 14-4. Rows can
be selected from this table for updating.
10. Type the R line command next to a row and press Enter to replicate this row.
11. Type the S line command next to the new row and press Enter. The DB2 Edit Result
Table Row screen (5.5.5) appears (Figure 14-12).
12. Type new information in the VALUE field of this screen and press Enter. In the
example shown here, JOE COOL will be changed to RALPH COOL.
13. The changes are updated in the new row.
14. Press PF3 (END) to see the DB2 Browse Result Table screen (5.5.4) Figure 14-13.
Remember that unless the CANCEL command is used, changes are committed when
you leave the DB2 Browse Result Table screen (5.5.4).
Using Xpediter/CICS with DB2 14-9
Editing a Column
The DB2 Edit Composite Column screen (5.5.6) (Figure 14-14) lets you edit data in a DB2
result table column. This screen is accessed by using the C line command from the DB2
Edit Result Table Row screen (5.5.5). Composite columns are defined in Xpediter/CICS as
DATE, TIME, TIMESTAMP, CHARACTER, or GRAPHIC columns that are redefined by a
user in an application program. Use this support when the 300-column limit is too
restrictive, or if you have kanji data in a column.
The USING command can be used to map data values against an 01 level COBOL data
structure.
The permissible length of the table creator name has increased from 8 to 128 bytes.
The permissible length of the table/view name has increased from 18 to 128 bytes.
The permissible length of the column name has increased from 18 to 30 bytes.
14-10 Xpediter/CICS COBOL User Guide
The Xpediter/CICS DB2 File Utility provides all of the functionality of the previous
releases of the DB2 File Utility, including support for DB2 and long identifiers. Because of
screen limitations, however, the maximum display sizes for the creator, table name, and
column name fields are limited to 8, 18, and 18 bytes respectively in Xpediter/CICS. If a
DB2 field exceeds these lengths, the field is truncated for display (only), and a plus
character + is appended to the right of that field. For example, a creator name of
CREATOR_NAME_IS_LONGER_THAN_V7 is truncated to 8 bytes and displayed as
CREATOR_+, a table name of TABLE_NAME_IS_LONGER_THAN_V7 is truncated to 18
bytes and displayed as TABLE_NAME_IS_LONG+, and a column name of
COLUMN_IS_LONGER_THAN_V7 is truncated to 18 bytes and displayed as
COLUMN_IS_LONGER_T+. The full length of these fields is only displayed on the DB2
BROWSE GENERATED SQL CALL (5.5.3) screen.
Following are examples of three DB2 File Utility screens showing the result of displaying
the DB2 long identifiers in the File Utility.
Figure 14-15 shows an example of the DB2 TABLE/VIEW LIST (5.5.1) screen. In the first
row of this display the long creator ABCDEF_LONG_CREATOR_TEST has been truncated
and is displayed as eight bytes ABCDEF_L and a plus sign (+) is appended to the right of
the field. Likewise the table name of LONG_TABLE_NAME_FOR__TESTING_DCLGEN has
been truncated to eighteen bytes and a plus sign appended.
Typing a Q in the command field of the first row and pressing Enter causes the DB2
BUILD SQL EASY QUERY (5.5.2) screen in Figure 14-16 to be displayed. In the heading
both the CREATOR: and TABLE: data has been truncated for display and a plus sign has
been appended to the right of each field. The long column name
OBJS_RELATE_LONGER_CL_NAME has been truncated to eighteen bytes and a plus sign
has been appended to the right of the field.
Using Xpediter/CICS with DB2 14-11
Entering the primary command SHOW SQL, typing an S in the command field for the
column name OBJS_RELATE_LONGER, and pressing Enter causes the DB2 BROWSE
GENERATED SQL CALL (5.5.3) screen in Figure 14-17 to be displayed. Notice on this
screen that the full lengths of the creator, table name, and column are displayed in the
generated SQL call.
To set breakpoints before every SQL statement, enter BEFORE ALL SQL in the
COMMAND field and press Enter. Xpediter/CICS dynamically sets before breakpoints
on every SQL statement or call to DSNHLI.
You can also set breakpoints after EXEC SQL statements and counts of EXEC SQL
statements. Breakpoints can be set on all returning SQL calls, or counts can be set to
help in SQL analysis.
DB2 breakpoints are further qualified by specifying an SQL call type. For example,
COUNT ALL SQL UPDATE sets counters only on EXEC SQL UPDATE calls. No other
calls are counted. Of course, you can set or delete individual breakpoints using the
BEFORE, AFTER, RUNTO, COUNT, and DELETE commands.
To display the current SQLCODE value, enter KEEP SQLCODE in the COMMAND field.
Once displayed, you can modify data by replacing the contents of the field. This is an
excellent way to test IF logic after an SQL call.
DSNC Abends
For example, if your DB2 program abends with a DSNC AEY9 abend code, Xpediter/CICS
will:
DSNC abend recognition is especially useful in test regions prone to DB2 attachment-
facility errors. This Xpediter feature is designed to assist both the DBA and the DB2
application programmer.
SQL Codes
Programmers commonly complain about cryptic return codes. This is also true for DB2
SQL codes. Xpediter/CICS has SQL support within its Help facility.
Enter HELP SQLERROR, HELP SQLCODE, or HELP SQL to access timely SQL diagnostics
and warnings of the last SQL statement executed. Figure 14-18 is an example of help after
DB2 returned a 100 SQLCODE.
Using Xpediter/CICS with DB2 14-13
Five DB2 related keywords are available for use in the TABLE/AREA field of the Memory
Display (2.2) and DSECTs (2.D) screens. These commands are useful in diagnosing DB2
programs with the following storage problems:
RCT (DB2 Resource Control Table): Identifies the plan name, thread, and TCB
information.
Since the RCT is no longer available, if RCT is specified, the CICS Resources screen
(2.R) is displayed showing information for the DB2CONN entry.
SQLCA (SQL Communications Area): Identifies the SQL return code, error
diagnostics, and warning indicators of the last SQL statement executed.
SQLDA (SQL Descriptor Area): Provides a pointer to the data received by a SELECT
statement in a dynamic SQL call.
PLIST (DB2 Parameter List): List of parameters passed to the DB2 call generated by
an EXEC SQL program statement.
CLOT (CICS Life of Task): Provides the DB2 connection authorization ID, and
various error codes associated with the task.
Note: All of the above keywords (except RCT) can only be used at a break or abend with
DB2 active.
14-14 Xpediter/CICS COBOL User Guide
15-1
Chapter 15.
Using Xpediter/CICS with MQ Chap 15
Xpediter/CICS provides support for IBM MQ for z/OS (formerly WebSphere MQ)
messaging manager. In addition to the extensive interactive debugging facilities available
to all CICS programs, special facilities have been created to meet the needs of the MQ
programmer.
Note: Messages created by a sample application were used to generate the screens shown
in this chapter. Since the data you access will be different, your screens will vary
from those shown. Use this chapter simply as a model of how to access your
queues.
2. Type 0 and press Enter to display the MQ SETUP screen (5.6.0) shown in Figure 15-2.
15-2 Xpediter/CICS COBOL User Guide
The MQ LIST PREFIX, MQ LIST TYPE, and MQ LIST LIMIT can be customized or
established in each of these fields to limit the queues displayed on the MQ Queue List
(5.6.1) screen. The DYNAMIC QUEUE PREFIX can also be entered for your session if you
need to override your sites prefix which is found in global. If the Xpediter/CICS profile
dataset is used, your overrides are saved for future debugging sessions.
3. Type 1 and press Enter to display the MQ Queue List screen (5.6.1) (Figure 15-3).
The QUEUE TYPE field, QUEUE NAME PREFIX field, and QUEUE LIMIT field are used to
limit the queues displayed on this screen.
4. To change a value on the screen, type over the existing value and press Enter. Note
that the QUEUE NAME PREFIX field is case-sensitive.
Using Xpediter/CICS with MQ 15-3
Note: Browsing a message from an initiation queue may cause a trigger event to occur,
which may result in a trigger message being generated in the initiation queue.
The Browse MQ Queue Message screen (5.6.2) displays the first message on the selected
queue. There are two primary commands available on this screen: NEXT to browse the
next message on the queue and FIRST to reposition to the first message on the queue.
There may be two additional primary commands available on this screen: UPDATE to
transfer to the Update MQ Queue Message screen (5.6.3) and DELETE to delete the
currently accessed message.
The Update MQ Queue Message screen (5.6.3) displays the same message as the
Browse MQ Queue Message screen (5.6.2).
15-4 Xpediter/CICS COBOL User Guide
Debugging MQ Programs
This section discusses the special facilities available to IBM MQ for z/OS programmers,
including setting breakpoints and keeps and interpreting MQ completion and reason
codes.
The traps may be defined using Xpediters Trap Summary screen (1.6 or 9.6), or a label
may be defined on the Define User Labels screen (1.9) or Define System Labels screen
(9.9) for use in a conditional trap, breakpoint, or skip. Please see the Xpediter/CICS
Reference Manual for more details.
Chapter 16.
Accessing CICS Storage Chap 16
This chapter discusses ways to access and update CICS storage, including displaying CICS
storage areas, DSECTs, and table entries. It also discusses how to chain through CICS
storage areas and review the Select Address list.
The Memory Display screen (2.2) displays CICS storage areas. The task control area
(TCA) is displayed as the default area.
3. Type CSA in the TABLE/AREA field to display the common system area (CSA).
4. Press Enter to display the CSA storage area (Figure 16-2).
16-2 Xpediter/CICS COBOL User Guide
Figure 16-2. Displaying the CSA on the Memory Display Screen (2.2)
Method 1
Use the USE CONTENTS and ADD OFFSET fields of the Memory Display screen (2.2) to
specify an address area to be displayed.
Figure 16-4. Chaining Through the CSA on the Memory Display Screen (2.2)
2. Type an X in the USE CONTENTS field and 40 in the ADD OFFSET field as shown in
Figure 16-4. The USE CONTENTS field specifies that Xpediter/CICS should use an
address from the display area to point to another area for display. The default uses
the address at offset hexadecimal 0 (meaning that there is no offset at all and that
Xpediter/CICS must use the displayed address).
The ADD OFFSET field is used to locate the address specified in the USE CONTENTS
field within the display. This specifies that Xpediter/CICS should use the address
found at offset hexadecimal 40 to locate another area, then display that area.
3. Press Enter. The storage area display is positioned at the address shown at an offset of
hexadecimal 40 from the start of the CSA.
Notice that the ADDRESS field has changed to show the new address.
16-4 Xpediter/CICS COBOL User Guide
Method 2
Use the USE CONTENTS field without the ADD OFFSET field to have Xpediter/CICS use
the first four bytes of the display as an address.
Method 3
Use PF15 to select addresses.
Method 4
Use the CHAIN command to chain to the first address displayed in the storage area of the
screen. The CHAIN command works like the USE CONTENTS field described in Method
1 on page 16-3 and Method 2.
Method 5
Since CICS control block changes have made it increasingly difficult to chain through a
tasks storage areas, Xpediter/CICS has provided a Task Storage screen (2.S) shown in
Figure 16-5 on page 16-5 that allows you to easily display the areas on a tasks USER31,
USER24, CICS31, and CICS24 DSA chains. You can request any or all of these chains and
allocated and/or freemained areas. You can then select a specific area by entering an S in
the SEL column next to the desired area. Xpediter will transfer to the Memory Display
screen (2.2 or 9.2, based on Xpediter session type). The END command (default PF3) will
return you to the list of storage areas on the Task Storage screen with the last selected
area positioned on the top line.
1. Access the Task Storage screen by entering the letter S on the Debugging Facilities
Menu (2) or by entering =2.S in the COMMAND field. You can also access this screen
as described in the section entitled Transferring Between Screens in Chapter 2 of
the Xpediter/CICS Reference Manual.
The Task Storage screen (Figure 16-5 on page 16-5) will be displayed with storage for
the current task (the default) showing all allocated areas on all four of the DSA
chains. You can vary the task selected and/or the combination of allocated and/or
freemained areas on the four DSA chains. Only freed areas still on the chains are
availablenot all areas freed anytime during the duration of the transaction. It
should also be noted that areas on the freemained chains may occasionally be
allocated by CICS while Xpediter is processing your viewing request.
Accessing CICS Storage 16-5
2. Select the area you want to view by typing an S in the SEL column of the desired area
and pressing Enter. The Memory Display screen (2.2 or 9.2, based on Xpediter session
type) will be displayed. The first 16 bytes of the areas are displayed in hex and
character mode to make selection easier.
3. After viewing and/or updating an area, use the END command (default PF3) to return
to the Task Storage screen. The last area selected will be positioned on the top line.
4. You can page through the remaining areas, selecting and viewing any of interest.
Only one area can be selected at a time.
You can also use the LOCATE command with a hex address to determine whether an
address is contained in any of the areas on the selected chains. If it is, that area will
be positioned at the top of the screen, and you can select it to view the entire area.
1. Type FCT (for file control table) in the TABLE/AREA field of the Memory Display
screen (2.2) (Figure 16-6).
2. Type DBUGEMP in the TABLE ENTRY ID field. DBUGEMP is a file used in the
Xpediter/CICS demonstration programs.
3. Press Enter to display the FCT entry for file DBUGEMP.
Note: If your file resource definition does not exist, after you type FCT in the
TABLE/AREA field, you see the message shown in Figure 16-7 on page 16-6.
16-6 Xpediter/CICS COBOL User Guide
Figure 16-6. Displaying the FCT on the Memory Display Screen (2.2)
If you do request a PCT entry for XCB2, control automatically passes to the CICS
Resources screen (2.R) shown in Figure 16-8. From the CICS Resources screen (2.R), you
may view the formatted resource information for your program or transaction.
Accessing CICS Storage 16-7
1. To display the Select Address screen, position the cursor in any area of the Memory
Display screen (2.2) except the data display and press PF15. The Select Address screen
appears as shown in Figure 16-9.
This list is used to review a debugging session without having to recreate the session.
Notice that all the table areas accessed on the Memory Display screen (2.2) in the
previous sections of this chapter are listed here.
2. Type S in the CMD column next to the desired address to review any of these screens.
3. Press Enter to display the Memory Display screen (2.2) (Figure 16-10).
16-8 Xpediter/CICS COBOL User Guide
Figure 16-10. Memory Display Screen (2.2) from the Select Address Screen
You can review the entire address list screen by using PF10 and PF11 to scroll through
the list, displaying the contents of memory at each of the addresses in the list. PF10
will display the previous address in the list, and PF11 will display the next address in
the list.
Remember to end the session as described in Exiting Xpediter/CICS and Ending a
Debugging Session on page 2-5.
17-1
Chapter 17.
Using Global Storage Protection Chap 17
This chapter discusses the global storage protection facilities of Xpediter/CICS available
through the XPSP transaction. This chapter is intended for the person responsible for
maintaining the Xpediter/CICS system at the site. The chapter shows how to set region-
wide and automatic storage protection, and monitor storage violations. It also discusses
how to define system labels and storage exceptions.
This example demonstrates how to set storage protection for a region through XPSP.
1. Type XPSP 9.8 from a blank CICS screen and press Enter to display the Storage
Protection screen (9.8) (Figure 17-1).
Figure 17-1. Making Storage Protection Entries on the Storage Protection Screen (9.8)
2. Type SYST in the TYPE field. There are three types of storage protection entries:
SYST entries created by XPSP users or during product initialization. They always
proceed other entries in the table and are always evaluated first. These entries
can only be deleted by XPSP users.
USER entries follow SYST entries. They can be modified from either Storage
Protection screen (1.8 or 9.8).
AUTO entries are automatically added to the table whenever automatic storage
protection is set ON and any Xpediter/CICS transaction is used. See Setting
Automatic Storage Protection on page 17-2 for more information.
3. Type an asterisk (*) in the TERM field to specify all terminals.
17-2 Xpediter/CICS COBOL User Guide
4. Type XC** in the TRAN field to specify any transaction that begins with the letters
XC.
5. Type CWDEMCB2 in the PROGRAM field.
6. Type Y in the STORE field under PROTECTION OPTIONS.
7. Press Enter to redisplay the Storage Protection screen (9.8). Xpediter/CICS uses the
default value of NO for FETCH, SHR, PGM, and CMD Store.
These entries indicate that the program CWDEMCB2 is prevented from attempting to
cause storage violations whenever it is invoked from any terminal with a transaction
that starts with the letters XC.
The settings shown in Figure 17-3 turn off monitoring without destroying the
current table entries. These settings must appear first in the table.
Figure 17-3. Turning Off Monitoring on the Storage Protection Screen (9.8)
The PROTECT field on the Set Profile Defaults screen (0.1) controls automatic storage
protection. The SET PROTECT command can be used to change the PROTECT field
without visiting the 0.1 screen. When PROTECT is set to ON for any Xpediter/CICS
transaction, the STORE protection option is automatically provided whenever a user
enters that transaction. Additional protection options can be set by using the Storage
Protection screen (1.8 or 9.8).
The global parameter DEFPROT (default OFF,OFF,OFF) determines the initial defaults for
a new user profile. For example, setting DEFPROT to (ON,OFF,OFF) automatically sets the
PROTECT field ON if the XPED transaction is used or OFF if the XPRT or XPSP
transaction is used.
The ALLOWCM global parameter controls access to the ALLOW command when using
Xpediter/CICS transactions. Xpediter/CICS is shipped with ALLOW set to OFF (no) for
the XPED/XPRT transactions and ON (yes) for the XPSP transaction. Xpediters three-
transaction design gives you the ability to control who has access to allow storage
violations by turning ALLOWCM ON for one transaction and OFF for the others.
Note: For more information about the global parameters, refer to the Xpediter/CICS
Installation and Configuration Guide.
The Define System Labels screen (9.9) is used to define areas to be exempted from storage
protection.
1. Type =9.9 in the COMMAND field of any screen and press Enter to display the Define
System Labels screen (9.9) (Figure 17-4).
17-4 Xpediter/CICS COBOL User Guide
In this example, assume that program CWDEMCB2 needs to modify the TRAN ID
field of the execute interface block (EIB). Identify and label the field as EIBTRNID to
exempt it from storage protection.
The TRAN ID field is located in the EIB. Two entries are made: one to locate the start
of the EIB (EISEIBAD), the second to locate the TRAN ID field within the EIB
(EIBTRNID).
Note: Program CWDEMCB2 is used here only as an example. It does not actually
update the EIB.
2. To locate the starting address of the EIB, type EISEIBAD in the USER LABEL field.
This defines a label for the beginning of the EIB.
3. Type EIS in the BASE LABEL field.
4. Type 8 in the + OR - OFFSET field. This value is the offset from the beginning of the
EIS where the EIB address is located.
5. Type Y in the USE CONTENT field to specify that the data located eight bytes into
the EIS is to be used as an address.
6. Type 4 in the LENGTH field to indicate the length of the area to be used.
7. Press Enter. The first entry is recorded.
8. Type MYTRANID in the USER LABEL field. This identifies the EIBTRNID.
9. Type EISEIBAD in the BASE LABEL field. This is the label defined in step 2.
10. Type 8 in the + OR - OFFSET field.
11. Type N in the USE CONTENT field to indicate that the data found at this address is
not to be used as an address.
12. Type 4 in the LENGTH field.
13. Press Enter. If the addresses can be resolved, the RESULTING VALUE field is updated
as shown in Figure 17-5. All addresses and lengths are resolved at the time they are
used.
Using Global Storage Protection 17-5
1. Type =9.7 in the COMMAND field and press Enter to access the Storage Exceptions
screen. The following steps will create the entry seen in Figure 17-6.
These entries specify that whenever CWDEMCB2 is executed from any terminal or
transaction, it can modify the four-byte area beginning at the label EIBTRNID.
When evaluated with storage protection active, Xpediter/CICS monitors CWDEMCB2 for
storage violations but allows updates to the TRAN ID field.
17-6 Xpediter/CICS COBOL User Guide
Note: Entries made on the Storage Exceptions screen (9.7), the Storage Protection screen
(9.8), and the Define System Labels screen (9.9) stay in effect until they are
deleted or Xpediter is turned off.
The following examples show how to set up interactive and unattended monitoring.
Interactive Monitoring
1. Type XPSP 9.6 and press Enter on a blank CICS screen to display the Trap Summary
screen (9.6) shown in Figure 17-7. This screen is used to specify the programs,
transactions, userIDs, netnames, and terminals to be monitored for abends. Entries
that have your terminal ID in the TRAP BY field will be intercepted by your terminal.
You can set traps for Web-based and other transactions using Xpediters enhanced
trap conditions. For more information, see the explanation of the Trap Summary
screen (9.6) in the Xpediter/CICS Reference Manual.
2. Type XCB2 in the TRAN field and press Enter to set a trap. The XCB2 transaction will
be intercepted whenever an abend occurs. See Figure 17-7. If global parameter
TRAPTRM is set to YES (the default), your terminal ID will be displayed in the TERM
field, and you must overtype it with asterisks (*).
Figure 17-7. Setting an Abend Trap on the Trap Summary Screen (9.6)
3. To set a protection entry, type =9.8 and press Enter. The Storage Protection screen
(9.8) appears as shown in Figure 17-8.
Using Global Storage Protection 17-7
Note: The Source Listing screen (2.L) may be displayed in the following step if
source support has been turned on for the XPSP transaction.
13. Return to the original terminal. The Break/Abend screen (2.1) will be displayed with
a message that a storage violation has occurred, as shown in Figure 17-10.
17-8 Xpediter/CICS COBOL User Guide
Notice the error message on this screen indicates a STOR violation (OVERLAPPING
END STORG CHECK ZONE).
At this point, you have access to all Xpediter/CICS screens and can use them to
investigate the problem. In this example, you will end the session.
14. Type =X in the COMMAND field and press Enter. The Exit Session screen is displayed
as shown in Figure 17-11.
The ACTIVE ABEND TRAPS and WAITING TASKS fields show the number of remote
traps.
Figure 17-11. Removing Abend Trap and the Exit Session Screen (X)
15. Type Y in the END SESSION field and press Enter. This frees the remote terminal and
removes the trap set on the Trap Summary screen (9.6).
Unattended Monitoring
On the secondary terminal, type XCB2 and press Enter. The storage violation is
intercepted and turned into a harmless ASRA, as shown in Figure 17-12. The dump
information is stored on the dump dataset. If Abend-AID for CICS is installed, an
abend report is created with an abend code of STOR.
Using Global Storage Protection 17-9
Chapter 18.
Editing CICS Tables and Control Blocks Chap 18
This chapter discusses how to use the XPSP transaction to perform the following
functions:
Access and modify CICS table entries, storage, and control blocks defined to a CICS
region.
Use Xpediter/CICS to modify CICS tables online without taking the region down.
Note: Because the example removes upper case translation by overtyping a field in the
TCT, causing CICS not to recognize a lower case transaction name, you may want
to just read the example without actually replacing the value.
1. From a blank CICS screen, type XPSP 9.2 and press Enter. The Memory Display
screen (9.2) is displayed (Figure 18-1).
18-2 Xpediter/CICS COBOL User Guide
Figure 18-1. Changing the TCT on the Memory Display Screen (9.2)
Note: You may want to change the value back to 01 before ending your session.
The table has been updated, and you can now continue your test without recycling
the CICS region.
1. Type XPSP 9.D from a blank CICS screen and press Enter.
2. Type TCT in the TABLE/AREA field.
3. Type TCTEUCTB in the LABEL field and press Enter. The TCTEUCTB field is
displayed (Figure 18-2).
Editing CICS Tables and Control Blocks 18-3
You can change this field (01) by keying over the existing data in either hexadecimal or
character format.
This same technique can be used to update any table, control block, or area defined to
the CICS region.
18-4 Xpediter/CICS COBOL User Guide
19-1
Chapter 19.
Using 3270 Web Bridge Support Chap 19
This chapter demonstrates how to run Xpediter/CICS using the 3270 Web Bridge
function. Some typical Xpediter screens are shown, and any minor differences associated
with running Xpediter using the 3270 Web Bridge are noted.
You will use the XPED transaction in a web browser window to test the sample
application transaction XCB2 and fix an abend. XCB2 is a simple employee payroll
transaction that executes the COBOL program CWDEMCB2. The XCB2 transaction is
used throughout this chapter to cause several types of abends. (Although COBOL is used
in these examples, the same scenarios apply for all languages.)
Figure 19-1. Xpediter/CICS Primary Menu (XPED/XPRT) Using 3270 Web Bridge
Notes:
If Xpediter has not yet been initialized in the CICS region, you will be prompted to
click the browser Refresh button before the Primary Menu appears.
The browser progress indicator bar does not complete.
The browser Back button may yield unpredictable results when using the 3270 Web
Bridge.
2. Click the CLEAR button in the browser window. Clicking this button takes the place
of pressing the Clear key. A blank CICS screen appears as shown in Figure 19-2.
Using 3270 Web Bridge Support 19-3
3. Type XCB2 in the blank CICS screen and click the Enter button. Clicking this button
takes the place of pressing the Enter key. The Demonstration Transaction screen
appears (Figure 19-3).
19-4 Xpediter/CICS COBOL User Guide
4. To cause an ASRA abend, type 00001 for the employee number and click the Enter
button.
The CWDEMCB2 demonstration transaction program is intercepted, and the Source
Listing screen (2.L) appears as shown in Figure 19-4.
Using 3270 Web Bridge Support 19-5
5. Note the value of WA_HOURS. The bad data ($$$) in this field is causing the ASRA.
To change it, select the bad data, type 040, then click the ENTER button.
6. Click the GO button to continue the test. The Demonstration Transaction screen
appears as shown in Figure 19-5.
19-6 Xpediter/CICS COBOL User Guide
abend code. Identifier for the current abend BL cell. Base Locator cell. These cells are used by
when an abend occurs. COBOL programs to provide addressability to data
within the working storage section of a program.
Abend trap. Function that allows Xpediter/CICS
to notify the user when a program breakpoint, BLL cell. Base Linkage Locator cell. These cells
abend, or storage violation has been encountered. are used by COBOL programs to provide address-
See trap. ability to data within the linkage section of a pro-
gram.
ADD OFFSET. Indicates a specific screen location.
The data at this location is scrolled to the top of BLW cell. Base Locator Working Storage cell.
the data portion of the screen. If the USE These cells are used by COBOL II programs to pro-
ADDRESS field contains an X, Xpediter/CICS vide addressability to data within the working
uses the data at this location as an address and dis- storage section of a program.
plays the location indicated. This feature is found
on screens 2.2 and 9.2. BPAM. Basic Partitioned Access Method.
Xpediter/CICS and other Compuware products. Database Descriptor (DBD). Defines the data-
base associated with a PCB. Associated with every
CLC. Compare Logical Character. PSB is a list of PCBs that define databases that can
be accessed via a PSB. Each PCB-accessed database
CLOT. (DB2 only) CICS Life-of-Task block. can be identified by its DBD name, which is used
during the definition of the database to DL/I.
COBOL language processor. One of several lan-
guage processors provided by Compuware, this DA-UNB. Direct Access UNBlocked dataset.
language processor accepts COBOL compiler out-
put, builds sort work records, sorts and merges the DB2. An IBM relational database management
records, and merges the records with the listing to system.
produce processor control blocks that can then be
used as input to Xpediter/CICS and other Compu- DBD. DataBase Descriptor.
ware products.
DBPA. Transaction used to initiate certain Xpe-
command. Request from a terminal to perform diter/CICS functions at system start-up.
an operation or to execute a program.
DCT. Destination Control Table.
COMMAND field. Field that appears in the upper
left corner of most Xpediter/CICS screens. All Xpe- DDIO. A Compuware file access method.
diter/CICS functions and screens are selected by
entering the desired function or screen ID in the DDIO file. A generic name for an Abend-AID
COMMAND field. report file, or an Xpediter source listing file.
Compare Logical Character (CLC) instruction. DDIO file member. A generic name for an abend
report in an Abend-AID report file, or an Xpediter
An IBM machine compare instruction. source listing in a source listing file.
Compuware Shared Services (CSS). A set of default value. Choice among exclusive alterna-
components used by several Compuware products tives made by the system when no explicit choice
to provide storage, retrieval, and maintenance for is made by the user.
source listings and abend reports.
destination. Location at which a block of (lines)
Conditional breakpoint. For a statement set records or a single record is being copied or
with a conditional breakpoint, Xpediter/CICS moved. The destination can be specified with an A
interrogates the condition entered and if true, (After) or B (Before) line command.
halts execution of the program and receives con-
trol. Destination Control Table (DCT). A CICS table
describing transient data files.
Containers. The big commarea containers and
channels that IBM introduced in CICS Transaction DFHRPL. Library of CICS and user-written pro-
Server 3.1 to replace commareas. For additional grams that are loaded and executed as part of a
information, refer to IBMs CICS Information CICS system. Programs from this library are loaded
Center. into CICS storage for online execution. DFHRPL
may be supplemented by LIBRARY resource defini-
CSECT field. Field on most Xpediter/CICS tions.
screens that is used to change the CSECT to be
accessed during the session. DL/I. Data Language 1.
dataname. The name of the data item in the DMAP. Data division map of a COBOL program.
working storage section of a COBOL program. The DMAP COBOL compile option produces a
report of all datanames and their associated BL or
dataset. Collection of data treated as a unit that BLL cell, displacement within the cell, and field
is the primary unit of access and storage. It can be description.
organized in various ways.
DOS. Disk Operating System.
DA-KEY. BDAM blocked DAtaset, deblocked by
KEY. DSECT. Dummy control section. A control sec-
tion that an Assembler program can use to format
DA-REL. BDAM blocked DAtaset, deblocked by a an area of storage without producing any object
RELative record. code.
G-3
EDT. MVS Eligible Device Table. VIEW SINGLE TASK screen (9.1) and the LIST ALL
TASKS (9.3) screen.
EIB. Execute Interface Block.
IMS. Information Management System.
EIS. Execute Interface Storage.
INRWORK. INput Register Work area.
entry-sequenced dataset (ESDS). VSAM dataset
whose records are loaded in sequence. Unlike a interactive. Pertaining to an application in
normal sequential dataset, ESDS records can be which each entry calls forth a response from a sys-
accessed randomly by their addresses. tem or program.
Execute Interface Block (EIB). Block that con- key. Code used to locate a record and establish its
tains information pertinent to a command-level position in an index. The key can be part of a
transaction such as the current time and date, field, a full field, or multiple fields duplicated
transaction ID, task number, terminal ID, COM- from the record.
MAREA length, attention identifier, function code,
and response code. Key-Sequenced Dataset (KSDS). VSAM file type
whose records are loaded in key sequence. Records
FCT. File Control Table. are retrieved by key or address using an index.
New records are inserted in key sequence by
file. Complete organized collection of informa- means of distributed free space.
tion.
keyword. Reserved word that has special signifi-
File Control Table (FCT). A CICS table defining cance.
files that can be accessed by CICS programs. Also
used to generically apply to files defined in the KSDS. Key-Sequenced DataSet.
CSD.
line command. Edit command that is entered
HELP. Primary command that requests Xpediters directly on the line to be processed by overtyping
interactive Help facility. the sequence number at the beginning of the line.
Also known as a prefix command.
HEX. Primary command that alternates between
symbolic or dump format display. linkage section. A section of a COBOL program
used to describe data that is passed to it from CICS
HEX OFFSET. Hexadecimal value of the location or another program.
of the retrieved area relative to the beginning of
the address. The sum of the ADDRESS field and MENU. Primary command that ends the current
HEX OFFSET field indicates the actual address of function and returns the user to the SYSTEM
the data displayed. MENU.
HEX ON and HEX OFF. Displays data in charac- MODULE field. Field on most Xpediter/CICS
ter and zoned decimal format on the VARIABLE screens that is used to change the program to be
STORAGE screen (2.3). The user may view this accessed during the session.
same data in a standard hexadecimal dump format
by entering HEX ON in the COMMAND field. HEX MORE. Indicates there is more information to
OFF redisplays the data in character and zoned display. This indicator appears only when screen
decimal format. overflow data is not generally assumed. Use PF7
and PF8 to view the additional data.
hung task. A task suspended by the system.
MQ. IBM licensed programs that provide message
hung task analysis. A Xpediter/CICS facility for queuing services.
the XPSP user that allows interrogation of a sus-
pended task to determine the reason for its sus- offset. A relative location or position within a
pension. This function is available by using the data area.
G-4 Xpediter/CICS COBOL User Guide
OFL. Optional Features List. Also known as OPFL. profile. Control block that defines session char-
acteristics applicable to one or more users of Xpe-
operating system. Software that controls the exe- diter/CICS. Pertinent information in a profile may
cution of jobs. It may provide resource allocation include PF key settings, default abend trap, trace,
and scheduling. storage protection, and footing settings.
PLIST. (DB2 only) Parameter List. Program Status Word (PSW). A special control
register, in the hardware, defining the current sta-
PF key. Program Function Key. tus and location of a program that is executing.
PL/I language processor. One of several lan- PSB. Program Specification Block.
guage processors provided by Compuware, this
language processor accepts PL/I compiler output, PSW. Program Status Word.
builds sort work records and an incore symbol
table of all the identifiers, and produces processor quick table disable. Method of turning off stor-
control blocks that can then be used as input to age protection monitoring without destroying the
Xpediter/CICS and other Compuware products. current table entries.
PLT. Program List Table. RCT. (DB2 only) Resource Control Table.
prefix commands. Another name for line com- record. Collection of related data or words
mands. treated as a unit.
Program Communication Block (PCB). One of a register. Storage device, having specified storage
list of control blocks used by DL/I that define the capacity such as a bit, byte, or a computer word,
databases that can be accessed via a particular PSB. and usually intended for a special purpose.
Each PCB-accessed database DBD name. For each
PCB with a PSB, Xpediter/CICS displays the PCB register save area. Group of 72 contiguous bytes
number and DBD name. Xpediter/CICS uses the used for saving registers when one program calls
PCB number to identify the PCB to access a DL/I another.
database from the selected PSB.
Relative Record DataSet (RRDS). VSAM dataset
Program List Table (PLT). CICS table describing whose record locations are specified by a number
a list of programs to be executed when CICS is in that represents a records location in the dataset
initialization or termination processing. relative to the beginning of the dataset.
Program Specification Block (PSB). DL/I control remote task trapping. Xpediter/CICS function
block that defines a set of DL/I databases that can that allows one terminal to trap abends, break-
be accessed from a program. The databases and points, and storage violations that occur on
segments in the databases that can be accessed are another terminal or in a non-terminal task.
defined via a list of PCBs defined in the PSB. To
access any DL/I database, always select a PSB. RFN. An abbreviation for RECEIVE FROM NET-
WORK. RECEIVE FROM NETWORK specifies that
program storage. Class of CICS storage used for the input for an SMP/E RECEIVE command is a
application programs. GIMZIP package on a TCP/IP connected FTP
server.
primary command. Command that provides a
general function. Primary commands are entered RRDS. Relative Record Dataset.
in the COMMAND field.
screen ID. Code entered in the COMMAND field
procedure division. Section of a COBOL program to retrieve information and function screens. The
that contains executable instructions. SCREEN ID for each screen appears on every
screen immediately preceding the screen title.
G-5
SCROLL field. A field on most Xpediter/CICS table entry ID. Identification command used to
screens that is used to set the default value to be directly retrieve the desired CICS table entry for
used for those screens that allow scrolling. display.
Segment Search Argument (SSA). A control task. Execution of a program or multiple pro-
block used by DL/I to access a segment within the grams within CICS to perform a specific function.
hierarchy of a database. Each task is assigned a unique number (task num-
ber) by CICS.
Shared Directory. A variable-length record VSAM
RRDS that maintains information about abends TCA. Task Control Area.
and language processing along with the attached
database activity. A shared directory can contain TCP/IP. Transmission Control Protocol/Internet
Abend-AID for CICS directory records for each Protocol. Set of communication protocols
region and transaction dump known to a server, enabling Telnet, FTP, e-mail, and other services.
Abend-AID directory records for abend report pro-
cessing, or source listing shared directory records TCT. Terminal Control Table.
necessary to process source listing database mem-
bers. Terminal Control Table (TCT). CICS table defin-
ing terminals used by CICS.
shared storage. Class of CICS storage that can be
shared between tasks. TOGGLE. Primary command that transfers you to
the Source Listing (2.L) screen.
SIT. System Initialization Table.
trace. Record of the execution of a computer pro-
snap dump. Dump that is taken at a specific gram; it exhibits the sequences in which the
point during execution of a program. Processing is instructions were executed.
generally continued after the dump has been
taken. trace table. CICS storage area into which trace
information is placed. This table contains the
SQLCA. (DB2 only) SQL Communication Area. chronological occurrences of events that take
place in CICS, recorded in wraparound fashion
SQLDA. (DB2 only) SQL Descriptor Area. within the trace table.
SSA. Segment Search Argument. trap. Xpediter/CICS feature. The user may set
traps to intercept CICS transaction abends and to
statement number. Sequence numbers provided view all areas at abend time. Traps may be set to
by compilers and assemblers to provide the pro- only intercept transaction abends at terminals
grammer with an easy means of identifying a running Xpediter/CICS or designated as remote.
statement within a program. Traps may be set to intercept specific transactions
abends, regardless of the terminal from where they
statement number column. Column on the dis- are executed. Traps may also be used to intercept
play where the statement numbers are located. In abends occurring in non-terminal tasks.
some cases, commands may be entered into this
column. TSA. Temporary Save Area.
STCA. System portion of the Task Control Area. unconditional breakpoint. For a statement set
with an unconditional breakpoint, Xpediter/CICS
stop. See breakpoint receives control and temporarily halts execution
of the program before or after this statement.
storage protection. Method of preventing pro-
grams from violating storage within the CICS use address. A feature that is available on the
region, thereby increasing the time that the region Memory Display screens (2.2 and 9.2). The USE
remains running. ADDRESS function automatically retrieves an
address reference from memory and displays the
storage protection exceptions. Xpediter/CICS location.
facility for allowing specific actions that are con-
sidered to be storage violations to take place. user labels. Labels generated by a user that
equate to storage locations.
system labels. Labels that equate to storage loca-
tions that may be used by any Xpediter/CICS user. variable. Name of a data item in a PL/I program.
Some system labels are predefined by Compuware.
G-6 Xpediter/CICS COBOL User Guide
Index B
breakpoints
A overview, 2-1
setting, 2-1
setting breakpoints
Abend-AID for CICS interface, 9-19-8 calling programs, 5-1
accessing Abend-AID for CICS through Xpedit- COBOL programs, 3-6
er/CICS, 9-1 testing without breakpoints
issuing an Abend-AID for CICS snap dump, 9-3 COBOL programs, 3-1
turning on Abend-AID for CICS, 9-1 sourceless debugging, 4-9
viewing Abend-AID for CICS diagnostics, 9-6 breakpoints in dynamically called subroutines
viewing the Abend-AID for CICS report directory, dynamically called subroutines, breakpoints in, 5-7
9-5 browsing messages on an MQ queue, 15-3
accessed storage areas, reviewing on Select Address browsing records in a file, 12-1
screen, 16-7
accessing Abend-AID for CICS through Xpedit-
er/CICS, 9-1 C
accessing CICS storage, 16-116-8
accessing storage areas, 16-1
chaining through storage areas, 16-3 calling program, returning to, 5-6
displaying CICS DSECTs, 16-2 calling program, setting breakpoints in, 5-1
displaying CICS table entries, 16-5 chaining through CICS storage areas, 16-3
reviewing accessed areas, Select Address screen, changing PF key settings, 11-2
16-7 changing profile defaults, 11-1
accessing CICS storage areas, 16-1 CICS region storage protection, setting, 17-1
accessing DL/1 databases, 13-113-7 CICS storage access
list PCB, 13-2 See accessing CICS storage
retrieving a segment, 13-4 CICS table editing
selecting PSBs and PCBs, 13-1 See editing CICS tables and control blocks
selecting segments from the PCB, 13-2 CICS table entries, displaying, 16-5
accessing files, 12-112-7 COBOL program testing, 3-13-31
browsing records in a file, 12-1 executing the program, 3-7
changing file service requests, 12-5 resuming statement execution, 3-10
accessing list of MQ queues, 15-1 reviewing program execution, 3-10
accessing Xpediter/CICS, 2-2 setting program breakpoints, 3-6
basic access from CICS, 2-3 stepping through statements, 3-10
direct access by screen ID, 2-4 testing without breakpoints, 3-1
ending a session, 2-5 viewing source, 3-4
fast-path access to Source Listing screen (2.L), 2-4 commands, 1-9
Acrobat PDF online documentation, ix line commands, 1-11
adding messages on an MQ queue, 15-3 primary commands, 1-9
allowing storage violations, 8-2 Compuware FrontLine customer support website, ix
alternate PF key settings, 11-3 Compuware language processor, 2-1
alternate profile loading, 11-5 compile recommendations, 2-1
analyzing program data, 6-3 JCL, 2-1
analyzing program execution, 6-16-4 overview, 2-1
analyzing the data, 6-3 postprocessor, 2-1
executing the program, 6-2 preprocessor, 2-1
setting up the analysis, 6-1 control block editing
architecture of Xpediter/CICS, 1-2 See editing CICS tables and control blocks
asynchronous transactions, trapping COUNT command for execution analysis, 6-1
See monitoring tasks started from remote terminals CSECT debugging, 5-15-11
ATA, 10-1 executing a program containing multiple CSECTs,
ATASCREEN, 10-1 5-4
automatic selection of CSECTs returning to the calling program, 5-6
CSECTs, automatic selection, 5-8 setting breakpoints in a calling program, 5-1
Automatic Trap Activation, 10-1 using CSECT Selections screen, 5-9
using profiles to select CSECTs, 5-10
CSECTs, selecting, 5-9
I-2 Xpediter/CICS COBOL User Guide
E I
easy query for DB2 database access, 14-1
accessing Table/View List screen, 14-2 IBM MQ for z/OS, 3-14, 3-22, 3-273-28, 15-1, 15-4
building an SQL easy query, 14-6 initial COMMAREA (ICA), 3-14
editing a column, 14-9 Intelligent Autokeeps, 3-5
editing a row, 14-4 intellikeep, 3-5
editing CICS tables and control blocks, 18-1 intended audience, viii
displaying and updating DSECTs, 18-2 interfacing with Abend-AID for CICS, 9-19-8
editing a CICS table entry, 18-1 accessing Abend-AID for CICS through Xpedit-
ending a debugging session, 2-5 er/CICS, 9-1
enhanced breakpoints, 3-26 issuing an Abend-AID for CICS snap dump, 9-3
turning on Abend-AID for CICS, 9-1
I-3
S T
screen format, 1-7 table entries, CICS, displaying, 16-5
screen navigation, 2-4 tables, CICS, editing
Select Address screen, reviewing accessed storage ar- See editing CICS tables and control blocks
eas, 16-7 Task Storage screen (2.S), 16-4
selecting CSECTs, 5-9 test region storage protection, 17-3
selecting PSBs and PCBs, 13-1 testing a COBOL program, 3-13-31
setting breakpoints in a calling program, 5-1 executing the program, 3-7
setting storage protection, 8-1 resuming statement execution, 3-10
automatic protection using XPSP, 17-2 reviewing program execution, 3-10
automatic storage protection using XPED, 8-1 setting program breakpoints, 3-6
defining storage exceptions, 17-5 stepping through statements, 3-10
defining system labels, 17-3 testing without breakpoints, 3-1
during PLT startup, 17-9 viewing source, 3-4
region-wide storage protection, 17-1 testing a DB2 program
test region protection, 17-3 See debugging DB2 programs
setting up a profile, 11-1 testing applications without source code, 4-14-14
changing PF key settings, 11-2 debugging without breakpoints, 4-9
changing profile defaults, 11-1 modifying storage, 4-11
loading a profile, 11-5 preparing for sourceless debugging, 4-2
saving profile defaults, 11-6 when to use sourceless debugging, 4-1
setting up program analysis, 6-1 testing subroutines (CSECTs), 5-15-11
shared directory, G-5 executing a program containing multiple CSECTs,
SLS overview, 2-1 5-4
snap dump, Abend-AID for CICS, 9-3 returning to the calling program, 5-6
source-level support (SLS) debugging overview, 2-1 setting breakpoints in a calling program, 5-1
I-5
U
update password security, 1-13
using Automatic Trap Activation, 10-110-2
using global storage protection, 17-117-9
allowing storage violations, 17-3
defining storage exceptions, 17-5
defining system labels, 17-3
monitoring storage violations, 17-6
setting automatic storage protection, 17-2
setting region-wide storage protection, 17-1
setting storage protection during PLT startup, 17-9
using for test regions, 17-3
using Xpediter/CICS with DB2, 14-1
debugging DB2 programs, 14-11
accessing DB2 storage, 14-13
interpreting DSNC abends and SQL codes, 14-12
setting breakpoints in SQL code, 14-11
setting keeps on DB2-specific data, 14-12
using the DB2 easy query, 14-1
accessing Table/View List screen, 14-2
building an SQL easy query, 14-6
editing a column, 14-9
editing a row, 14-4
setting session default attributes, 14-1
Utilities Mode, 1-11-2, 2-3
V
viewing the Abend-AID for CICS diagnostics, 9-6
viewing the Abend-AID for CICS report directory, 9-5
W
Web Bridge support, 19-1
WebSphere MQ, 3-14, 3-24
WebSphere MQ. See IBM MQ for z/OS
X
XPED transaction, 1-3
XPED transaction users, viii
Xpediter Primary Menu (XPED/XPRT), 1-4, 4-9, 9-2
Xpediter Primary Menu (XPED/XPRT) using 3270 Web
Bridge, 19-2
Xpediter Primary Menu (XPSP), 1-4
XPRT transaction, 1-3
XPRT transaction users, viii
XPSP transaction overview, 1-4
XPSP transaction users, viii
I-6 Xpediter/CICS COBOL User Guide