XPCICSAssemblerUserGuide (9.4)
XPCICSAssemblerUserGuide (9.4)
Release 9.4
ii Xpediter/CICS Assembler User Guide
http://go.compuware.com/
This document and the product referenced in it are subject to the following legends:
Copyright 1984 - 2015 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 user’s 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, MQ Series, MVS, MVS/ESA, OS/390, VTAM,
WebSphere MQ, 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. CWXCUA9F
June 29, 2015
iii
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
System Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Online Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Compuware Go Customer Support Website . . . . . . . . . . . . . . . . . . . . . . . .xiii
Contacting Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Phone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Corporate Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
Information for Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-1
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I-1
vii
Figures
1-1. Primary Menu (XPED/XPRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4
1-2. Copyright/Trade Secret Notice Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4
1-3. System Facilities Menu (9) for XPSP Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-5
1-4. Common Screen Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-8
2-1. Primary Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
2-2. Accessing the Source Listing Screen (2.L) Using the Fast-Path Method . . . . . . . . .2-4
2-3. Exit Session Screen (X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-5
3-1. Primary Menu (XPED/XPRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-1
3-2. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2
3-3. Executing SET JUST OFF on the Assembler Source Listing Screen (2.L) . . . . . . . . .3-2
3-4. Defined Storage Screen (2.3) Accessed with PEEK Command . . . . . . . . . . . . . . . . .3-3
3-5. Source Listing Screen (2.L) Showing Contents of WRKHOUR . . . . . . . . . . . . . . . .3-4
3-6. Changing the Value of WRKHOUR on the Source Listing Screen (2.L) . . . . . . . . .3-5
3-7. Changing the Value of WRKHOUR Using the VERIFY Command . . . . . . . . . . . . .3-5
3-8. Transaction Complete Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6
3-9. Set Profile Defaults Screen (0.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-7
3-10. Save Profile Screen (0.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-7
3-11. Displaying Assembler Source on the Source Listing Screen (2.L) . . . . . . . . . . . . . .3-8
3-12. Displaying Breakpoints on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . .3-9
3-13. Intercepting a Breakpoint on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . .3-10
3-14. Executing GO 5 1 on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . .3-11
3-15. PF2 (RUNTO CSR) on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . .3-11
3-16. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-12
3-17. Intercept Summary (1.7). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-12
3-18. Intercept Summary with Intercept Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-13
3-19. Before Breakpoint Taken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-13
3-20. CWDEMASM on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . . . . .3-14
3-21. Displaying Breakpoints on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . .3-14
3-22. Displaying a Trap on the Trap Summary Screen (1.6) . . . . . . . . . . . . . . . . . . . . . .3-15
3-23. Enhanced Trap for Initial COMMAREA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-15
3-24. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMASM . . . .3-16
3-25. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-16
3-26. Taking an Enhanced Trap for Initial COMMAREA . . . . . . . . . . . . . . . . . . . . . . . .3-17
3-27. Verifying Enhanced Trap for Initial COMMAREA . . . . . . . . . . . . . . . . . . . . . . . . .3-17
3-28. CWDEMACH on the Source Listing Screen (2.L). . . . . . . . . . . . . . . . . . . . . . . . . .3-18
3-29. Displaying Breakpoints on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . .3-18
3-30. Displaying a Trap on the Trap Summary Screen (1.6) . . . . . . . . . . . . . . . . . . . . . .3-19
3-31. Enhanced Trap for Container ACHREPCOMMAREA. . . . . . . . . . . . . . . . . . . . . . .3-19
3-32. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMACH . . . .3-20
3-33. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-20
3-34. Taking an Enhanced Trap for Container ACHREPCOMMAREA . . . . . . . . . . . . . .3-21
3-35. Confirm that Container Data Satisfied Enhanced Trap Criteria . . . . . . . . . . . . . .3-21
3-36. Define User Labels Screen (1.9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-22
3-37. After Breakpoint on the Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . .3-23
3-38. Source Listing Screen (2.L) - GO UNTIL MYLABEL . . . . . . . . . . . . . . . . . . . . . . . .3-23
4-1. Primary Menu (XPED/XPRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-2
4-2. Source Listing Screen with CWDEMASM Pseudo-Listing . . . . . . . . . . . . . . . . . . . .4-3
4-3. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3
4-4. Source Listing Screen (2.L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-4
4-5. Viewing Program Storage on the Memory Display Screen (2.2) . . . . . . . . . . . . . . .4-5
4-6. Viewing Data Fields on the Memory Display Screen (2.2). . . . . . . . . . . . . . . . . . . .4-5
4-7. Viewing Data Fields on the Memory Display Screen (2.2). . . . . . . . . . . . . . . . . . . .4-6
4-8. Modifying Data on the Memory Display Screen (2.2) . . . . . . . . . . . . . . . . . . . . . . .4-6
4-9. Source Listing Screen (2.L) Showing the GO 1 Command . . . . . . . . . . . . . . . . . . .4-7
4-10. Transaction Complete on the Demonstration Transaction Screen . . . . . . . . . . . . .4-7
4-11. Setting Breakpoints on the Memory Display Screen (2.L) . . . . . . . . . . . . . . . . . . . .4-8
viii Xpediter/CICS Assembler User Guide
15-11. Removing Abend Trap and the Exit Session Screen (X). . . . . . . . . . . . . . . . . . . . .15-8
15-12. Preventing a Storage Violation on the Demonstration Transaction Screen . . . . .15-9
16-1. Changing the TCT on the Memory Display Screen (9.2). . . . . . . . . . . . . . . . . . . .16-2
16-2. DSECTs Screen (9.D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16-3
17-1. Xpediter/CICS Primary Menu (XPED/XPRT) Using 3270 Web Bridge . . . . . . . . .17-2
17-2. Entering XCB2 on a Blank CICS Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-3
17-3. Demonstration Transaction Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-4
17-4. Source Listing Screen (2.L) Showing an ASRA . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-5
17-5. Demonstration Transaction Completed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-6
xi
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 Xpediter’s 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 6, “Monitoring Tasks Started from Remote Terminals”: Describes how to set
and intercept remote traps.
Chapter 8, “Interfacing with Abend-AID for CICS”: Discusses the interface with
Compuware’s Abend-AID for CICS fault diagnosis product.
Chapter 9, “Using Automatic Trap Activation”: Explain how ATA traps abends without
the user having an Xpediter session active.
Chapter 11, “Accessing DL/1 Databases”: Shows how to list PCBs and edit a DL/I
segment.
Chapter 12, “Using Xpediter/CICS with DB2”: Tips on row and column editing of DB2
tables and views.
Chapter 13, “Using Xpediter/CICS with MQ”: Describes the MQ File Utility and how to
debug MQ programs.
Chapter 14, “Accessing CICS Storage”: Describes how to access and update CICS
storage.
xii Xpediter/CICS Assembler User Guide
Chapter 15, “Using Global Storage Protection”: Shows how to set protection, define
system labels, and control storage exceptions.
Chapter 16, “Editing CICS Tables and Control Blocks”: Describes how to display CICS
table entries and DSECTs.
Chapter 17, “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 Xpediter’s 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 Go
Introduction xiii
• 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.
Compuware now offers User Communities, online forums to collaborate, network, and
exchange best practices with other Compuware solution users worldwide. To join, go to
http://groups.compuware.com.
Web
You can report issues via the Quick Link Create & View Support Cases on the
Compuware Go home page.
Mail
Compuware Customer Support
Compuware Corporation
One Campus Martius
Detroit, MI 48226-5099
Corporate Website
To access Compuware’s site on the Web, go to http://www.compuware.com.
xiv Xpediter/CICS Assembler User Guide
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. Xpediter’s 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 Xpediter’s
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.
Xpediter’s 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 Xpediter’s 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 Xpediter’s
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 (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 user’s task to
determine problems.
• Remote Trapping — Application support personnel are able to set traps to gain
control and diagnose end-user sessions.
Product Overview 1-7
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
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 navigate 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.
• 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
Xpediter’s Help facility.
Product Overview 1-9
• 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.
• 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 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.
1-10 Xpediter/CICS Assembler User Guide
CALC
Performs hexadecimal/decimal calculations and displays the results online.
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.
Product Overview 1-11
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.
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.
VERIFY
Displays and, if desired, modifies Assembler object code.
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.
BC (Before Conditional)
Sets a conditional breakpoint before a statement.
1-12 Xpediter/CICS Assembler User Guide
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 data name 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 Defined 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.
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
PF
Function Description
Key
HELP PF1 Provides help information on the function currently in use.
Product Overview 1-13
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 Assembler programs through the
Assembler 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 Assembler PRINT OFF or PRINT
NOGEN 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
Assembler and PL/I, if no compile date and time are found in the load module, Xpediter
checks the ASMSTMP or PL1STMP parameter in the global table. If the parameter is set to
YES (the default), the NO SOURCE AVAILABLE message is displayed. Press the help PF key
(default PF1) for specific information. If the parameter is set to NO, Xpediter bypasses
timestamp validation and continues. For more information on these parameters and how
to create a timestamp in Assembler and PL/I programs, refer to Chapter 5, “Global
Parameters Table” in the Xpediter/CICS Installation and Configuration Guide.
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.
Getting Started 2-3
Accessing Xpediter/CICS
There are three ways to access Xpediter/CICS:
• 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 Xpediter’s
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 functionality—such as Xpediter/Xchange,
Xpediter/Code Coverage, or CICSPlex support—is 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.
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.
Getting Started 2-5
• 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 transaction’s 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 an Assembler Program Chap 3
This chapter demonstrates how to test an Assembler 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 (XASM) and fix an
abend. XASM is the sample demonstration transaction shipped with Xpediter/CICS. It is
a simple employee payroll transaction that executes the Assembler program
CWDEMASM. The XASM transaction is used throughout this guide to cause several types
of abends.
If you have questions about what 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.
3-2 Xpediter/CICS Assembler User Guide
2. To turn on the trace facility, type SET TRACE ON on the COMMAND line and press
Enter.
3. Press Clear to return to CICS to start your test.
4. On a blank CICS screen, type XASM and press Enter. The Demonstration Transaction
screen appears as shown in Figure 3-2.
5. To cause an ASRA abend, type 00001 and press Enter. The CWDEMASM demo
program is intercepted when the abend occurs, and the Source Listing screen (2.L) is
displayed. This gives you the opportunity to fix the problem, re-execute the
statement, and continue the test. The display is “clipped” to show only the source
code.
6. If you prefer to also see the OPCODE, type SET JUST OFF and press Enter. The display
shows the offset and assembly from the source listing, as shown in Figure 3-3.
Note: The line numbers shown in this guide may vary from those seen during actual
program execution.
Figure 3-3. Executing SET JUST OFF on the Assembler Source Listing Screen (2.L)
The module and CSECT names are displayed on the third line of the screen along
with the assembly date and time to indicate which program is executing. The keep
window is next, where all data items from the current statement are automatically
displayed. The message on the STATUS line, ASRA (DATA EXCEPTION) at
CWDEMASM.603, indicates that an ASRA has been intercepted. In the source
statements that follow, the current statement is identified with an arrow =====>.
Testing an Assembler Program 3-3
In this example, the ASRA occurs because one of the fields in the current statement
contains bad data. Note the value of WRKHOUR. The bad data in this field is causing
the ASRA.
7. The contents of other data items can be checked by using the PEEK primary
command. Type PEEK WRKTAX in the COMMAND field and press Enter.
Xpediter/CICS will transfer to the Defined Storage screen (2.3) with the contents of
WRKTAX positioned to the top of the screen as shown in Figure 3-4.
Figure 3-4. Defined Storage Screen (2.3) Accessed with PEEK Command
Note: The following step requires that CSR be entered in your SCROLL field.
a. Place the cursor on WRKHOUR in the keep window and press PF8 (DOWN) to
position it to the top line.
b. Type HEX ON in the COMMAND field and press Enter.
The hex value for WRKHOUR will be displayed in the keep window as shown in
Figure 3-5.
3-4 Xpediter/CICS Assembler User Guide
10. Type HEX OFF in the COMMAND field and press Enter.
11. Autokeeps are displayed only for the statement currently executing. To continue
displaying the value of WRKHOUR as you step further through the program, set an
explicit keep as follows:
a. Move the cursor next to WRKHOUR in the keep window.
b. Type K and press Enter.
Another way to set this keep would be to type KEEP WRKHOUR in the COMMAND
field and press Enter.
A feature called Intelligent Autokeeps is an extension to Xpediter’s autokeep facility.
This feature is enabled by default, but can be disabled in your individual profile
settings. With Intelligent Autokeeps enabled, if an autokeep variable could be
modified by the execution of the current statement, it will be redisplayed in the keep
window when you step to the next statement. This intellikeep can often eliminate the
need to set, then later remove, an explicit keep. The Intelligent Autokeeps feature
will not display an autokeep if a duplicate explicit keep has been set.
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.
12. At this point, two methods can be used to prevent the ASRA abend from occurring:
a. The first method is to change the value of WRKHOUR to a valid number:
1. Change ????? to 40 and press Enter. This can be done for the explicit keep or
the autokeep for WRKHOUR.
2. Press PF9 (GO 1) to get to the next statement as shown in Figure 3-6.
Testing an Assembler Program 3-5
Figure 3-6. Changing the Value of WRKHOUR on the Source Listing Screen (2.L)
b. Instead of changing the value number, the second method is to change the
Assembler instruction using the VERIFY command.
Note: The line numbers shown in this guide may vary from those seen during actual
program execution. For correct results, use the applicable line numbers seen
on your screen.
Note: The VERIFY command does not allow instructions to be altered for
programs residing in (E)RDSA. The message <- PROT STG will be
displayed on the line where you tried to set the verify.
Figure 3-7. Changing the Value of WRKHOUR Using the VERIFY Command
c. If WRKHOUR still had bad data, you could get temporarily past the ASRA by
changing the instruction to multiply CURRPAY by PAYHOUR9 as follows:
1. Change the second operand of the instruction from D25A to D2F9 and press
Enter.
2. Press PF9 to single-step past the modified instruction.
You have now changed the value of CURRPAY, and temporarily corrected the ASRA.
13. Press PF12 (GO) to continue processing. If any other abends occur, Xpediter/CICS
will intercept them. Upon completion, the Transaction Complete screen is displayed
(Figure 3-8). The GROSS PAY shown will depend on the way in which you resolved
the abend.
14. Always end your debugging session as described in “Exiting Xpediter/CICS and
Ending a Debugging Session” on page 2-5.
1. From a blank CICS screen, type XPED 0.1 and press Enter. The Set Profile Defaults
screen (0.1) appears (Figure 3-9).
Testing an Assembler Program 3-7
2. Type OFF in the JUSTIFY field and press Enter. This has the same effect as the SET
JUST OFF command.
Note: You may also want to set the footing to one of the following options:
• FLOAT
• REGS
• STATUS
• SOURCE.
Refer to the Xpediter/CICS Reference Manual for profile options.
3. Type ASSEM in the PROFILE field of the 0.1 screen and press Enter. If that profile
name does not already exist, you are transferred to the LOAD PROFILE (0.4) screen.
4. Type =0.5 in the COMMAND field of the screen displayed and press Enter. The Save
Profile screen (0.5) (Figure 3-10) is displayed. You can use this screen to create a new
user profile.
5. Type ASSEM in the SAVE DEFAULTS VALUES TO PROFILE field and press Enter. The
new session options are stored in the profile file under the name ASSEM.
For more information on profiles and their uses, see Chapter 10, “Setting Up a
Profile”.
3-8 Xpediter/CICS Assembler User Guide
From a cleared CICS screen type XPED CWDEMASM P=ASSEM and press Enter.
Xpediter/CICS automatically loads your profile and displays the source for CWDEMASM
(Figure 3-11).
Figure 3-11. Displaying Assembler Source on the Source Listing Screen (2.L)
3. To delete the first breakpoint, set at offset 4A in this example, type BEFORE OFF +4A
in the COMMAND field and press Enter. The statement remains on the screen, but
the B indicator is removed.
Note: You can also use a line command to delete breakpoints. Place the cursor on
the line number of the statement, type D (Delete), and press Enter.
4. Type AFTER +30C in the COMMAND field and press Enter. This sets a breakpoint
after the final map is sent.
5. Type SHOW BREAKS in the COMMAND field and press Enter. The display of
breakpoints is updated.
6. Type RESET in the COMMAND field and press Enter to redisplay the excluded lines.
Some breakpoints have now been set in this example. The program is ready to test.
4. Autokeeps are displayed only for the statement currently executing. To continue
displaying the value of WRKHOUR after the current instruction has executed, set an
explicit keep as follows:
a. Move the cursor next to WRKHOUR in the keep window.
b. Type K and press Enter.
Another way to set this keep would be to type KEEP WRKHOUR in the COMMAND
field and press Enter.
5. Overtype the bad data (?????) with 10 and press Enter. The data is changed.
1. Type GO 5 1 in the COMMAND field and press Enter. As shown in Figure 3-14, the
following actions occur:
– Five lines of code are executed with a one-second pause between each statement.
– The execution pointer points to the current statement, which is highlighted.
– A message shows the offset and the number of steps that have executed.
Testing an Assembler Program 3-11
2. Press PF12 (GO) to continue processing. The execution halts at a breakpoint, and the
Source Listing screen (2.L) is displayed.
3. Position the cursor on line 627, a few lines below the current statement, then press
PF2 (RUNTO CSR). As shown in Figure 3-15 on page 3-11, the execution halts at
statement 627, where the cursor was positioned when PF2 was pressed. Pressing PF2
caused a runto breakpoint to be set on the statement where the cursor was
positioned, a GO command to be issued, and the runto breakpoint to be deleted
automatically after it was taken.
Figure 3-15. PF2 (RUNTO CSR) on the Source Listing Screen (2.L)
4. Press PF12 (GO) to continue processing. The execution halts at the breakpoint after
the last map was sent.
5. To see the last map, press PF18 to display the Last 3270 screen. It shows that
WRKHOUR was updated successfully.
3-12 Xpediter/CICS Assembler User Guide
1. Access the Intercept Summary screen by entering 7 on the Session Control (1) Menu
or by entering =1.7 in the COMMAND field.
If any current intercepts for your terminal exist at this time, they are displayed when
the initial screen appears, followed by lines with underscores to enter new data. You
can enter either the load module name or a load module and a CSECT name for
intercepts you want to set. If only the load module name is entered, it is propagated
into the CSECT name to set the intercept.
2. Enter CWDEMASM on the first line under LOAD MODULE.
3. Enter CWDEMASM on the second line under LOAD MODULE, then enter
CWCDSUBA under CSECT.
4. Press Enter. The screen is refreshed and the result of each new line command is
displayed. 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.
5. Clear your screen.
6. Enter XASM. A before breakpoint is taken at the entry point of CWDEMASM.
7. 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 CWDEMASM on a blank CICS screen and press Enter. Program
CWDEMASM is displayed on the Source Listing screen (2.L) as shown in Figure 3-20.
2. Type BEFORE ALL WRKHOUR in the COMMAND field and press Enter. This will set
a before breakpoint on any line that references WRKHOUR.
3. Type SHOW BREAKS in the COMMAND field and press Enter. The lines on which
breakpoints have been set will be displayed as shown in Figure 3-21 on page 3-14.
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 RESET and press Enter to display all lines of the source.
5. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6) is
displayed (Figure 3-22) showing the trap Xpediter automatically created based on
netname and terminal ID. This assumes that global parameter TRAPNET and
TRAPTRM have to be set to YES.
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'.
7. The enhanced trap could also be modified to eliminate the netname and terminal ID
requirements. As shown in Figure 3-24, overtype ACME0027 in the NETNAME field
3-16 Xpediter/CICS Assembler User Guide
and 0027 in the TERM field with all asterisks (*), type CWDEMASM 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.
Figure 3-24. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMASM
Notice that the trap was not taken by Xpediter/CICS. This is because the initial
invocation of the pseudo-conversational transaction XASM does not contain a
COMMAREA for the trap criteria to match.
10. Type 00999 for the employee number and press Enter. Now Xpediter traps the
transaction as shown in Figure 3-26 on page 3-17. 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).
Testing an Assembler Program 3-17
11. 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.
12. 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-27. Notice
the characters “Test” starting 26 bytes (relative to 1) into the initial COMMAREA.
13. End your debugging session by typing XPND on a blank CICS screen and pressing
Enter.
2. Type BEFORE ALL WRKHOUR in the COMMAND field and press Enter. This will set
a before breakpoint on any line that references WRKHOUR.
3. Type SHOW BREAKS in the COMMAND field and press Enter. The lines on which
breakpoints have been set will be displayed as shown in Figure 3-29.
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-30) 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.
Testing an Assembler Program 3-19
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 ACHREPCOMMAREA 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'.
6. The enhanced trap could also be modified to eliminate the netname and terminal ID
requirements. As shown in Figure 3-32, overtype ACME0027 in the NETNAME field
and 0027 in the TERM field with all asterisks (*), type CWDEMACH 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 program’s
container contains the specified value.
3-20 Xpediter/CICS Assembler User Guide
Figure 3-32. Enhanced Trap for All Netnames and Terminal IDs Running CWDEMACH
Notice that the trap was not taken by Xpediter/CICS. This is because the initial
invocation of the pseudo-conversational transaction XACH does not have a
container named ACHREPCOMMAREA with data for the trap criteria to match.
9. Type 00999 for the employee number and press Enter. Now Xpediter traps the
transaction as shown in Figure 3-34. This is because the second invocation of the
transaction was passed a container named ACHREPCOMMAREA with the characters
“TEST” in positions 26 through 29 (26:4).
Testing an Assembler Program 3-21
10. To confirm that the data in container ACHREPCOMMAREA satisfied your enhanced
trap criteria, transfer to the Browse Container Data screen by typing =2.C.3 in the
COMMAND field and pressing Enter. The current input channel and container
appear as the defaults and TEST is displayed starting in position 26 of the container
data in container ACHREPCOMMAREA as shown in Figure 3-35. This data is
displayed in this sample in HEX ON mode to show both character and hex data. If
you want to display another container’s data, you can simply enter the new
container name in the CONTAINER field and press Enter. To view a container on
another channel, you must also enter the new channel name.
Figure 3-35. Confirm that Container Data Satisfied Enhanced Trap Criteria
11. End your debugging session by typing XPND on a blank CICS screen and pressing
Enter.
Defining Labels
In this example, we want to execute the program until WRKHOUR is initialized. This
enables you to see how this field was set to $$$. The GO UNTIL command is used to
execute the program until the value of WRKHOUR changes. To use the GO UNTIL
command, you must define a label to identify where the WRKHOUR field is located.
Defining a label allows Xpediter/CICS to halt execution whenever data is moved into the
WRKHOUR area, whether directly or indirectly. WRKHOUR is defined as offset 25A from
register 13.
1. Type XPED 1.9 P=ASSEM and press Enter. The Define User Labels screen (1.9)
appears as shown in Figure 3-36.
2. Type MYLABEL in the USER LABEL field. (You can use any name in this field.)
3. Type R13 in the BASE LABEL field.
4. Type 25A in the + OR - OFFSET field.
5. Type 3 in the LENGTH field.
6. Press Enter to set the label.
A breakpoint must be set in the program to halt execution after the base register (R13 in
this case) is loaded.
7. Enter CWDEMASM in the MODULE field and press PF6 to go to the Source Listing
screen (2.L).
8. Type AFTER +6A in the COMMAND field and press Enter to set a breakpoint at offset
6A.
9. Press Clear to return to CICS and start the test.
10. Type XASM and press Enter. CWDEMASM is a pseudo-conversational program, so
execution stops at the after breakpoint on the first pass through the program as
shown in Figure 3-37.
Testing an Assembler Program 3-23
11. Press PF12 to continue the execution. The Demonstration Transaction screen is
displayed.
12. Type 00001 and press Enter.
The program is intercepted.
13. Type GO UNTIL MYLABEL and press Enter. This command tells Xpediter/CICS to
execute the program until the contents of the area defined by MYLABEL changes. The
display is positioned at an MVC instruction as shown in Figure 3-38.
Notice that this MVC instruction does not directly reference WRKHOUR. WRKHOUR
is part of WORKAREA and the MVC WORKAREA, EMP001 moved the bad data from
EMP001 to this field.
– Transfer to the Memory Display screen, fix the data, and continue the test.
– Use the SKIP command to skip the statement.
– Resume execution at another point.
– Type =X and end the session.
Remember to end your debugging session as described in “Exiting Xpediter/CICS and
Ending a Debugging Session” on page 2-5.
4-1
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, described on page 4-13, still allows you to use the product,
although you do not have as rich a set of commands as PSEUDOSOURCE allows. Because
you do not have a source listing available, you are restricted to using offsets and working
with a single assembler instruction. In Line Mode, you will probably require a hard copy
listing of the program to assist in debugging the program or CSECT. You also need to be
able to decipher Assembler instructions by looking at the hexadecimal display of storage
in the 2.2 or 9.2 screens.
To demonstrate sourceless debugging, this chapter discusses the following two major
categories of testing:
The following scenarios are based on the application transaction XASM. This is the
sample payroll transaction shipped with Xpediter/CICS that executes the Assembler
program CWDEMASM. 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 source listing dataset is not defined (or incorrectly defined) to your CICS region.
• 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 CWDEMASM in the MODULE field, then press
Enter to go to the List of CSECTs screen (2.6.1). Overtype CWDEMASM in the LISTING
column with XXDEMASM and press Enter to disable the source listing. Be sure to change
the name back to CWDEMASM 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 shown
in Figure 4-1.
Xpediter/CICS is now turned ON and ready to intercept any abends associated with
your terminal and programs.
2. To turn the TRACE option on, type SET TRACE ON in the COMMAND field and press
Enter.
3. To enable the display of the OFFSET field in Assembler programs, type SET JUST OFF
in the COMMAND field and press Enter.
4. Type PSEUDOSOURCE CWDEMASM in the COMMAND field 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.
5. 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.
6. Press Clear to return to CICS to start your test.
7. On a blank CICS screen, type XASM or your transaction ID and press Enter. This
displays the Demonstration Transaction screen shown in Figure 4-3.
processed with the Assembler Language Processor. In this case, the Source Listing
screen will be displayed as shown in Figure 4-4. You can see that the resulting abend
was an ASRA, a Data Exception that occurred at statement 143 in the pseudo-listing.
You can see that the ASRA occurred on a multiply decimal (MP) instruction.
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. But first, look at the instruction MP X’267’(5,13),X’25A’(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’267’ off register 13. The second operand is 3 bytes in length,
located X’25A’ off register 13.
Modifying Storage
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-5.
Debugging Applications Without Source Code 4-5
Figure 4-5. 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 ADD OFFSET field. To get this information, look
at a paper listing of your assembly or by viewing the pseudo-listing. If you know the
fields you want to see, you don’t need a paper listing.
2. To display the contents of your first multiplier, you must tell Xpediter/CICS where to
look:
– Overtype PGM in the TABLE/AREA field with R13, and
– Type +267 in the HEX OFFSET field.
When you press Enter, the display is positioned at the first data item as shown in
Figure 4-6.
Figure 4-6. Viewing Data Fields on the Memory Display Screen (2.2)
Note that the displayed data area contains valid packed information. Since the five-
byte field contains 000000009C, the value is a packed 9.
3. Display the displacement of the second data item by typing +25A over the current
offset in the HEX OFFSET field. When you press Enter, the screen is positioned at the
second data item as shown in Figure 4-7.
Figure 4-7. Viewing Data Fields on the Memory Display Screen (2.2)
This time, the displayed field contains bad data. The three-byte packed field contains
5B5B5B, otherwise known as $$$. This error caused the ASRA.
4. Position the cursor on the bad data 5B5B5B area.
5. Replace the bad data by typing a valid packed number, such as 00045C, over the
data.
6. Press Enter to update the change. The data will contain a valid packed 45 as shown is
Figure 4-8.
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 last instruction by pressing PF9 or typing GO 1
in the COMMAND field and pressing Enter. This time, the transaction should not
abend.
With valid data, the instruction did not abend with an ASRA. The session pauses at
the next hexadecimal offset, which Xpediter/CICS shows to be a move character
(MVC) instruction as shown in Figure 4-9.
9. To continue the test, press PF12 or type GO in the COMMAND field and press Enter.
The program finishes without further abends, concluding our first exercise in
sourceless debugging (Figure 4-10).
With Xpediter/CICS, you can set breakpoints at any instruction in any program,
regardless of whether you have source code.
1. From a cleared screen, type XPED CWDEMASM or XPED followed by your program
name. Press Enter.
Since you had previously used the PSEUDOSOURCE command in your debugging session,
the Source Listing screen (2.L) (Figure 4-11) is displayed. The program is not running,
but you can still set breakpoints.
2. Position the cursor at the COMMAND field, type BEFORE 0, and press Enter. This
sets a breakpoint at the first instruction of the program. You can also set other
breakpoints from here, but one will be sufficient.
3. Press Clear to return to CICS.
4. Enter XASM or your own transaction ID to execute the test.
As in the last test, Xpediter/CICS displays the Source Listing Screen (2.L) (Figure 4-
12). This time, the program is stopped due to your breakpoint. The first instruction
in this program, at offset 000000, is a store multiple (STM). Your program may begin
with a different command, but it should still be paused at the beginning.
Debugging Applications Without Source Code 4-9
Note: While setting breakpoints by offset is commonly used in Line Mode sourceless
debugging, you could have just as easily scrolled to the instruction in the
pseudo-listing and used a B line command instead.
1. Type GO 10 1 in the COMMAND field and press Enter to execute the next ten
instructions. Since you coded a one second delay, each instruction briefly pauses on
the screen.
As shown in Figure 4-13, the CWDEMASM program finally comes to a stop at line 43
(offset +98) after executing the ten instructions.
4-10 Xpediter/CICS Assembler User Guide
Figure 4-13. Line 43 (Offset +98) on the Source Listing Screen (2.L)
1. To view what has been traced, press PF17, or enter =2.4 in the COMMAND field and
press Enter. If multiple facilities have been traced, the Program Trace Directory screen
appears. Select your terminal on that screen.
Since a pseudo-listing appears like a real source listing, the lines executed are
displayed on the Program Trace screen (2.4) (Figure 4-14). With the pseudo-listing
lines shown, you can see exactly what was executed. You can scroll through the
Program Trace screen (2.4).
2. Press PF6, or type =2.L in the COMMAND field and press Enter, to return to the
Source Listing screen (2.L).
Debugging Applications Without Source Code 4-11
1. Type GOTO +92, or another offset, in the COMMAND field to change your execution
pointer. Press Enter.
As shown in Figure 4-16, the program branched to the new location. If you were to
begin single-step execution with the GO command, that instruction would execute.
Note: Since you have a pseudo-listing, you could have alternately typed GOTO 42
(goto line 42).
Modifying Registers
Sometimes in testing, you need a different value or address in a register to achieve the
desired results. Xpediter/CICS gives you this capability.
1. Type SET FOOT REGS in the Command Line and press Enter.
This will turn on the Register Footing. The registers you see on your screen are
dynamic; as your program manipulates them, you can see them change. You also
have the option of changing them yourself.
2. To change the value of register 0, overtype the current value with 001C0000.
3. To change R5 and R14 to high-values and low-values, overtype the contents of the
registers with FFFFFFFF and 00000000 respectively. Press Enter.
The resulting screen (Figure 4-18) shows the changed values in registers R0, R5, and
R14.
Figure 4-18. Modifying Registers on the Source Listing Screen (2.L0 with Foot Regs.
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-19.
Xpediter/CICS is now turned ON and ready to intercept any abends associated with
your terminal and programs.
2. To turn the TRACE option on, type SET TRACE ON in the COMMAND field and press
Enter.
4-14 Xpediter/CICS Assembler User Guide
3. To continue with this section, you must first disable any Xpediter/CICS source listing
for CWDEMASM. Type =2.6.1 in the COMMAND field and CWDEMASM in the
MODULE field, then press Enter to go to the List of CSECTS screen (2.6.1). Overtype
CWDEMASM in the LISTING column with XXDEMASM and press Enter to disable
the source listing. Be sure to change the name back to CWDEMASM when you have
completed the procedures in this chapter, or simply end your Xpediter session.
4. Press Clear to return to CICS to start your test.
5. On a blank CICS screen, type XASM or your transaction ID and press Enter. This
displays the Demonstration Transaction screen shown in Figure 4-20.
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. You will see later that these registers can also be modified.
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
Debugging Applications Without Source Code 4-15
Modifying Storage
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-22.
Figure 4-22. 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 ADD OFFSET field. To get this information, look
at a paper listing of your assembly. If you know the fields you want to see, you don’t
need a paper listing.
2. To display the contents of your first multiplier, you must tell Xpediter/CICS where to
look:
– Overtype PGM in the TABLE/AREA field with R13, and
– Type +267 in the HEX OFFSET field.
When you press Enter, the display is positioned at the first data item as shown in
Figure 4-23.
4-16 Xpediter/CICS Assembler User Guide
Figure 4-23. Viewing Data Fields on the Memory Display Screen (2.2)
Note that the displayed data area contains valid packed information. Since the five-
byte field contains 000000009C, the value is a packed 9.
3. Display the displacement of the second data item by typing +25A over the current
offset in the HEX OFFSET field. When you press Enter, the screen is positioned at the
second data item as shown in Figure 4-24.
Figure 4-24. Viewing Data Fields on the Memory Display Screen (2.2)
This time, the displayed field contains bad data. The three-byte packed field contains
5B5B5B, otherwise known as $$$. This error caused the ASRA.
4. Position the cursor on the bad data 5B5B5B area.
5. Replace the bad data by typing a valid packed number, such as 00045C, over the
data.
Debugging Applications Without Source Code 4-17
6. Press Enter to update the change. The data will contain a valid packed 45 as shown is
Figure 4-25.
Now that you have corrected the data causing the error, you can continue with the
test.
7. Press PF6, or type =2.20 and press Enter, to return to the Assembler Break/Abend
screen (2.20).
8. To continue your test, re-execute the last instruction by pressing PF9 or typing GO 1
in the COMMAND field and pressing Enter. This time, the transaction should not
abend.
With valid data, the instruction did not abend with an ASRA. The session pauses at
the next hexadecimal offset, which Xpediter/CICS shows to be a move character
(MVC) instruction as shown in Figure 4-26.
9. To continue the test, press PF12 or type GO in the COMMAND field and press Enter.
The program finishes without further abends, concluding our first exercise in
sourceless debugging (Figure 4-27).
4-18 Xpediter/CICS Assembler User Guide
With Xpediter/CICS, you can set breakpoints at any instruction in any program,
regardless of whether you have source code.
1. From a cleared screen, type XPED CWDEMASM or XPED followed by your program
name. Press Enter.
Since there is no source to display, Xpediter/CICS displays the Memory Display
screen (2.2) (Figure 4-28), which shows your program in hexadecimal format. The
program is not running, but you can still set breakpoints.
2. Position the cursor at the COMMAND field, type BEFORE +0, and press Enter. This
sets a breakpoint at the first instruction of the program. You can also set other
breakpoints from here, but one will be sufficient.
3. Press Clear to return to CICS.
Debugging Applications Without Source Code 4-19
1. Type GO 10 1 in the COMMAND field and press Enter to execute the next ten
instructions. Since you coded a one second delay, each instruction briefly pauses on
the screen.
As shown in Figure 4-30, the CWDEMASM program finally comes to a stop at offset
+98 after executing the ten instructions.
1. To view what has been traced, press PF17, or enter =2.4 in the COMMAND field and
press Enter. If multiple facilities have been traced, the Program Trace Directory screen
appears. Select your terminal on that screen.
Since source is not available, the task, program, and offsets are displayed on the
Program Trace screen (2.4) (Figure 4-31). With the offsets shown, you can see exactly
what was executed. You can scroll through the Program Trace screen (2.4).
2. Press PF6, or type =2.20 in the COMMAND field and press Enter, to return to the
Assembler Break/Abend screen (2.20).
1. Type GOTO +92, or another offset, in the COMMAND field to change your execution
pointer. Press Enter.
As shown in Figure 4-33, the program branched to the new location. If you were to
begin single-step execution with the GO command, that instruction would execute.
Modifying Registers
Sometimes in testing, you need a different value or address in a register to achieve the
desired results. Xpediter/CICS gives you this capability. The registers you see on your
screen are dynamic; as your program manipulates them, you can see them change. You
also have the option of changing them yourself.
1. To change the value of register 0, overtype the current value with 001C0000.
2. To change R5 and R14 to high-values and low-values, overtype the contents of the
registers with FFFFFFFF and 00000000 respectively. Press Enter.
The resulting screen (Figure 4-35) shows the changed values in registers R0, R5, and
R14. Xpediter/CICS placed the original register value above the changed register. This
4-22 Xpediter/CICS Assembler User Guide
is displayed so you will know what it was, should you need to change it back to its
former value or address.
This concludes sourceless debugging. Remember, aside from a lack of source displayed on
the screen, it is the same as any other testing and debugging session in Xpediter/CICS.
Chapter 5.
Analyzing Program Execution Chap 5
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.
This screen shows the statements that were set to be analyzed, as well as the statistics
concerning the execution. The STATEMENTS TO BE ANALYZED field is set to 12,
indicating that there are 12 labels with executable statements in the program in this
example. The ANALYZED STATEMENTS NOT EXEC field is set to 12 because the program
has not been executed yet. All other values are set to 0 for the same reason. Notice that
the COUNT field for each statement is set to 0.
Figure 5-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 12 statements were set for analysis. Of these, 8 were executed
and 4 were not. The 8 paragraphs were executed a total of 8 times (TOTAL ANALYZED
COUNT), with each executing 1 time (HIGHEST COUNT). If program logic contained
a loop, the HIGHEST COUNT would be more than 1 and the HIGHEST COUNT STMT
would identify the statement number where the loop occurred. In this example,
there is no loop, so instead the HIGHEST COUNT STMT shows the first occurrence of
the statements with a COUNT of 1. LABEL shows the name of the paragraph that
contains that statement.
3. Type L 450 in the COMMAND field to locate statement 450 (the first occurrence of
the statements with a COUNT of 1) and press Enter to see where the most frequently
executed statement is located (Figure 5-4).
Figure 5-4. Browsing Source Code on the Source Listing Screen (2.L)
You can use the FIND COUNT command to browse through the source listing and
examine the COUNT associated with each statement. 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 Xpediter’s 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 deleting the old COUNT command and entering a new
COUNT command. It can be turned OFF by entering the DELETE COUNT command.
You can also use the COUNT command to check the overall efficiency of your program.
Use the COUNT ALL 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.
Note: The C, COBOL, and PL/I sample programs include a loop that leads to a storage
violation. Refer to the chapter entitled Analyzing Program Execution in the C User’s
Guide, the COBOL User’s Guide, or the PL/I User’s Guide.
Chapter 6.
Monitoring Tasks Started from Remote Terminals Chap 6
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.
6-2 Xpediter/CICS Assembler 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 XASM in the TRAN field.
6. Type an asterisk (*) in the PROGRAM field and press Enter to specify that all
programs involved in transaction XASM are monitored.
In Figure 6-2, for example, three traps have been set:
– For any transaction entered from terminal A011.
– For XASM 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 XASM. 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 WRKHOUR, type 00040, and press Enter.
6. Type =1.6 in the COMMAND field and press Enter. The Trap Summary screen (1.6)
(Figure 6-4 on page 6-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 6-5), and control is returned to the user terminal (Figure 6-6).
6-4 Xpediter/CICS Assembler User Guide
Figure 6-5. Resuming a Remote Task on the Source Listing Screen (2.L)
The List Abends screen (1.3) (Figure 6-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 6-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 6-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.
6-6 Xpediter/CICS Assembler 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 6-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 6-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 6-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.
6-8 Xpediter/CICS Assembler User Guide
7-1
Chapter 7.
Providing Storage Protection Chap 7
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.
Note: Although the examples use the XCB2 COBOL demonstration transaction, the
same techniques are used to monitor storage violations in an Assembler
environment.
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 7-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 7-2.
7-2 Xpediter/CICS Assembler 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 7-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 8.
Interfacing with Abend-AID for CICS Chap 8
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 an
Assembler 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 8-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 8-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 8-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 8-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-
AID’s masking facilities to filter the reports that are displayed.
8-4 Xpediter/CICS Assembler User Guide
The Diagnostic Summary gives detailed diagnostics about the trapped abend. The
paragraph at the top of the screen identifies the abend code (AEIMASRA), program
name (CWDEMASM), abending transaction (XASM), terminal, and user ID.
Additional paragraphs provide a detailed analysis of the abend.
Abend-AID for CICS -------- Diagnostic Summary -------- Row 000001 of 000065
COMMAND ===> SCROLL ===> PAGE
MSDSD0539I Dump 13 (ACMEC123) successfully selected
An AEIM abend occurred in program CWDEMASM. The abending transaction was
XASM running at terminal 0638 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 :
Char 00002
Zone FFFFF
Entry=0000013(ACMEC123) Code=AEIM CF450QCV AssistMenu=PF24 More...
3. Press PF8 to scroll through the report. A report example is shown in Figure 8-6.
Abend-AID for CICS -------- Diagnostic Summary -------- Row 000038 of 000065
COMMAND ===> SCROLL ===> PAGE
Next Sequential Instruction
The program was compiled on 23JUL2003 and is 0005AC bytes long. It is part
of load module CWDEMASM which was loaded from SALESUP.ACMEC123.LOAD. It was
link edited on 23JUL2003 . The load module is 0010E0 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 Command
The last call or 'EXEC CICS' command was issued from program CWDEMASM at
displacement 00000220.
Program Link Summary
Called Called ------- Status ------- Calling Calling Return
Entry=0000013(ACMEC123) Code=AEIM CF450QCV AssistMenu=PF24 More...
The Abend-AID for CICS report contains additional information that can be directly
accessed by entering the section’s 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 8-7.
Interfacing with Abend-AID for CICS 8-5
Abend-AID for CICS -------- Diagnostic Summary -------- Row 000038 of 000065
COMMAND ===> SCROLL ===> PAGE
Next Sequential Instruction
The program was compiled on 23JUL2003 and is 0005AC bytes long. It is part
of load module C +---------- Row 00001 of 00020 -----------+ .LOAD. It was
link edited on 2 | 1 or DIAG - Diagnostic Summary | ng. The program
AMODE is ANY. Th | 2 or NSI - Diagnostic Summary |
| 3 or REGS - Registers |
| 4 or TRACE - CICS Trace |
| 5 or ENQ - Enqueues Held |
The execution ke | 6 or EIB - User EIB |
| 7 or PROG - Program Information Menu |
| 8 or PLIST - Program Link Summary |
Last Call or EXE | 9 or PSTOR - Program Link Summary |
| 10 or LINK - Program Link Summary |
The last call or | 11 or EXTER - Program Link Summary | CWDEMASM at
displacement 000 | Tab to the number or command Enter to |
| process it. |
| CF450QCV End=PF03 More... |
Program Link Sum +-----------------------------------------+
Called Called ------- Status ------- Calling Calling Return
Entry=0000013(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 8-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.
8-6 Xpediter/CICS Assembler User Guide
Abend-AID for CICS --- Abend-AID for CICS Directory --- Row 000001 of 000005
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
******* ******** ****** **** ********* ***** ******** ****** **** *******
0000013 ACMEC123 AEIM XASM 19AUG2003 12:21 CWDEMASM 000222 0 COMPLET
0000012 ACMEC123 AEIM XPLI 19AUG2003 11:55 CWDEMPL1 00098A 0 COMPLET
0000011 ACMEC123 AEIM XCB2 19AUG2003 11:23 CWDEMCB2 0014F2 0 COMPLET
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
8-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 8-11 on page 8-7
will be displayed.
Interfacing with Abend-AID for CICS 8-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 8-12.
6. To see another diagnostic message, type ASRAAICA in the ABEND CODE field.
7. Press Enter. The Abend-AID for CICS Diagnostic Information screen appears as shown
in Figure 8-13, with the explanation of an ASRAAICA abend.
Figure 8-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...
9-1
Chapter 9.
Using Automatic Trap Activation Chap 9
This chapter demonstrates Xpediter’s Automatic Trap Activation (ATA) feature. ATA traps
terminal-related transaction abends—but not breakpoints—without 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 Activation—but not
for regular Xpediter/CICS use—you 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 XASM and press Enter. The Demonstration Transaction
screen shown in Figure 9-1 will be displayed.
3. To cause an ASRA abend, type 00001 and press Enter. The Automatic Trap Activation
screen (Figure 9-2 on page 9-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.
9-2 Xpediter/CICS Assembler User Guide
4. Press Enter. The Source Listing screen (2.L) will be displayed with the source of
program CWDEMASM 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.
10-1
Chapter 10.
Setting Up a Profile Chap 10
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.
10-2 Xpediter/CICS Assembler 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 10-4). On this
screen you can modify settings for PF1 through PF12.
Setting Up a Profile 10-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 10-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 Xpediter’s 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 10-5
Figure 10-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 10-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 10-9).
10-6 Xpediter/CICS Assembler 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.
11-1
Chapter 11.
Accessing DL/1 Databases Chap 11
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.
11-2 Xpediter/CICS Assembler 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 11-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 11-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
11-4 Xpediter/CICS Assembler 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 11-6).
Figure 11-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 11-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 11-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 11-11).
Accessing DL/1 Databases 11-7
Chapter 12.
Using Xpediter/CICS with DB2 Chap 12
Xpediter/CICS provides support for IBM’s 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 12-1).
2. Type 0 and press Enter to display the DB2 Setup screen (5.5.0) (Figure 12-2).
12-2 Xpediter/CICS Assembler 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 can’t 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 12-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
12-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 12-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 12-5
Figure 12-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 12-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
12-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 12-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 12-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 12-11).
12-8 Xpediter/CICS Assembler User Guide
This is the same screen that was discussed in “Editing a Row” on page 12-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 12-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 12-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 12-9
Editing a Column
The DB2 Edit Composite Column screen (5.5.6) (Figure 12-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 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.
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
12-10 Xpediter/CICS Assembler User Guide
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 12-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 12-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 12-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 12-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 12-18 is an example of help after
DB2 returned a 100 SQLCODE.
Using Xpediter/CICS with DB2 12-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.
12-14 Xpediter/CICS Assembler User Guide
13-1
Chapter 13.
Using Xpediter/CICS with MQ Chap 13
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 13-2.
13-2 Xpediter/CICS Assembler 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
screen (5.6.1). The DYNAMIC QUEUE PREFIX can also be entered for your session if you
need to override your site’s prefix, which is found in the Xpediter global table. Note that
the DYNAMIC QUEUE PREFIX field is case-sensitive. 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 13-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 13-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).
13-4 Xpediter/CICS Assembler User Guide
Debugging MQ Programs
This section discusses the special facilities available to WebSphere MQ programmers,
including setting breakpoints and keeps and interpreting MQ completion and reason
codes.
The traps may be defined using Xpediter’s 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 14.
Accessing CICS Storage Chap 14
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 14-2).
14-2 Xpediter/CICS Assembler User Guide
Figure 14-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 14-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 14-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.
14-4 Xpediter/CICS Assembler 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 14-3 and “Method 2”.
Method 5
Since CICS control block changes have made it increasingly difficult to chain through a
task’s storage areas, Xpediter/CICS has provided a Task Storage screen (2.S) shown in
Figure 14-5 on page 14-5 that allows you to easily display the areas on a task’s 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 14-5 on page 14-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
available—not 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 14-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 14-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 14-7 on page 14-6.
14-6 Xpediter/CICS Assembler User Guide
Figure 14-6. Displaying the FCT on the Memory Display Screen (2.2)
If you do request a PCT entry for XASM, control automatically passes to the CICS
Resources screen (2.R) shown in Figure 14-8. From the CICS Resources screen (2.R), you
may view the formatted resource information for your program or transaction.
Accessing CICS Storage 14-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 14-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 14-10).
14-8 Xpediter/CICS Assembler User Guide
Figure 14-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.
15-1
Chapter 15.
Using Global Storage Protection Chap 15
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 15-1).
Figure 15-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 15-2 for more information.
3. Type an asterisk (*) in the TERM field to specify all terminals.
15-2 Xpediter/CICS Assembler User Guide
4. Type XA** in the TRAN field to specify any transaction that begins with the letters
XA.
5. Type CWDEMASM 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 CWDEMASM is prevented from attempting
to cause storage violations whenever it is invoked from any terminal with a
transaction that starts with the letters XA.
The settings shown in Figure 15-3 turn off monitoring without destroying the
current table entries. These settings must appear first in the table.
Figure 15-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. Xpediter’s 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 15-4).
15-4 Xpediter/CICS Assembler User Guide
In this example, assume that program CWDEMASM 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 CWDEMASM 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 15-5. All addresses and lengths are resolved at the time they are
used.
Using Global Storage Protection 15-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 15-6.
These entries specify that whenever CWDEMASM 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 CWDEMASM for
storage violations but allows updates to the TRAN ID field.
15-6 Xpediter/CICS Assembler 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.
Note: Although the examples use the XCB2 COBOL demonstration transaction, the
same techniques are used to monitor storage violations in an Assembler
environment.
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 15-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 Xpediter’s 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 15-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 15-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 15-8.
Using Global Storage Protection 15-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 15-10.
15-8 Xpediter/CICS Assembler 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 15-11.
The ACTIVE ABEND TRAPS and WAITING TASKS fields show the number of remote
traps.
Figure 15-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 15-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 15-9
Chapter 16.
Editing CICS Tables and Control Blocks Chap 16
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 16-1).
16-2 Xpediter/CICS Assembler User Guide
Figure 16-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 16-2).
Editing CICS Tables and Control Blocks 16-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.
16-4 Xpediter/CICS Assembler User Guide
17-1
Chapter 17.
Using 3270 Web Bridge Support Chap 17
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 17-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 17-2.
Using 3270 Web Bridge Support 17-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 17-3).
17-4 Xpediter/CICS Assembler 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 17-4.
Using 3270 Web Bridge Support 17-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 17-5.
17-6 Xpediter/CICS Assembler 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 IBM’s “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 Xpediter’s 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 Assembler 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 record’s 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 transaction’s
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 Assembler User Guide
B
A
breakpoints, 2-1
overview, 2-1
Abend-AID for CICS interface, 8-1 setting, 2-1
accessing Abend-AID for CICS through Xpedit- testing without breakpoints
er/CICS, 8-1 sourceless debugging, 4-2, 4-13
issuing an Abend-AID for CICS snap dump, 8-3 browsing messages on an MQ queue, 13-3
turning on Abend-AID for CICS, 8-1
viewing Abend-AID for CICS diagnostics, 8-6
viewing the Abend-AID for CICS report directory,
8-5
C
accessed storage areas, reviewing on Select Address
screen, 14-7 chaining through CICS storage areas, 14-3
accessing Abend-AID for CICS through Xpedit- changing PF key settings, 10-2
er/CICS, 8-1 changing profile defaults, 10-1
accessing CICS storage, 14-1 CICS region storage protection, setting, 15-1
accessing storage areas, 14-1 CICS storage access
chaining through storage areas, 14-3 See accessing CICS storage
displaying CICS DSECTs, 14-2 CICS table editing
displaying CICS table entries, 14-5 See editing CICS tables and control blocks
reviewing accessed areas, Select Address screen, CICS table entries, displaying, 14-5
14-7 commands, 1-9
accessing CICS storage areas, 14-1 line commands, 1-11
accessing DL/1 databases, 11-1 primary commands, 1-9
list PCB, 11-2 Compuware Go customer support website, xiii
retrieving a segment, 11-4 Compuware language processor, 2-1
selecting PSBs and PCBs, 11-1 compile recommendations, 2-1
selecting segments from the PCB, 11-2 JCL, 2-2
accessing list of MQ queues, 13-1 overview, 2-1
accessing Xpediter/CICS, 2-3 postprocessor, 2-1
basic access from CICS, 2-3 preprocessor, 2-1
direct access by screen ID, 2-4 control block editing
ending a session, 2-5 See editing CICS tables and control blocks
fast-path access to Source Listing screen (2.L), 2-4 COUNT command for execution analysis, 5-1
Acrobat PDF online documentation, xii
adding messages on an MQ queue, 13-3
allowing storage violations, 7-2
alternate PF key settings, 10-3
D
alternate profile loading, 10-5
analyzing program data, 5-2 DB2 database support
analyzing program execution, 5-1 See using Xpediter/CICS with DB2
analyzing the data, 5-2 DDIO file
executing the program, 5-2 See Compuware language processor
setting up the analysis, 5-1 debugging an Assembler program
architecture of Xpediter/CICS, 1-2 creating a special profile for debugging, 3-6
Assembler program testing defining labels, 3-22
creating a special profile for debugging, 3-6 executing the program, 3-9
defining labels, 3-22 resuming program execution, 3-10
executing the program, 3-9 setting breakpoints, 3-8
resuming program execution, 3-10 See breakpoints
setting breakpoints, 3-8 Assembler programs, 3-8
See breakpoints sourceless debugging, 4-7, 4-18
Assembler programs, 3-8 viewing source, 3-8
sourceless debugging, 4-7, 4-18 debugging applications without source code, 4-1
viewing source, 3-8 debugging with breakpoints, 4-7, 4-18
asynchronous transactions, trapping modifying registers, 4-12, 4-21
See monitoring tasks started from remote terminals modifying the logic path, 4-11, 4-20
ATA, 9-1 single-stepping through code, 4-12, 4-21
ATASCREEN, 9-1 slow-motion execution through code, 4-9, 4-19
I-2 Xpediter/CICS Assembler User Guide
reviewing accessed storage, Select Address screen, 14-7 using for test regions, 15-3
storage violations, allowing, 15-3
System Facilities Menu (9), 1-5
S system labels, defining for storage protection, 15-3
V
viewing the Abend-AID for CICS diagnostics, 8-6
viewing the Abend-AID for CICS report directory, 8-5
W
Web Bridge support, 17-1
WebSphere MQ, 3-21, 13-1
X
XPED transaction, 1-3
XPED transaction users, xii
Xpediter Primary Menu (XPED/XPRT), 1-4, 4-2, 4-13,
8-2
Xpediter Primary Menu (XPED/XPRT) using 3270 Web
Bridge, 17-2
Xpediter Primary Menu (XPSP), 1-4
XPRT transaction, 1-3
XPRT transaction users, xii
XPSP transaction overview, 1-4
XPSP transaction users, xii
I-6 Xpediter/CICS Assembler User Guide