User Guide (1)
User Guide (1)
User Guide
r8.5
Second Edition
This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to
as the “Documentation”) is for your informational purposes only and is subject to change or withdrawal by CA at any time. This
Documentation is proprietary information of CA and may not be copied, transferred, reproduced, disclosed, modified or
duplicated, in whole or in part, without the prior written consent of CA.
If you are a licensed user of the software product(s) addressed in the Documentation, you may print or otherwise make
available a reasonable number of copies of the Documentation for internal use by you and your employees in connection with
that software, provided that all CA copyright notices and legends are affixed to each reproduced copy.
The right to print or otherwise make available copies of the Documentation is limited to the period during which the applicable
license for such software remains in full force and effect. Should the license terminate for any reason, it is your responsibility to
certify in writing to CA that all copies and partial copies of the Documentation have been returned to CA or destroyed.
TO THE EXTENT PERMITTED BY APPLICABLE LAW, CA PROVIDES THIS DOCUMENTATION “AS IS” WITHOUT WARRANTY OF ANY
KIND, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NONINFRINGEMENT. IN NO EVENT WILL CA BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY LOSS OR DAMAGE,
DIRECT OR INDIRECT, FROM THE USE OF THIS DOCUMENTATION, INCLUDING WITHOUT LIMITATION, LOST PROFITS, LOST
INVESTMENT, BUSINESS INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF CA IS EXPRESSLY ADVISED IN ADVANCE OF THE
POSSIBILITY OF SUCH LOSS OR DAMAGE.
The use of any software product referenced in the Documentation is governed by the applicable license agreement and such
license agreement is not modified in any way by the terms of this notice.
The manufacturer of this Documentation is CA.
Provided with “Restricted Rights.” Use, duplication or disclosure by the United States Government is subject to the restrictions
set forth in FAR Sections 12.212, 52.227-14, and 52.227-19(c)(1) - (2) and DFARS Section 252.227-7014(b)(3), as applicable, or
their successors.
Copyright © 2012 CA. All rights reserved. All trademarks, trade names, service marks, and logos referenced herein belong to
their respective companies.
CA Technologies Product References
This document references the following CA products:
■ CA InterTest™ for CICS
■ CA Optimizer®
■ CA Optimizer®/II
■ CA SymDump® for CICS
Documentation Changes
The following documentation updates have been made since the last release of this
documentation:
■ File Functions for VSAM Records (see page 469)—Updated the information in this
section to include XRBA.
■ Removed the topic STR: Save the CICS Trace Table.
■ Removed all references to FCT and FILE commands.
■ Display Storage Related to a Task at Breakpoint (see page 420)—Modified the
description for CORE=BLLnn in the topic, and added new entries, CORE=BLXnn and
CORE=BLXS to the table.
■ The Detailed Breakpoint Screen (see page 178)—Added two subtopics in this
section.
■ Indirect Commands (see page 187)—Added information related to the Indirect
Command RUN to the following topics: How Can You Use Indirect Commands (see
page 187), Indirect Command Examples (see page 193), and Indirect Command
Syntax (see page 199).
■ Accessing Main Storage: CORE (see page 375)—Added a new topic, Display Storage
for an Inactive COBOL Program at Breakpoint under Breakpoint Commands.
■ Special Circumstances (see page 574)— Updated the information in this section.
Contact CA Technologies
Contact CA Support
For your convenience, CA Technologies provides one site where you can access the
information that you need for your Home Office, Small Business, and Enterprise CA
Technologies products. At http://ca.com/support, you can access the following
resources:
■ Online and telephone contact information for technical assistance and customer
services
■ Information about user communities and forums
■ Product and documentation downloads
■ CA Support policies and guidelines
■ Other helpful resources appropriate for your product
Contents 7
Remove Monitoring, Breakpoints, or Other Options .......................................................................................... 45
Refresh the Display ............................................................................................................................................. 46
Exit the Status Display ......................................................................................................................................... 46
8 User Guide
Set the Keep Window to Display Variables in Current Statement ...................................................................... 87
Set Code Coverage .............................................................................................................................................. 88
Set Structure Display Form ................................................................................................................................. 89
Testing Activities ........................................................................................................................................................ 89
Set Monitoring .................................................................................................................................................... 89
Monitoring Multiple Programs ........................................................................................................................... 90
Display and Search Through Nested Programs ................................................................................................... 91
Maintain Synchronized Processing............................................................................................................................. 92
COBOL and PL/I Symbolic Version Processing ..................................................................................................... 93
Assembler Symbolic Version Processing ............................................................................................................. 94
The Symbolic Version List .................................................................................................................................... 94
Composite Support for Duplicate Subprograms ........................................................................................................ 98
Set Breakpoints .......................................................................................................................................................... 99
Remove Breakpoints .................................................................................................................................................. 99
Statement Tracing .................................................................................................................................................... 100
Data Monitoring ....................................................................................................................................................... 100
Run Your Program .................................................................................................................................................... 101
Breakpoint Activities ................................................................................................................................................ 101
Exit the Source Listing Facility .................................................................................................................................. 101
Contents 9
Chapter 5: Breakpoint Activities 135
Examine the Source Listing Breakpoint Screen ........................................................................................................ 136
Source Listing Breakpoint Commands .............................................................................................................. 137
Source Listing Breakpoint PF Keys .................................................................................................................... 142
Respond to Automatic Breakpoints ......................................................................................................................... 143
Example ............................................................................................................................................................. 144
Bypass the Monitoring of a Statement that Triggered an Automatic Breakpoint ............................................ 144
Temporary Override .......................................................................................................................................... 145
Permanent Bypass............................................................................................................................................. 145
Work with Data at a Breakpoint ............................................................................................................................... 146
Search for Data.................................................................................................................................................. 147
Find a Definition or Search Using the Search = Field ........................................................................................ 147
The Online Listing .............................................................................................................................................. 148
Position Listing to a Hex-Offset ......................................................................................................................... 148
Position Listing to Current Breakpoint Processing ............................................................................................ 148
The Keep Window ............................................................................................................................................. 148
Add a Storage Item............................................................................................................................................ 149
Using AUTOKEEP ............................................................................................................................................... 150
Change an AutoKeep Item into a Permanent Keep Item .................................................................................. 150
Scroll Forward and Backward ............................................................................................................................ 150
Scroll Left and Right .......................................................................................................................................... 150
Remove Items ................................................................................................................................................... 151
View and Change Main Storage Display from the Keep Window ..................................................................... 151
Display or Modify Main Storage (CORE) ........................................................................................................... 152
Display the Value of a Data Item ....................................................................................................................... 152
Use the Cursor................................................................................................................................................... 153
Example ............................................................................................................................................................. 154
Modify a Data Item by Overtyping the Main Storage Display........................................................................... 154
Example ............................................................................................................................................................. 156
Modify the Value of a Data Item with a MOVE Command ............................................................................... 156
Example ............................................................................................................................................................. 157
The Statement Trace Facility .................................................................................................................................... 158
Enable Statement Tracing and Data Monitoring ............................................................................................... 158
Navigate the Statement Trace Table ................................................................................................................. 158
View Past Data Values ....................................................................................................................................... 160
Usage Notes ...................................................................................................................................................... 160
Display or Modify Auxiliary Storage (FILE) ............................................................................................................... 161
FILE at a Breakpoint .......................................................................................................................................... 162
FILE Changes Do Not Affect Main Storage at a Breakpoint ............................................................................... 162
The Breakpoint Primary Option Menu ..................................................................................................................... 163
Access ................................................................................................................................................................ 163
10 User Guide
PF1 Help ............................................................................................................................................................ 163
The CALLTRACE Facility ............................................................................................................................................ 164
The CHANNEL Command.......................................................................................................................................... 165
The Storage Facility .................................................................................................................................................. 166
The Backtrace Facility ............................................................................................................................................... 167
Access the Backtrace Facility............................................................................................................................. 167
The Backtrace Summary ................................................................................................................................... 170
Example ............................................................................................................................................................. 170
Backtrace Summary Screen PF Key Assignments .............................................................................................. 171
The Source Listing Backtrace............................................................................................................................. 171
Read the Source Listing Backtrace .................................................................................................................... 172
Source Listing Backtrace PF Keys ...................................................................................................................... 173
Navigate Through Program Execution .............................................................................................................. 174
Example ............................................................................................................................................................. 175
Example ............................................................................................................................................................. 176
Ending a Source Listing Backtrace Session ........................................................................................................ 176
Additional Breakpoint Displays ................................................................................................................................ 176
The Detailed Breakpoint Screen ............................................................................................................................... 178
Read the Backtrace on the Detailed Breakpoint Screen ................................................................................... 181
Continue Execution ........................................................................................................................................... 182
Single-Stepping ................................................................................................................................................. 182
Resume Execution ............................................................................................................................................. 183
CNTL Commands ............................................................................................................................................... 183
Continue Processing During Breakpoint Processing ......................................................................................... 184
Continue Processing During Breakpoint Processing Until Specified Verbs Are Executed ................................. 184
INTC--Continue Processing Until a COBOL PERFORM Has Been Completed Avoiding Breakpoints ................. 185
INTC--Continue Processing After a COBOL Program Breakpoint Until the Next Call Or PERFORM
Statement.......................................................................................................................................................... 185
Continue Processing During Breakpoint Processing Ignoring Preset Breakpoints ............................................ 185
Continue Processing During Breakpoint One Verb at-a-Time ........................................................................... 185
See More Code on the Detailed Breakpoint Display ......................................................................................... 186
Restore the Detailed Breakpoint Display .......................................................................................................... 186
Switch Between Breakpoint Screens................................................................................................................. 186
Indirect Commands .................................................................................................................................................. 187
How Can You Use Indirect Commands? ............................................................................................................ 187
Overview of Steps ............................................................................................................................................. 188
Set a Breakpoint to Execute an Indirect Command .......................................................................................... 189
Code Indirect Commands .................................................................................................................................. 192
From Source Listing ........................................................................................................................................... 192
Indirect Command Examples ............................................................................................................................ 193
View Indirect Commands on the Status Report ................................................................................................ 196
Access ................................................................................................................................................................ 196
Contents 11
Edit Indirect Command Definitions .......................................................................................................................... 197
ITST Access to Indirect Commands ................................................................................................................... 197
Indirect Command Syntax ........................................................................................................................................ 199
Execution Flow Control ..................................................................................................................................... 199
Command Syntax .............................................................................................................................................. 200
Equate Command .............................................................................................................................................. 200
Exit Command ................................................................................................................................................... 200
Goto Command ................................................................................................................................................. 201
IF, THEN Statement ........................................................................................................................................... 201
Break and Pause Commands ............................................................................................................................. 202
Move Command ................................................................................................................................................ 202
Perform Command ............................................................................................................................................ 203
Format Indirect Commands .............................................................................................................................. 204
Data Names and Variables ................................................................................................................................ 205
For COBOL (prior to COBOL II Release 1.3) ....................................................................................................... 205
For COBOL II (Releases 1.3 and higher) and COBOL/370 .................................................................................. 205
For PL/I Programs .............................................................................................................................................. 206
Literals in Indirect Commands .......................................................................................................................... 207
Figurative Constants in Indirect Commands ..................................................................................................... 207
Conditional Expressions in Indirect Commands ................................................................................................ 208
COBOL Variable Syntax ..................................................................................................................................... 209
PL/I Variable Syntax .......................................................................................................................................... 210
Examples ........................................................................................................................................................... 210
12 User Guide
Resume Task for nnn Machine Instructions ...................................................................................................... 222
Abend the Task ......................................................................................................................................................... 222
Review Program Status After Execution .................................................................................................................. 223
Your Program Source Code ...................................................................................................................................... 223
CA InterTest for CICS Monitoring and Monitoring Options .............................................................................. 224
Files and Databases ........................................................................................................................................... 224
Continue to Test ....................................................................................................................................................... 225
Correct Your Source Code ................................................................................................................................. 225
Reset Breakpoints after Recompiling or Re-Assembling ................................................................................... 226
Contents 13
Special Options ......................................................................................................................................................... 252
Set Special Options............................................................................................................................................ 252
Remove Special Options.................................................................................................................................... 254
Composite Support .................................................................................................................................................. 255
Set Composite Support Using the Batch Method ............................................................................................. 256
Change the Composite Support Screen ............................................................................................................ 259
Set Composite Support Using the Online Method ............................................................................................ 260
Set Monitoring for a Program with Subprograms ............................................................................................. 261
Assembler Programs with Multiple CSECTs ...................................................................................................... 262
Remove Composite Support ............................................................................................................................. 262
Disconnect, Reconnect, and Purge Active Tasks ...................................................................................................... 263
Disconnect a Task .............................................................................................................................................. 263
View and Set System-Wide Options ......................................................................................................................... 264
14 User Guide
Set System-Wide Options ................................................................................................................................. 309
Execute a Module of CNTL Commands ............................................................................................................. 311
CNTL Monitoring Options ......................................................................................................................................... 311
CNTL Monitoring Option Syntax........................................................................................................................ 313
Multiple Specifications of the Same Option ..................................................................................................... 314
ABI: Intercept All CICS Abends .......................................................................................................................... 314
ABP: Local Automatic Breakpoint Option ......................................................................................................... 315
BYP: Bypass Storage Protection ........................................................................................................................ 315
CBP: Specify Conditional Breakpoints ............................................................................................................... 316
CMD: Set Indirect Command Statements ......................................................................................................... 317
CSA: Unprotect an Area in the CSA ................................................................................................................... 317
CWA: Unprotect an Area in the CWA ................................................................................................................ 318
DM: Data Monitoring Option ............................................................................................................................ 318
FEP: Set the FEP Option..................................................................................................................................... 318
FOL: Continue Monitoring After a Branch to Another Program ....................................................................... 319
ICT: Instruction Counter for Preventing AICA Abends ...................................................................................... 319
KEP: Keep Data Areas in a Keep Window .......................................................................................................... 320
LET: Allow a Program to Modify Storage or a Load Module ............................................................................. 321
LNK: Set Composite Support ............................................................................................................................. 321
MON: Set Monitor ON Locations for Segmented Monitoring .......................................................................... 322
MUS: Limit the Number of Times a Program Is Monitored .............................................................................. 322
MXR: Limit the Number of CICS Requests ......................................................................................................... 323
MXS: Limit Storage Usage ................................................................................................................................. 323
NOM: Set NO Monitor Locations for Segmented Monitoring .......................................................................... 323
NRB: Prevent a Read Buffer Before a Breakpoint Display ................................................................................. 324
NUP: Prevent a Program from Updating CICS Files ........................................................................................... 324
OVR: Override Error Conditions That Trigger an ABP ....................................................................................... 324
PRO: Protect Storage from Being Modified ...................................................................................................... 325
RBP: Specify Request Breakpoints .................................................................................................................... 325
RFC: Replace File Names ................................................................................................................................... 327
RNT: Prevent a Program from Modifying Its Own Code ................................................................................... 327
RPC: Replace Program Names ........................................................................................................................... 327
RTD: Replace Transient Data Queue Names ..................................................................................................... 328
RTS: Replace Temporary Storage Identifications .............................................................................................. 328
SDF: Structure Display Format Setting .............................................................................................................. 328
SLB: Activate the Source Listing Breakpoint Facility ......................................................................................... 329
STR: Save the CICS Trace Table ......................................................................................................................... 329
TAL: Count How Often an Instruction Is Executed ............................................................................................ 329
TER: Change the Terminal ID ............................................................................................................................. 330
TON: Limit Monitoring to One Terminal ........................................................................................................... 330
TRC: Statement Tracing Option ......................................................................................................................... 330
UBP: Specify Unconditional Breakpoints .......................................................................................................... 331
Contents 15
USH: Unprotect Shared Storage ........................................................................................................................ 332
USR: Limit Monitoring to a CICS User ID ........................................................................................................... 332
CNTL Capabilities ...................................................................................................................................................... 333
Monitoring ........................................................................................................................................................ 333
Monitoring Options ........................................................................................................................................... 333
Status Display, Utility, and System Options ...................................................................................................... 334
Resume Task Execution ..................................................................................................................................... 334
Initiate Monitoring ................................................................................................................................................... 334
Monitor Command Building Menus and Screens ............................................................................................. 335
Access the Monitoring Command Builder Main Menu ..................................................................................... 336
The Function Selection Menu ........................................................................................................................... 337
Monitoring ........................................................................................................................................................ 340
Unconditional Breakpoints................................................................................................................................ 342
Conditional Breakpoints .................................................................................................................................... 346
Request Breakpoints ......................................................................................................................................... 355
Statement Trace Options .................................................................................................................................. 357
Replacement Options ........................................................................................................................................ 359
Protection Options ............................................................................................................................................ 360
Special Options.................................................................................................................................................. 363
Set and Remove Composite Support ................................................................................................................ 365
Indirect Commands ........................................................................................................................................... 366
Status Display .................................................................................................................................................... 367
Utility Functions ................................................................................................................................................ 370
Set SystemWide Options ................................................................................................................................... 371
Resume Task Execution ..................................................................................................................................... 372
16 User Guide
Assembler Version of the Breakpoint Areas Menu .................................................................................................. 399
Examples ........................................................................................................................................................... 400
PL/I Version of the Breakpoint Areas Menu ............................................................................................................. 401
System-Related Areas Menu .................................................................................................................................... 401
Display System-Related Areas ........................................................................................................................... 403
Change and Search for Data ..................................................................................................................................... 405
CORE Commands and Advanced Options ................................................................................................................ 406
Display Main Storage................................................................................................................................................ 407
Examples ........................................................................................................................................................... 407
Elements of a CORE Command ......................................................................................................................... 409
Storage Pointer ................................................................................................................................................. 409
=WHERE directive ............................................................................................................................................. 410
CORE Screen Scrolling Commands .................................................................................................................... 411
Indirect Addressing ........................................................................................................................................... 411
View Storage for a COBOL or PL/I Program at a Breakpoint ............................................................................. 412
Display Qualified, Variable Length, Indexed, or Subscripted COBOL Data Names ........................................... 414
View Storage for an Assembler Program at a Breakpoint ................................................................................. 415
Use a Different Module for Assembler Structures ............................................................................................ 415
CORE Commands For PL/I Symbolic Programs.................................................................................................. 417
Display Program Code for a Program Not at a Breakpoint ............................................................................... 419
Breakpoint Commands ............................................................................................................................................. 419
Display Storage Related to a Task at a Breakpoint............................................................................................ 420
Display Storage for an Inactive COBOL Program at a Breakpoint ..................................................................... 422
Restore the Screen at a Breakpoint .................................................................................................................. 423
Dynamically Acquire Main Storage at a Breakpoint .......................................................................................... 423
COBOL Like MOVE Command at a Breakpoint .................................................................................................. 424
Display Task Owned Areas ....................................................................................................................................... 426
Set the Task Number in a CORE Command ....................................................................................................... 427
Display Any CICS Control Area Structure in the Symbolic File .......................................................................... 427
Display System-Related Areas .................................................................................................................................. 428
Change the Contents of Main Storage ..................................................................................................................... 428
The CHANGE Command (CHG) .......................................................................................................................... 429
Bit Manipulation ............................................................................................................................................... 430
Verify Storage Before a Change ........................................................................................................................ 431
Move Data with the MOVEIN Command .......................................................................................................... 431
Scroll an Address with the SET Command ........................................................................................................ 432
Scan Main Storage .................................................................................................................................................... 433
Load and Delete Programs or Displaying BMS Maps ............................................................................................... 434
Dump Main Storage ................................................................................................................................................. 435
Chain CORE Commands ............................................................................................................................................ 436
The CALC Option ...................................................................................................................................................... 437
Convert PL/I Statement Numbers into Displacements ............................................................................................ 438
Contents 17
CORE(NNNNN)=BMSG .............................................................................................................................................. 439
18 User Guide
SQL Commands ................................................................................................................................................. 488
Scroll Through the DB2 and SQL/DS Table Display ........................................................................................... 489
PF Keys .............................................................................................................................................................. 493
FILE Functions for DB2 and SQL/DS Databases ................................................................................................. 494
Redisplay SQL Commands ................................................................................................................................. 498
View the CICS Attachment Facility (z/OS Users Only) .............................................................................................. 498
BDAM Files ............................................................................................................................................................... 502
FILE Screen Layout for BDAM Files .................................................................................................................... 503
FILE Functions for BDAM Records ..................................................................................................................... 504
Temporary Storage................................................................................................................................................... 510
FILE Screen Layout for Temporary Storage ....................................................................................................... 511
FILE Functions for Temporary Storage .............................................................................................................. 512
Transient Data .......................................................................................................................................................... 517
FILE Screen Layout for Transient Data .............................................................................................................. 517
FILE Functions for Transient Data Records........................................................................................................ 518
Chapter 12: Using CA InterTest for CICS with DB2 and SQL/DS Programs 523
Preliminary Steps ..................................................................................................................................................... 523
Check for DB2 or SQL/DS Support ..................................................................................................................... 523
Compile or Assemble Programs with Symbolic Support ................................................................................... 524
Check That the Attach Facility or Resource Adapter Is Active .......................................................................... 524
Halt Programs Before and After Each SQL Request ................................................................................................. 526
Halt a Program Before Each SQL Request ......................................................................................................... 526
Halt a Program after an SQL Request ................................................................................................................ 527
Inspect Host Variables .............................................................................................................................................. 527
SQL Return Codes ..................................................................................................................................................... 528
How to Handle SQL Error Codes........................................................................................................................ 529
Advanced Debugging Techniques ............................................................................................................................ 532
DSNC Abends (z/OS Only) ........................................................................................................................................ 534
The CICS Life of Task Control Block (CLOT) ....................................................................................................... 535
Reason and Abend Codes--Inspecting and Interpreting ................................................................................... 536
Inspect the Application Invocation Parameter List (RDIIN) ............................................................................... 537
View the CICS DB2 Attachment Facility (z/OS Only) ................................................................................................ 537
Chapter 13: Analyzing Dumps Symbolically: CA SymDump for CICS Option 539
What Is CA SymDump for CICS Option? ................................................................................................................... 539
Symbolic Dump Analysis........................................................................................................................................... 539
Manage Dumps ........................................................................................................................................................ 540
How CA SymDump Option Works with Your CICS Dump Data Set........................................................................... 541
Learn More About CA SymDump Option ................................................................................................................. 541
Contents 19
Appendix A: Printing the Help File 543
Help File Printout ..................................................................................................................................................... 543
Sample MVS JCL to Print the Help File .............................................................................................................. 543
20 User Guide
Index 575
Contents 21
Chapter 1: Introduction
This chapter introduces you to CA InterTest for CICS.
CA InterTest for CICS is an essential tool for both application and system programmers:
■ It makes CICS testing faster, easier, and more effective.
■ It prevents CICS crashes by automatically detecting and preventing application
errors before they damage CICS.
■ It provides powerful capabilities for examining and modifying main and auxiliary
storage.
Since CA InterTest for CICS is so easy to use, even novice CICS programmers quickly
learn to take advantage of its capabilities.
Chapter 1: Introduction 23
Fast, Easy Testing
With CA InterTest for CICS, you no longer need dumps. All the information you need to
diagnose and correct errors is available online. You can continue testing without
recompiling your program or waiting for new printouts.
24 User Guide
Fast, Easy Testing
CA InterTest for CICS acts as an intermediary between your CICS program and the CICS
system. Here is how CA InterTest for CICS operates:
■ You instruct CA InterTest for CICS to monitor a program, and then run the program.
■ CA InterTest for CICS inspects every instruction and CICS command before it
executes to make sure neither the program nor CICS itself will fail.
■ If an error is detected, CA InterTest for CICS automatically interrupts the program.
This temporary interruption in program execution is called a breakpoint.
■ CA InterTest for CICS then displays a diagnostic screen explaining the nature of the
problem and provides detailed technical information for correcting it.
The operation of the CA InterTest for CICS monitor is shown next.
Chapter 1: Introduction 25
Fast, Easy Testing
CA InterTest for CICS inspects every COBOL, PL/1 statement or Assembler instruction
and every CICS Command or Macro. CA InterTest for CICS can detect and prevent the
following errors:
■ All storage violations (attempts to modify storage not owned by your program)
■ Any CICS abend that can occur in a command level program
■ All improper or invalid CICS requests (Command or Macro level)
■ Any statement that would cause a program check or other abend
■ All illegal or invalid instructions (for example, STOP RUN)
■ All wild branches
■ All violations of CICS standards
Diagnostic Information
CA InterTest for CICS provides the information you need to diagnose and correct errors.
When CA InterTest for CICS detects an error, it halts the program before the error
occurs. This temporary halt in program execution is called an automatic breakpoint. CA
InterTest for CICS then displays a screen of diagnostic information indicating the
statement or instruction triggering the breakpoint, and CA InterTest for CICS explains
why the error occurred. Lets see what a display looks like when an error is detected.
26 User Guide
Fast, Easy Testing
The breakpoint display explains why CA InterTest for CICS halted the program. In the
following case, CA InterTest for CICS prevented an ASRA abend caused by an invalid data
format. The program instruction that triggered the breakpoint is highlighted. Now you
can use all of the CA InterTest for CICS facilities to find and correct the error without
analyzing a dump.
Request—the program stops when it reaches specified CICS Macros and Commands,
calls to DL/I or DB2, and calls to subroutines, such as database software.
You also can instruct CA InterTest for CICS to halt your program each time it executes a
specified number of COBOL verbs, PL/1 statements, or Assembler instructions.
Chapter 1: Introduction 27
Stable CICS Test and Production Systems
Controlling the pace at which a program executes makes it easier to pinpoint and
correct logic errors. For example, when a program is halted, you can inspect the values
of program variables and test data to determine whether processing is proceeding as
planned. You can also dynamically change the value of a data item or generate
additional test records before resuming execution.
When a program is stopped at a breakpoint, you can resume execution at any time and
from any point. This means you can go around errors or dynamically alter the order in
which certain routines are executed. When your program is halted at a breakpoint, you
can do the following tasks:
■ View your program listing and compiler output online and search for a data string
■ Display data items in a Keep window to observe changes in their values
■ Display and modify main storage
■ Display and modify auxiliary storage
■ Set and remove breakpoints
■ Instruct CA InterTest for CICS to halt the program after it executes a specified
number of COBOL verbs, PL/1 statements, or Assembler instructions
■ Write and execute indirect commands, which are statements you insert during a
test session, without recompiling the source code
■ Display the path (backtrace) that brought the program to its current point
■ Display the execution counts of the lines that brought the program to its current
point
■ Resume program execution or abend the task
■ Initiate any CICS transaction
In your test CICS system, you can instruct CA InterTest for CICS to inspect every program
for errors. In addition to spotting program errors, CA InterTest for CICS detects and
prevents all CICS storage violations. With CA InterTest for CICS, CICS test systems are
less likely to crash, so programmers can work more productively. Additionally, program
errors are confined to a single program—other programs remain unaffected. Therefore,
system throughput improves because trial and error testing is eliminated, test programs
need fewer recompiles, and CICS is much more stable.
28 User Guide
Examine and Modify Main and Auxiliary Storage
CA InterTest for CICS also helps maintain stable CICS production systems. Using CA
InterTest for CICS in CICS test systems means programs are less likely to have bugs when
they go into production. CA InterTest for CICS can also monitor new, modified, and
problem programs in production until they are completely debugged. In an emergency,
CA InterTest for CICS can even monitor all the programs in the production system until
you isolate the error. Special options let you adapt CA InterTest for CICS to specific
production situations.
Example
You can halt your program, change the value in a flag, initialize a counter, or change the
data in a test record, and then resume execution—all without recompiling.
You can inspect and modify main and auxiliary storage at any time—even when no
program is executing and CA InterTest for CICS is otherwise inactive. System
programmers can use CA InterTest for CICS to fine-tune CICS. They can display the
contents of CICS control blocks and tables in main storage, making changes as
necessary.
CA InterTest for CICS also makes it easy to maintain files online without writing one-time
programs. You can use CA InterTest for CICS to add, update, and delete records in VSAM
and BDAM files and DL/I, DB2 and SQL/DS databases. With CA InterTest for CICS, it is
easy to browse a file and search for a character string. CA InterTest for CICS also lets you
create and delete transient data and temporary storage records.
Easy-to-Use Features
It is easy to use the powerful CA InterTest for CICS facilities.CA InterTest for CICS is
designed so that even inexperienced CICS programmers can quickly become effective
users.
Chapter 1: Introduction 29
Easy-to-Use Features
We recommend that all users perform the demo sessions in the Primers because they
provide an excellent hands-on introduction to CA InterTest for CICS.
The ITST transaction displays the Primary Option Menu from which you can access any
CA InterTest for CICS function.
30 User Guide
Easy-to-Use Features
Specially formatted displays and screens also enable you to bypass menu processing by
using special commands or single keystrokes for the most frequently used testing
functions. For example, you can instruct CA InterTest for CICS to set monitoring,
breakpoints or display main storage simply by pressing a PF key or entering a single
action character next to a line in your source listing display. A command line on the top
of any Source Listing or Breakpoint display lets you access a main menu or a specific
menu function by entering its fastpath syntax (=X.Y.Z).
More experienced users often find it faster to enter transaction-based commands for
LIST, CNTL, CORE, and FILE facilities directly.
Example
Entering LIST=COBDEMO directly from CICS immediately displays the Source Listing
Display of the program COBDEMO, where you can quickly set breakpoints before you
begin executing the program.
You can also mix and match different methods during a single test session to meet your
testing needs.
Get HELP
The CA InterTest for CICS comprehensive Help facility is available from every CA
InterTest for CICS screen. Online help explains how to use all of the CA InterTest for CICS
facilities, provides important information on diagnosing and correcting program errors,
and includes examples. With help, all the information you need to become a productive
CA InterTest for CICS user is just a PF key away.
Note: You can also access the Help facility by entering Help on a blank screen.
Once you are in the CA InterTest for CICS Help facility, you can browse through as many
topics as you like. You also can print the Help screens.
Help is especially useful in helping you correct program errors. When CA InterTest for
CICS halts your program at an automatic breakpoint, you can press PF1 to get more
information on the error that caused the breakpoint.
Chapter 1: Introduction 31
Easy-to-Use Features
Note: Defining help for your site is discussed in the Installation Guide.
Symbolic Support
CA InterTest for CICS lets you forget about displacements or address changes after
recompiling because CA InterTest for CICS lets you reference all program locations by
the names you have defined in the program. You can inspect the contents of a data item
simply by specifying its name. If you set breakpoints at symbolic locations and then
recompile your program, CA InterTest for CICS can transfer those breakpoints to the
recompiled program. You can also access all CICS system-related areas by field names.
CA InterTest for CICS even provides full symbolic support for programs that consist of
separately compiled modules brought together when the program is link-edited. These
modules can be written in the same or different languages.
Flexible Testing
CA InterTest for CICS makes it easy to adjust your testing plan to react to situations as
they arise. For example, you can set breakpoints in your program before initiating it, and
then set new breakpoints or remove existing ones after the program begins to execute.
You can also create new test records during a test session if your current data is not
testing your program thoroughly.
32 User Guide
CA InterTest for CICS Components
In a secure CICS region, you can take advantage of the user monitoring option to create
a personal test session based only on your CICS user ID. If you specify your own User ID
when setting monitoring and breakpoints, the program(s) are monitored only when you
execute them, and the breakpoints and other monitoring options are directed to
whatever terminal, or terminal session, you are using. The user monitoring option also
permits multiple users to concurrently test the same program with different monitoring
options.
ITST—Displays the ISPF-like Primary Option Menu, which provides access to all other CA
InterTest for CICS and CA SymDump for CICS Option facilities without having to know
any other transaction or command.
LIST—Displays online COBOL, PL/1, and Assembler source listings and compiler output.
FILE—Displays and updates CICS files, DL/I, DB2, and SQL/DS databases, temporary
storage, or transient data.
You can use any of these transactions at any time. Your program does not have to be
executing for you to use CORE to display or change the contents of main storage, and
you can use FILE to update a file or create a test file whether or not CA InterTest for CICS
is monitoring any programs.
Chapter 1: Introduction 33
Take Advantage of CA InterTest for CICS
34 User Guide
Chapter 2: Menus and Displays
This chapter explains how to use the ISPF-like menus and selection lists to get around CA
InterTest for CICS before, during, and after your test sessions. The menus:
■ Are always available
■ Use a standard set of PF keys
■ Support a subset of ISPF commands, including the fast-path Jump (=x.y.z) command
for quick navigation
■ Simplify navigation among the Source Listing, Monitoring (CNTL), Main Storage
(CORE), Auxiliary Storage (FILE), and CA SymDump for CICS (SYMD) displays
This chapter also explains how to use the Monitoring Status display, an expandable
tree-like display of current monitoring entries. You will find the Status display saves
testing time, since you can quickly remove any monitoring, breakpoint, or monitoring
option directly from it.
Note: This chapter assumes you understand the concepts of CA InterTest for CICS
monitoring and breakpoints.
Use the CA InterTest for CICS Primary Option Menu to access and initiate any CA
InterTest for CICS facility, and even CA SymDump for CICS. Notice you can also use
Option 7 Status/Maintenance, to view your site’s installation options, release
information, and what PTFs have been applied.
Access
To access the Primary Option Menu, enter ITST from CICS, from any Source Listing
display or breakpoint, or any CA InterTest for CICS menu.
■ Before a test session, sign on to CICS, and then enter the ITST transaction
■ From any Source Listing display or breakpoint display, type ITST on the command
line
Note: The command line is on line 2 of all Source displays and is available at all
times.
■ From the Breakpoint Primary Option Menu, type ITST or select option 1 Main Menu
36 User Guide
The Primary Option Menu and Breakpoint Menu
Whats New?
Current CA InterTest for CICS users might want to browse the topics in Option 8 What's
New, to read about what is new for this release.
OPTION ===>
Notice that from the Breakpoint Primary Option Menu, Option 1 Main Menu takes you
to the Primary Option Menu.
Access
To access the Breakpoint Primary Option Menu from any Source Listing Breakpoint,
enter MENU on the command line or press PF6 Menu.
Option Selection
Option Selection
Option selection for the new menus follows standard ISPF conventions. To select a
menu option, enter its number in the Option==> field and press Enter. If you have
questions about menu usage, press PF1 for menu-specific help.
The Option field of menus (and the command line of the Source Listing Facility) support
the Jump (=x.y.z) command notation, also known as fastpath notation. Jump notation
lets you bypass intermediate menus by making a series of selections in the format x.y.z.
The equal sign indicates your selection starts from the top level menu in the current
hierarchy. If you do not include the equal sign, your selection starts from the current
menu.
Fast-path Notation
When a submenu to a Primary Option Menu is discussed in this guide, its fast-path from
the Primary Option Menu is written in parentheses following the menu name.
Example
the notation indicates that the Program Monitoring menu is option 2 Monitoring on the
Primary Option Menu, and then option 1 Programs on the Monitoring Menu.
P F Keys
All menus and selection lists have a standard set of PF keys, which are listed in the
following table.
PF Key Function
PF1 Help Displays a Help menu relating to the current menu or display. At
an automatic breakpoint, gives help for the specific problem. Use
Clear to exit help.
PF3 End Ends the current display and returns to the previous menu or
display.
PF4 Return Returns to the highest level menu, either the Primary Option
Menu or the Breakpoint Primary Option Menu.
PF7 Backward Scrolls a list back one page, or scrolls back to the list item indicated
by the user's cursor.
PF8 Forward Scrolls a list forward one page, or scrolls down to the list item
indicated by the user's cursor.
38 User Guide
The Primary Option Menu and Breakpoint Menu
The previous graphic does not include the last four Primary Menu Options:
8 What's New—Displays online help topics listing the new features for this release.
The Primary Option Menu is available at all times, even if you did not start the session
from a menu. For example, if you started your CA InterTest for CICS session using
LIST=COBDEMO, from the Source Listing Display you can still use PF6 Menu to display
the Primary Option Menu; or if you used single-line commands to set monitoring and
breakpoints for your program, and then execute the program and reach a breakpoint,
PF 6 Menu displays the Breakpoint Primary Option Menu and Option 1 Main Menu
accesses the Primary Option Menu.
Breakpoint Menus
The Breakpoint Primary Option Menu lets you decide how or if you want to continue
execution. Notice Option 4 Resume displays a submenu with eight options for resuming
execution.
40 User Guide
The Primary Option Menu and Breakpoint Menu
Example
EXPAND and COLLAPSE apply only to screens with tree structure displays, and LOCATE
applies only to selection lists displayed in alphanumeric order.
Commands Function
BACKWARD Same as PF7, scrolls backwards or towards the top of the selection
BWD list.
More: - (minus sign) indicates there are more selections to view using
PF7 or BACKWARD.
END Same as PF3. Ends the current function and returns to the previous
menu or display.
EXPAND Expands a branch in a tree structure to show all related entries. A plus
sign in front of a tree structure entry indicates the branch can be
expanded.
FORWARD Same as PF8, scrolls the display list forward towards the bottom of
FWD the selection list. The More: + (plus) field indicates there are more
entries to view using PF8 or FORWARD.
Note: Use the cursor to go to an entry in the middle of a display and
press PF8 (Forward) to position that entry at the top of the display.
HELP Same as PF1, displays help for the current screen. Once in the help
facility, follow the help panel instructions to access additional or
related help topics. To exit help, use PF3 or Clear.
LOCATE Locates a selection in a list based on the character string you enter.
LOC For example, LOC COBDEMO locates COBDEMO in the current
L selection list. Accepts masking characters * and ?
Commands Function
MAIN Same as PF4 Return. Returns you to the highest level menu, such as
the Primary Option Menu.
RETURN Same as PF4 Return. Returns you to the highest level menu, such as
the Primary Option Menu (before a test session) or the Breakpoint
Primary Option Menu (at a breakpoint).
42 User Guide
The Monitoring Status Display
Sample Status
The following screen is a sample Monitoring Status display for the program COB2DEMO.
This example shows the expanded monitoring entry for the Program COB2DEMO.
Review the following list to remember what each Option listed on this status display
means.
■ The COB2DEMO option identifies the program being monitored is COB2DEMO, a
COBOL program. Notice the rest of the Options are indented under COB2DEMO,
indicating they are options to this monitoring entry.
■ The .ANY option indicates this program is being monitored under .ANY user. If you
were monitoring under a single User ID, you would see a specific User ID, such as
MARY01, instead of .ANY.
■ Notice the rest of the options are indented under .ANY. This indicates they are
options for the monitoring entry COB2DEMO when executed by .ANY user.
■ The RBP option identifies a request breakpoint was set for this monitoring entry for
all DSNHLI calls. Notice that the breakpoint is assigned the Option ID# CB1E38D7.
This request breakpoint takes affect when the program executes at the terminal
X508 and displays on the terminal X508 (the current terminal).
■ The SLB option indicates the Source Listing Breakpoint display is the default for all
breakpoint displays.
Access
The Monitoring Status display is conveniently accessed from the menus and the Source
Listing facility.
To get a Monitoring Status for a single monitoring entry, such as a single program:
■ From the Source Listing Display or Source Listing Breakpoint screen, enter STATUS
in the COMMAND ===> line when the current program is displayed and press Enter,
or press PF12 Status.
■ From the Breakpoint Primary Option Menu, select option 2 Status.
From the Primary Option Menu, complete the Monitoring Menus for the Program (2.1),
Transaction (2.2), or Terminal (2.3), and select the Status option from the option list.
To get a Monitoring Status for all monitoring entries, perform the following steps:
■ From the Source Listing Display or Source Listing Breakpoint screen, enter STATUS
ALL in the COMMAND ===> line.
■ From the Primary Option Menu, select Option 2.4 Monitoring Status.
The following screen shows a Monitoring Status display for all entries.
44 User Guide
The Monitoring Status Display
Removing breakpoints, especially request breakpoints, is simple using the status display.
First, display the status report for the monitored entry and expand the monitored entry
to view all options. Next, enter r next to the breakpoint you want to remove, and press
Enter.
The following screen is an example of removing the request breakpoint for COB2DEMO,
monitored under ANY user.
46 User Guide
Chapter 3: Source Listing Facility
The CA InterTest for CICS Source Listing facility enables you to debug your program
while viewing your source code, which takes the guesswork out of testing. In addition,
access all of the other CA InterTest for CICS facilities—ITST, CNTL, CORE, FILE, HELP and
SYMD (for CA SymDump for CICS licensed users) directly from the Source Listing facility
using menus or single-line commands.
The purpose of this chapter is to get you up and running as quickly as possible so you
can use the Source Listing Facility to test your programs.
As you become familiar with the Source Listing facility, keep in mind that there is no
such thing as a cookbook method of using CA InterTest for CICS. CA InterTest for CICS is
a varied and powerful testing tool; how you use it depends on your particular testing
needs.
Demo Sessions
In addition to reading this chapter, an excellent way to learn CA InterTest for CICS is
to perform the demo sessions documented in the CA InterTest for CICS Primer
guides. Three separate primers are available: the Assembler Primer, the COBOL
Primer, and the PL/I Primer.
Note: For detailed instructions on how to modify your JCL, see the CA Application
Quality and Testing Tools Symbolic Guide.
To start CA InterTest for CICS or to verify that CA InterTest for CICS is up and running,
sign on to CICS and issue the following command on a Clear screen:
CNTL=START
CA InterTest for CICS responds with a message stating either that it has successfully
started or that it is already active.
Note: If CICS responds with a message stating that CNTL is an invalid transaction, the
systems programmer who installed CA InterTest for CICS probably changed the name of
the CNTL transaction. Find out the new transaction ID and try again.
A sample CA InterTest for CICS initial screen for the HELP facility follows.
Note: Browse the Help facility by pressing Enter from the initial Help screen. To exit
Help, press PF3 or Clear.
CA InterTest is a productivity tool that will make your CICS testing faster,
easier and more effective. The following transactions are available:
ITST - A menu facility for all the activities included in the transactions
below
LIST - To display compiler and assembler output, set and remove breakpoints
view and modify data variables, and control program execution
CNTL - To set and remove breakpoints and monitoring options, control
program execution, and report on monitoring activity
CORE - To display or modify main storage
FILE - To display or modify any CICS file or DL/I or DB2 data base
HELP - To obtain assistance in USING CA InterTest
SYMD - To display transaction dumps symbolically
Enter any transaction code: ____ or Enter any message number: ____________
48 User Guide
Start a Test Session
Fill in the following table with the transaction names displayed on your screen. Use
these transaction names in place of the standard CA InterTest for CICS transaction
names wherever they occur in this manual.
Menu Access
Use the ITST Primary Menu, Option 1 Source, to select your program from a selection
list by program name or by SYMBOLIC file name. For details, see The Source Selection
List (see page 51) later in this chapter.
Command Access
LIST=progname
progname
Specifies the name of your program.
CA InterTest for CICS displays your program on the Source Listing Display screen. From
this screen set monitoring and breakpoints.
If a message informs you that the listing is not available, check whether the:
■ Program name is correct
■ Program is in the CA InterTest for CICS Symbolic File
■ Program was compiled or assembled with the LISTER option
If there are multiple copies of the program you specified, CA InterTest for CICS asks you
to select the program that you want to run. When you make your selection and press
Enter, CA InterTest for CICS displays the Source Listing of your program. For details, see
Maintain Synchronized Processing (see page 92), earlier in this chapter.
Note: CA InterTest for CICS monitoring and breakpoints include a CICS user ID option.
For a discussion of this option, see Set Monitoring later in this chapter.
50 User Guide
The Source Selection List
Example
Set an unconditional breakpoint at the beginning of the Procedure Division, the first
CSECT, or the first line of a PL/I program to gain control right from the start.
To begin testing, execute the program as you normally would. In a secure CICS region,
be sure to sign on to CICS before executing the program.
In the unlabeled text fields, enter either the listing name or the CA InterTest for CICS
Symbolic File name. Use masks to filter the selection list for items matching the filter
criteria:
■ Use * in place of a string of any length.
Example
The c* in the previous screen filters for all listings starting with the letter c.
■ Use + for a single character.
Example
A mask of COBD++O filters for any seven letter item that begins with the letters COBD,
has an O in the last position, and has any valid character in the fifth and sixth positions.
For instance, COBDEMO, COBDXXO, and COBDABO would all meet the mask criteria, but
COBDEML or COBDEM would not.
■ Leave the fields blank to display all symbolic files or listings.
52 User Guide
The Source Selection List
Once you specify a listing, file or mask and press Enter. CA InterTest for CICS displays the
Source Listing Selection menu, showing all the files or listings meeting the criteria you
specified on the Source Menu. Type an S next to the file or listing you want and press
Enter to display that file or listing in the Source Listing display. The following screen
shows a sample result of the criteria entered on the Source Menu shown previously.
------------------------------------------------------------------------------
_ 00001 ID DIVISION.
_ 00002 PROGRAMID. COBDEMO.
_ 00003 ENVIRONMENT DIVISION.
00004 DATA DIVISION.
_ 00005 WORKINGSTORAGE SECTION.
_ 00006 77 S999FIELD1 PIC S9(3).
_00007 77 S999FIELD2 PIC S9(3) VALUE +50.
_ 00008 77 999FIELD1 PIC 9(3).
_ 00009 77 999FIELD2 PIC 9(3) VALUE 50.
_ 00010 77 FIRSTSCREENLEN PIC S9(4) COMP VALUE +1696.
_ 00011 77 MSGSCREENLEN PIC S9(4) COMP VALUE +1040.
_ 00012 77 THIRDSCREENLEN PIC S9(4) COMP VALUE +960.
_ 00013 77 FOURTHSCREENLEN PIC S9(4) COMP VALUE +1761.
_ 00014 77 ERRORSCREENLEN PIC S9(4) COMP VALUE +960.
00015*77 COMMAREALEN PIC S9(4) COMP VALUE +39.
Fields in which you enter commands and information:
COMMAND ===>
Enter any CA InterTest for CICS transaction, transaction-based command, or a
Source Listing Display command. Enter =X.Y.Z for fast-path menu access to
Primary Option Menu X.Y.Z.
Note: You cannot use this command line to enter a system-wide CNTL
command.
Program=
Change the program whose code displays.
54 User Guide
Examine the Source Listing Display Screen
Option #
Enter an option listed on OPTS lines by number, or enter shortcut codes for
CNTL functions.
Stmt #
Display a specific statement.
Nested=
Indicates the displayed COBOL nested program or the program to be searched.
Note: The COBDEMO program does not contain nested programs. However, if
a program does contain a nested program, it displays here.
Margin=
Adjust the display margins to view code past position 80.
Search=
Instruct CA InterTest for CICS to search for a data name or string.
OPTS lists entries for the Option # field. Valid options for COBOL, Assembler, and
PL/I are listed in Source Listing Option # Field Entries (see page 56).
PFKS describes the PF key functions.
The bottom half of the Source Listing display screen displays source code from the
program named in the Program= field.
Position 1 (represented by the underscore _) of each line is reserved for entering
single-letter commands and for breakpoint-related functions.When a breakpoint
takes effect during execution, it is identified in position 1 with one of the following
letters:
A Automatic, detected by CA InterTest for CICS
U Unconditional
C Conditional
V Variable-change
R Request
Displays the source code. The numbers at the left side of each line are the COBOL
or PL/I statement numbers from the compiled listing, or the Assembler hexadecimal
location number from the assembled listing.
For COBOL and PL/I programs, there are more OPTS to view. A More field displays
to the right of the OPTS entries. Tab to More + and press Enter to view OPTS 5 to
the end. Tab to More - and press Enter to view OPTS 1 to 10.
Note: The display screen's format varies by terminal type. For 132-column
terminals, lines of code display as is and you view them in full. For 80-column
terminals, CA InterTest for CICS automatically reformats the compiler output so that
you view most of the code in columns 1 to 80. Code beyond column 80 is viewed by
changing the display margins in the Margin= field. For details, see Adjust the
Margins (see page 75) later in this chapter.
Note: For PL/I programs, all of the OPTS labels cannot be displayed at once. Tab to the
More field and press Enter to view options not currently displayed.
56 User Guide
Examine the Source Listing Display Screen
* Use these options with NESTED= entries to request a display of these sections for a
specific nested program.
The sections available for display depend on which version of the post-processor LISTER
parameter was used to compile or assemble the program.
Note: You cannot use this command line to enter CA InterTest for CICS system-wide
CNTL options.
CALLTRACE None Shows the program call flow leading up to the currently
breakpointed program. Select programs having symbolic
support from the list and display their data areas.
CHANNEL None Displays the currently allocated channel and the
containers in the channel. From the selection list you
can also display the data within a container. This feature
is only valid in CICS releases that support CHANNELs and
Containers.
CNTL None Displays the CNTL Command Menu.
Note: The Monitoring Menu (2) is an alternative to using
the CNTL menu; for details, see the chapter "Monitoring
Menu Options."
58 User Guide
Examine the Source Listing Display Screen
60 User Guide
Examine the Source Listing Display Screen
62 User Guide
Examine the Source Listing Display Screen
To access a CNTL function, enter a code using the following format in the Option # field,
and press Enter:
=nns OR =nnr
=
Required.
nn
Specifies function number (10 to 33) from the CNTL main menu.
s or r
Specifies setting or removing the option .
Note: While the CNTL shortcut commands are supported, you will find it easier to use
the Monitoring Menus, available from Primary Option Menu Option 2 Monitoring.
64 User Guide
Examine the Source Listing Display Screen
The following table summarizes the Option # codes you can enter for the standard CNTL
Selection Menu functions.
For information:
Note: The ITST menus and relocated command line eliminate the need to assign CNTL,
CORE, and FILE to PF keys. Navigate to these facilities using the menus, or use the
command line to enter the transaction or desired single-line command.
PF Key Function
PF1 Help Help; displays a Help menu relating to the current Source Listing
Display screen.
PF2 Unassigned.
PF3 End End or Clear; terminates the Source Listing Facility. Displays an
earlier ITST panel, if applicable, or CICS.
PF4 Profile Displays the Source Listing Profile screen, where you can set values
for your current session.
PF5 Monitor Turns monitoring on for the program whose listing is being viewed
using the CICS user ID on the Profile.
PF6 Menu Displays the Primary Option Menu.
PF7 Backward Scrolls the compiler output backward by one page unless the
setting was changed on the Profile. Does not apply within the Keep
window.
PF8 Forward Scrolls the compiler output forward by one page unless the setting
was changed on the Profile. Does not apply within the Keep
window.
PF9, PF10, PF11 Unassigned.
PF12 Status Displays the Monitoring Status for the current program. You can
remove breakpoints and options directly from the Status display.
66 User Guide
Search for Data
Search for data using the Search=field, or by entering a FIND or LOCATE command on
the command line.
If you know the line number that you want to view, use the line command to position
the listing accordingly. For details, see View the Online Listing (see page 70) later in this
chapter.
For COBOL nested programs, CA InterTest for CICS first searches the current nested
program (indicated in the NESTED= field) for the specified data item. If the data item is
not found in the indicated program, CA InterTest for CICS then searches the main
program and other nested programs for the item.
Note: It is not necessary to enter the entire data item, label, or paragraph name; enter
the first few characters to start your search.
Example
If you wanted to search for TASKNUM, you could enter TASK, TASKN, and so on, in the
Search= field.
String
Specifies any valid string (up to 31 characters in length). If the string contains a
blank, it must be enclosed in apostrophes ('). If the string contains an apostrophe
('), it must be enclosed in quotes (").
label
Indicates any valid label with an ASSEMBER, COBOL or PL/1 program including
datanames, CSECT, procedure, and paragraph names (up to 31 characters in
length).
68 User Guide
Search for Data
Line-number
Indicates any line number within an ASSEMBLER, COBOL or PL/1 program.
Hex-offset
Indicates any offset within an ASSEMBER program and is indicated with a leading +
character.
.xx
Indicates a special indicator depending on language as follows:
COBOL:
PD = Procedure Division
WS = Working-Storage Section
LC = Local-Storage Section
LS = Linkage Section
DM = DMAP
PM = COBOL/VS PMAP/CLIST
CL = COBOL/VS PMAP/CLIST
OF = COBOL II OFFSET/LIST
LI = COBOL II OFFSET/LIST
DX = Data Name Cross Reference
.PX = Procedure Cross Reference
.EM= Error Messages
"C":
.AG = Aggregate List
.DX = Data Name Cross Reference
.EM = Error Messages
.GC = Generated Code
.IN = Includes section
.SO = Storage Offset
PL/1:
.AG = Aggregate List
.SR = Storage Registers
.SS = Static Storage
.VS = Variable Storage
.OF = Offsets
.GC = Generated Code
.PX = Procedure Cross Reference
.LX = Label Cross Reference
.DX = Data Name Cross Reference
.EM = Error Messages
ASSEMBLER:
.C1 = 1st CSECT
.1C = 1st CSECT
.MC = Macro Catalog
.XR = Cross Reference
.LI = Literals
.EM = Error Messages
To position the listing at the top of the source code within the complete online listing,
enter:
TOP
To position the listing at the bottom of the source code within the complete online
listing, enter:
BOTTOM
70 User Guide
Search for Data
RIGHT char-count
char-count
Indicates any valid number of characters between 1 and 49.
Default: 10
LEFT char-count
char-count
Indicates any valid number of characters between 1 and 49.
Default: 10
DOWN line-count
line-count
Indicates any valid number of lines between 1 and 9999.
Default: 1
Shift Listing Up
UP line-count
line-count
Indicates any valid number of lines between 1 and 9999.
Default: 1
margin value
Indicates any valid number of characters between 1 and 50.
FS line-number
line-number
Indicates any line number within an ASSEMBLER, COBOL, or PL/1 program.
FP label
label
Indicates any valid label within an ASSEMBLER, COBOL or PL/1 program including
datanames, CSECT, procedure, and paragraph names.
IC
BPO
Note: The BPO command does not require any parameters. However a corresponding
U/R/C must be placed in the left, line command area of the statement requiring the
breakpoint option.
72 User Guide
Scroll Forward and Backward
PF7 and PF8 do not apply to the Keep window, within which PF19 and PF20 perform the
scroll forward and backward functions.
Program=
LIST=progname,#nnnnn
progname
Specifies the name of the program you want to view
#
Required
nnnnn
Indicates the statement number from 1 to 99999
Note:If the requested statement number is greater than the number of statements in
the listing, the greatest number is displayed.
Assembler Programs
When you initiate the Source Listing Facility you can position the Assembler display at a
specific offset location in a CSECT. Use the command form:
LIST=progname,offset
progname
Specifies the name of the program you want to view
offset
Specifies a one to six hexadecimal number from 0 to FFFFFF
Example
LIST=COBDEMO,#99
Position the Source Listing display of program ASMDEMO with offset 0007E8 highlighted
near the top of the display area enter:
LIST=ASMDEMO,7E8
Position the display area to include more data, source listing, or storage items using the
Option #, Statement #, Margin=, and Search = fields of any Source Listing screen.
Option #
To display a specific section, select an Option # from the OPTS.
Statement #
To display a particular statement, enter the desired statement number from 1 to
9999 in the Statement # field, and press Enter.
Nested=
To display a particular nested program, enter the program name in the Nested =
field, and press Enter.
Search=
To display the code defining a particular data item in Working-storage,
Local-Storage, or the Linkage section, enter the data name in the Search = field, and
press Enter.
To display the code surrounding a particular paragraph or label, enter the
paragraph name or label name in the Search = field, and press Enter.
Displacement=
To display the listing at a specific displacement in an Assembler program, enter the
displacement from 0 to FFFFFF in the Displacement= field.
74 User Guide
Adjust the Margins
Margin=
To adjust the output display to view portions of the listing to the right of position 80,
perform the following steps:
1. Enter the position number of the desired left margin in the Margin= field. Valid
entries are 1 through 50.
2. Press Enter. The screen displays the output beginning at the position specified, as
shown in the following example.
Example
Notes:
■ The statement or location numbers stay on the screen as the rest of the display
shifts left or right. A plus sign (+) in the line above the display area indicates the
column where shifting begins.
■ If there is no output beyond position 80, CA InterTest for CICS overrides a margin
setting greater than 1 and redisplays positions 1 through 80.
Access
To access the Profile, type profile on the command line and press Enter, or press PF4
while viewing the Source Listing or Breakpoint screen. The Profile appears at the bottom
of your screen similar to the following display:
Each Profile option has a default setting; therefore, it is not necessary to change the
options in the Profile screen unless you want to change the default settings for your test
session.
76 User Guide
Customize the Source Listing Profile
Display Titles=N
The top portion of a Source Listing Display with Display Titles = N is shown next.
To display more lines of your program's source listing instead of the titles for the
Options and PF keys, perform the following steps:
1. Type profile on the command line and press Enter, or press PF4 from the Source
Listing screen to access the Profile screen.
2. Overtype the Y with N in the Display Titles= field.
3. Press Enter. CA InterTest for CICS replaces the option and PF key descriptions with
more lines of your program's source listing.
Display Titles=R
The top portion of a Source Listing Display with Display Titles = R follows.
To display your program's registers instead of the titles for the Options and PF keys,
perform the following steps:
1. Type profile on the command line and press Enter, or press PF4 from the Source
Listing screen to access the Profile screen.
2. Overtype Y with R in the Display Titles= field.
3. Press Enter. When you execute your program with Display Titles=R, the title and
header lines on your Source Listing Display are replaced with your program's
registers and a Conditional Code line.
Display Titles=Y
To switch back to the Display Titles format, perform the following steps:
1. Press PF4 to access the Source Listing Profile screen.
2. Specify Display Titles=Y.
3. Press Enter. The option and PF key descriptions redisplay.
When Display Titles= R, CA InterTest for CICS replaces the title lines with the contents of
your program's registers, as shown in the following screen.
78 User Guide
Customize the Source Listing Profile
Scroll Amount
The scroll amount determines how much more of your source listing displays each time
you use PF7 or PF8.
To set the scroll amount for scrolling backward and forward (PF7 and PF8), perform the
following steps:
1. Type profile on the command line and press Enter, or press PF4 from a Source
Listing screen to display the Profile screen.
2. Overtype the current PF7/8 Amount=entry with one of the following:
PAGE
The size (number of lines) of the display area on the Source Listing Display and
Breakpoint screens.
HALF
Half the size of the display area.
nnnn
Any number of lines from 1 to 9999.
STOP
Go to the next or previous breakpoint in the program.
3. Press Enter. The change takes effect immediately, and you return to the Source
Listing Display screen.
Notes:
■ Setting the Scroll Amount to STOP is an excellent way to review all of the
breakpoints set in your program
■ PF7 and PF8 do not apply to the Keep window, within which PF19 and PF20 perform
the forward and backward functions
Step Timing
Step timing determines where the Step or Next command stops statement execution.
80 User Guide
Customize the Source Listing Profile
Step Amount
The step amount determines how many COBOL verbs, Assembler instructions, or PL/I
statements will be executed at a time when you use PF10 to single-step through your
program.
Stepping Amount=
To set the step amount for PF10, perform the following steps:
1. Type profile on the command line and press Enter, or press PF4 to access the
Profile screen from any Source Listing screen.
2. Enter the desired number of COBOL verbs, Assembler instructions, or PL/I
statements from 1 to 999 in the Stepping amount= field.
3. Press Enter. When the Source Listing Breakpoint screen is redisplayed, the new step
amount is reflected in the PF10 (Single-step) definition, as shown in the following
example.
Example
The Source Listing Breakpoint display in the following figure shows a PF10 step amount
set to 004 Verbs.
Note: The step value of PF10 on the Source Listing Breakpoint screen does not apply to
the PF10 definition on the Detailed Breakpoint screen.
Use the Stepping Amount parameter to enable the automatic tracing feature of the
Source Listing Backtrace. When the Stepping Amount is set to any number greater than
one, the new value becomes the number of statements CA InterTest for CICS traces on
the Source Listing Backtrace. (PF9 traces backward; PF10 traces forward).
Auto-stepping= ON
Autostepping parameters
Wait amount = 01 Enter the number of seconds to wait at each step (1 - 59)
Stop value = CALL Enter CALL to halt stepping at any COMMAND, MACRO, or CALL,
or the maximum number of steps to execute (1 - 9999)
82 User Guide
Customize the Source Listing Profile
The initial display mode depends on the setting chosen when CA InterTest for CICS was
installed; however, you can change the display mode at any time by using the Profile
screen. This change remains in effect until the Source List BKPT= setting is changed.
From Terminal ID identifies where the program executes. The default for the From
Terminal ID setting depends on your system's installation option value for DFLTUSER.
■ When DFLTUSER=.ANY is in effect, the default is the terminal displaying the source
listing.
■ When DFLTUSER=SPECIFIC is in effect and you are signed on to CICS, the default is
.ANY. This entry tells CA InterTest for CICS to monitor the program when it runs
from .ANY terminal wherever you are signed on to CICS.
To change the default From Terminal ID, perform the following steps:
1. Type profile on the command line and press Enter, or press PF4 from the Source
Listing display to access the Source Listing Profile screen.
2. Overtype the entry in the From Terminal ID field to specify where the program will
run. Valid entries are
terminal ID
Runs from the specified terminal
*
Runs from current terminal displaying this profile screen
84 User Guide
Customize the Source Listing Profile
.ANY
Runs from any terminal or even without a terminal
.NO
Monitors only when this program runs as a background transaction without a
terminal.
Note: The BKPT terminal ID must be set to a specific 3270-type terminal that
will receive the breakpoints. If From terminal ID is .N and the BKPT terminal ID
is .NO or .ANY, the breakpointed task is abended with an INTE abend when the
first breakpoint is encountered.
3. Press Enter to process the new From Terminal ID setting and to return to the Source
Listing Display.
From Terminal ID identifies the terminal where breakpoints display. The default for the
BKPT Terminal ID depends on your system's installation option value for DFLTUSER. To
view your system's installation options online, use ITST Option 7.1.2.
■ When DFLTUSER=.ANY is in effect, the default is the terminal that is displaying the
source listing.
■ When DFLTUSER=SPECIFIC is in effect and you are signed on to CICS, the default is
.ANY. This entry tells CA InterTest for CICS to send the breakpoints to any terminal
where the user is signed on to CICS.
.ANY
For transactions executing at a 3270-type terminal, the breakpoint displays on
the executing terminal.
.NO
If the transaction runs as a background task without a terminal, the transaction
abends with an INTE abend when the first breakpoint is displayed.
The breakpointed task abends with an INTE abend when the first breakpoint is
displayed.
3. Press Enter to process the new BKPT Terminal ID setting and to return to the Source
Listing Display.
86 User Guide
Customize the Source Listing Profile
User ID=
The default is either the current CICS user, or .ANY. To change the default, perform the
following steps:
1. Type profile on the command line and press Enter, or press PF4 from the Source
Listing display, to access the Source Listing Profile screen.
2. Overtype the entry in the User ID field to specify the CICS user who must execute
the program for monitoring and breakpoints to take effect. Valid entries are:
specific user-ID
Monitoring and breakpoints take effect only when the specific CICS user
executes the program.This establishes a personal debugging session for the
CICS user and directs breakpoints to the terminal on which the user is signed
on.
.ANY
Monitoring and breakpoints take effect when anyone executes the program.
3. Press Enter to process the new user ID setting and to return to the Source Listing
Display.
Note: If you override the default user ID setting, check the Profile before each Source
Listing Session and before you set additional breakpoints during a test session.
The initial setting for AUTOKEEP is chosen when CA InterTest for CICS is installed. If the
IN25OPTS parameter SLBAKEEP is set to yes, which is the default, AUTOKEEP will be
active. However, use the Profile screen to turn AUTOKEEP off or on again at any time.
AutoKeep Display=
The initial setting for Code Counting is off, which is the default. However, use the Profile
screen to turn Code Coverage off or on again at any time.
How the counts are displayed or not displayed is handled by the primary line command
COUNTS with its associated parameters.
This feature, due to its nature, causes overhead during monitoring and should be turned
off as soon as it is no longer needed.
Code Counting=
To change the setting for Code Coverage, perform the following steps:
1. Type profile on the command line and press Enter, or press PF4 to access the
Profile screen from any Source Listing Screen. The Code Counting= field shows the
current setting.
88 User Guide
Testing Activities
To change the current structure display format type profile on the command line and
press Enter, or press PF4 to access the Profile screen from the Source Listing Screen. The
SDF = field shows the current setting.
Testing Activities
This section discusses testing activities for monitoring users.
Set Monitoring
A CICS user ID is assigned to all monitoring requests. Depending on how CA InterTest for
CICS was installed at your site, the default may be to set monitoring for .ANY user, or to
set monitoring for a specific CICS user. The following topics discuss how these settings
affect your test session.
As long as you are working in a secure CICS region, you can override the default user ID
setting using the Profile display. You should check how the user ID is set prior to setting
breakpoints or monitoring for a program.
Setting monitoring with a user ID of .ANY is the same as monitoring in earlier CICS
releases: the program is monitored when ANY user executes the program, and
breakpoints are displayed by default on the same terminal where they were set.
When you set monitoring for a program with a specific user ID, CA InterTest for CICS
only monitors the program when it is executed by that user. In addition, breakpoints
display at whatever terminal that user is signed on to. Of course, this option requires a
secure CICS region and the user to be signed on to CICS when testing the program.
Monitoring with your specific user ID has the following advantages over monitoring with
user ID=.ANY:
■ You can change terminals and your breakpoints and monitoring options will follow
you
■ Your testing will not interfere with any one else testing the same program
■ You can use a multi-session terminal emulator package and have breakpoints
directed to whatever terminal session you are using
To view or set the user ID that will be used for monitoring and breakpoints, access the
Source Listing Profile. To access the Profile, either enter PROFILE on the command line
and press Enter, or press PF4. The User ID field is at the bottom of the Profile. To change
its value, delete the current entry, type in the new entry, and press Enter.
Also check the Terminal ID field just above the User ID field. Generally, you want
Terminal ID set to .ANY when User ID is specific, and Terminal ID set to a specific
terminal ID when User ID is .ANY.
Notes:
■ Press PF1 for field-level help.
■ Press PF4 to exit the Profile and return to the Source Listing Display.
To set monitoring for the program you are viewing, enter MONITOR in the command
line, or press PF5. CA InterTest for CICS processes the request immediately using the
user ID value currently set in the Source Listing Profile.
Note: If you are going to set any breakpoints, skip this step; setting a breakpoint
automatically sets monitoring for the program.
90 User Guide
Testing Activities
To display another program, overtype the program name in the Program= field. Specify
where you want to begin the program's display by using the Option #, Stmt #, and
Search = or Assembler Displacement fields. Press Enter to process your request. For
Details, Change the Program (see page 73) and Position the Display (see page 73) earlier
in this chapter.
With the new program displayed, repeat the steps to set monitoring and breakpoints.
COBOL II nested programs let non-unique paragraph and data names to be defined
across nested programs. Therefore, CA InterTest for CICS supports qualified names for
COBOL programs. A qualified name consists of a one- to 30-byte COBOL program name,
a colon, and a one- to 30-byte paragraph or data name.
Example
When CA InterTest for CICS displays the source code for a nested program, the Nested=
field appears below the Program= field. The Nested= field is 30 bytes long, and indicates
the name of the nested program for the currently displayed source code. If you are
using the Source Listing facility to display a COBOL nested program and you press PF8 to
scroll through the entire source code of the program, the Nested= field changes each
time the source code for a different nested program is displayed.
The names of all nested programs within a specific COBOL program are listed at the end
of the Procedure Name Cross Reference section (Option # 7).
The Nested= field also indicates the nested program to which Option # 1, 2, 3, and 13
apply, and the nested program that CA InterTest for CICS searches first for any data
name or paragraph name that you specify in the Search= field. If a paragraph name or
data name is not found in the specified nested program, CA InterTest for CICS then
searches the main program.
Example
If Option # 2 and Nested=program2 are specified, the Working Storage section for
nested program program2 appears. Also, if Nested=program3 and Search=datanam1are
specified, nested program program3 is searched first for datanam1; if datanam1 is not
found, the main program is searched for datanam1.
When CA InterTest for CICS searches the symbolic files for the Assembler programs you
specified, the Symbolic Version List displays if multiple symbolic versions of a program
are found.
92 User Guide
Maintain Synchronized Processing
Once a symbolic file is selected for a program, CA InterTest for CICS continues to use the
selected file and bypasses subsequent date and time matching until all declared
breakpoints and monitoring options are removed from the program, or until a
CNTL=NEW,PROG=program command is executed. The New Copy option is also
available from the Program Monitoring menu, ITST Option 2.1.
Successful date and time matching for PL/I modules requires PL/I programs be
post-compiled using the following:
■ IN25SYMP from CA InterTest for CICS 5.3 or above (ESA systems) or CA InterTest for
CICS 4.4 (non-ESA systems)
■ The PL/I compiler installed TSTAMP=YES option, which is the default
Note: If PL/I programs were compiled with IN25SYMP from CA InterTest for CICS 5.3 or
5.4 and the program contains arrays, the program needs to be recompiled with the
IN25SYMP from the 6.0 release to display PL1 array variables during a program
breakpoint.
Once a symbolic file is selected for an Assembler program, CA InterTest for CICS
continues to use the selected file and bypasses subsequent date and time matching
until all declared breakpoints and monitoring options are removed from the program, or
until a CNTL=NEW,PROG=program command is executed.
94 User Guide
Maintain Synchronized Processing
The following screen shows a sample Symbolic Version List that appears when the LIST
or CNTL transactions cannot determine which symbolic file to use.
Specifies the name of the program being processed.
Displays the internal date and time from the COBOL or PL/I load module. This field
is not displayed for Assembler programs or for PL/I programs compiled
with a compiler that was installed with the TSTAMP=NO installation option.
Displays the names of each version of the symbolic file containing a copy of the
specified program.
Lists dates and times that each version of the symbolic file was compiled.
Displays the language of the compiled program.
Displays information about the version listed in the File ID column, and also explains
the reason for the date and time mismatch. Comments include:
Update Mode
Specifies the program is being updated by the batch post-compiler utility. It
could also mean that the PROTSYM ran out of space while a post-compiler was
processing this program.
Date and time Match
Specifies the program compile date and time matches the load module date
and time, but it is not the most recently compiled version of the program.
Latest Version
Specifies the program compile date and time is the most recently compiled
version of the program, but it does not match the load module date and time.
Lists the PF keys available from this screen.
PF1
Accesses the Help facility.
PF3
Exit the Symbolic Version List and ignore symbolic processing.
Can contain one of the following messages:
CAIN8000
The latest Symbolic version does not match the current load module.
Reason:
Multiple versions of the program exist, and the date and time in the current load
module does not match the most recently compiled program version. If an older version
of the program matches the load module's date and time, it is indicated by "Date and
time Match" in Comments.
Action:
If the load module is correct, and you did not forget to do a New Copy, select the
symbolic file that matches the load. If you recompiled your program and forgot to do a
New Copy, press Clear to cancel the request, and then New Copy the program and retry
the LIST or CNTL transaction.
96 User Guide
Maintain Synchronized Processing
CAIN8001
Reason:
Your CA InterTest for CICS symbolic files and program load module are out of sync. This
message also appears on the Source Listing Breakpoint screen when a breakpoint is
about to be displayed for a COBOL or PL/I program whose symbolic file compile dates
and times do not match the active load module's internal date and time.
Action:
Ensure that symbolic file members match the active load module. Causes include one of
the following items:
■ A program was recompiled and a New Copy was not performed.
■ One or more of your symbolic files are defined incorrectly or are not available. Use
VRPT transaction Option 3 to list the status of the symbolic files defined in your CICS
region.
CAIN8002
WARNING – Symbolic file date and time not equal to module date and time.
Reason:
Your CA InterTest for CICS symbolic files and program load module are out of sync. This
message appears when the LIST or CNTL transactions cannot find a matching load
module for a COBOL or PL/I program. This message also displays on the Source Listing
Breakpoint screen when a breakpoint is about to be displayed for a COBOL or PL/I
program whose Symbolic file compile dates and times do not match the active load
module's internal date and time.
Action:
Take the same Action specified for message CAIN8001.
CAIN8003
Reason:
A character other than S was specified. You must use S to select a symbolic file.
CAIN8004
No selection made.
Reason:
Enter was pressed but no selection was made. Use S to select a symbolic file or press
Clear.
CAIN8005
Reason:
You specified more than one S. Specify one S to select the symbolic file that you want to
use.
MAINMOD1 MAINMOD2
SUBPROG1 SUBPROG1
SUBPROG2 SUBPROG2
both MAINMOD1 and MAINMOD2 contain the same subroutines. To set unique
breakpoints on the subprograms, use the following procedure.
98 User Guide
Set Breakpoints
3. Overtype the current program to MAINMOD1, press enter, and type COMPOSITE
again.
This establishes the current composite load modules as MAINMOD1.
4. Overtype the current program to SUBPROG1 and set a breakpoint by typing U on
the desired location.
This sets an unconditional breakpoint on SUBPROG1 of MAINMOD1.
When a source listing breakpoint occurs in a subprogram, the current load module is
automatically set to the load module that owns the subprogram.
Set Breakpoints
A breakpoint halts execution of your program. CA InterTest for CICS halts the program
before the instruction at a breakpoint location is executed.
The following table shows the types of breakpoints that you can set in a program:
Breakpoint Action
Unconditional Stops at a specified program location.
Conditional Stops at a specified program location when a specified condition
is met.
Variable-change Stops when the value of a specified variable changes; for
COBOL and Assembler only.
Request Stops at a CICS command or macro or at calls to software.
Set breakpoints from the Source Listing Display prior to program execution, from any
breakpoint during program execution, or from the Monitoring menus at any time.
Remove Breakpoints
Remove user breakpoints as quickly as they were set. In addition to the previously
supported methods of removing breakpoints, use the Monitoring Status display to
quickly remove any type of breakpoint.
Remove automatic breakpoints only if the error is corrected. However, you can go
around the error and begin execution from another point.
Statement Tracing
Statement tracing causes CA InterTest for CICS to add entries to the statement trace
table for each executed statement. Then view the executed statements at any
breakpoint by stepping backward and forward through the trace table entries using the
PREV and ADVANCE commands. Statement tracing is only valid for COBOL programs and
is unrelated to the backtrace facility.
Set statement tracing from the Source Listing Display prior to program execution, from
any breakpoint during program execution, or from the Monitoring menus at any time.
Remove statement tracing using one of those methods. In addition, use the Monitoring
Status display to quickly remove statement tracing.
Data Monitoring
Data monitoring causes CA InterTest for CICS to capture data values for each statement
executed in a program. The captured data values are associated with an entry in the
statement trace table. Redisplay them at any breakpoint by stepping backward and
forward through the trace table entries using the PREV and ADVANCE commands. Data
monitoring requires that statement tracing be active and is only valid for COBOL
programs.
Set or remove data monitoring from the Source Listing Display prior to program
execution, from any breakpoint during program execution, or from the Monitoring
menus at any time.
2. Initiate the program as you normally would from CICS. Depending on the
breakpoints you set and the processing paths your program takes, one of the
following occurs:
■ CA InterTest for CICS stops the transaction at a breakpoint (either one you set
or one CA InterTest for CICS automatically triggered) because the program was
about to violate a CICS coding standard.
■ The application runs to completion without being stopped by CA InterTest for
CICS. The results might not be correct.
Note: If the program ends and you get incorrect results or need to test other logic paths,
initiate LIST again and set additional breakpoints before retesting the program. You do
not have to reset monitoring—it remains in effect until specifically removed.
Breakpoint Activities
The chapter "Breakpoint Activities" explains all of the ways you can use CA InterTest for
CICS at a breakpoint.
The first sections of this describe how to set each type breakpoint type, giving
alternative methods from the Source Listing and the menus. The later sections discuss
how to remove the breakpoints.
Set Breakpoints
A breakpoint halts execution of your program. CA InterTest for CICS halts the program at
a breakpoint location before the instruction executes.
The following table shows the types of breakpoints that you can set in a program:
Breakpoint Action
Unconditional Stops at a specified program location.
Conditional Stops at a specified program location when a specified condition
is met.
Variable-change Stops when the value of a specified variable changes.
Request Stops at a CICS command or macro or at calls to software.
Setting a breakpoint automatically sets monitoring for that program, so if you are
setting a breakpoint before you execute a program, you do not need to set monitoring
for the program.
Procedure Division, the Assembler CSECT, or PL/I program. This gives you the
opportunity to set the execution pace and to determine the program path that you want
to take during testing. If program control is passed from another program, examine the
COMMAREA at this point.
Often, breakpoints are set at the following locations for debugging purposes:
■ At paragraph names to examine variables at the start of the sections
■ Before a branch to dynamically control the program path during execution
■ At each location named in an EXEC CICS HANDLE CONDITION to verify error
handling
An easy way to track data items during testing is to set a variable-change breakpoint on
troublesome data, and then add the data item to a Keep window.During program
execution, the program stops each time the variable’s value changes, and its value
displays at the top of your screen in the Keep window.
Unconditional Breakpoints
This section reviews setting unconditional breakpoints from the Source Listing and from
the menus.
3. Press Enter to set the breakpoints. CA InterTest for CICS flags each unconditional
breakpoint with U.
If you used Option # 12 to set Breakpoint Options, the Breakpoint Locations Menu
appears. Using this menu specify your options for the breakpoint. Complete the
menu. For details, see n (see page 111) later in this chapter. After completing this
menu, press Enter to set the breakpoint and return to the Source Listing display or
breakpoint.
Note: If you want to recompile your program and keep the same breakpoints in the
recompiled version, set breakpoints next to paragraph names or labels, not lines of
executable code. Then, use the CA InterTest for CICS New Program Copy function,
explained in the chapter "Monitoring Menu Options," to transfer the breakpoints to the
same paragraph names or labels in the recompiled program. If you set breakpoints at
lines of executable code, New Program Copy transfers the breakpoints to the same
statement numbers or offsets in the recompiled program, which might not be what you
want.
If you compiled or assembled your program with the post-processor parameter value,
LISTER=ALL, you can set unconditional breakpoints using the Cross-Reference section.
This method sets breakpoints at all references to the selected data name. To use this
method, follow these steps:
1. Display the Cross-Reference section using the Option # field.
2. Enter u in column 1 next to the data name.
3. Press Enter to set the breakpoints. CA InterTest for CICS sets the breakpoints at all
references to the COBOL, Assembler, or PL/I data name. Then, CA InterTest for CICS
displays the U-breakpoint indicators in the Cross-Reference section and on the lines
in the Procedure Division or CSECT where the data name is referenced.
To set breakpoints at all paragraph names, labels, or procedure names, follow these
steps:
1. Display the Procedure Names section using the Option # field.
2. Enter a u next to the:
■ Procedure-Names line in the COBOL Cross-Reference listing
■ Symbol line in the Cross-Reference section of the Assembler listing
■ Declare line in the Xref section of the PL/I listing
3. Press Enter.
4. When prompted, press PF3 to confirm the request for multiple breakpoints. The
breakpoints apply to all paragraph names, labels, or PL/I procedures.
To set one or more unconditional breakpoints from the menus, follow these steps:
1. Access the Primary Option Menu, and select Option 2 Monitoring.
2. If you already set monitoring for the program, transaction, or terminal, repeat the
entry that duplicates the monitoring request. Check this by viewing the Monitoring
Status display. In most cases, this is Option 1 Program.
If you have not set monitoring, select whether you want to monitor a program
(option 1), transaction (option 2), or terminal (option 3). Most users monitor the
program.
3. On the Program, Transaction, or Terminal Monitoring Menu:
■ Complete the top part of the Monitoring menu to specify (or duplicate) how
the program, terminal, or transaction will be monitored.
■ Complete the bottom part of the menu by entering s next to the UBP option for
Unconditional Breakpoints.
■ Press Enter to process your request.
Examples
The following screen shows the entries on the Program Monitoring (2.1) Menu to set an
unconditional breakpoint for the program COBDEMO being monitored by user ID
BARNEY1.
COMMAND ===>
More: +
Option Description
_ Status Display and/or remove monitoring options (S only)
_ Monitor Monitoring (R removes monitoring and all options previously set)
s UBP Unconditional breakpoints (specific program only)
_ CBP Conditional breakpoints (specific program only)
_ RBP Breakpoints for CICS, DB2, DL/I or external CALL requests
.
.
.
If you select UBP from the Monitoring submenu, the Breakpoint Locations screen
appears. COBOL, PL/I, and Assembler versions of the Breakpoint Locations screen are
available. The following screen is the COBOL version, which shows Set Breakpoint
Locations for a COBOL Program at statement #1
To set breakpoint locations, enter the locations in fields through . You can specify
up to nine breakpoints.
■ For a COBOL program, this can be a paragraph name or data name , a statement
number , or the hexadecimal displacement (offset) from the beginning of the
program .
■ For an Assembler program, breakpoint locations can be Assembler labels, data
names, or offsets.
■ For a PL/I program, breakpoint locations can be offsets or, if you have the PL/I
symbolic option, PL/I labels or statement numbers. PL/I labels can be qualified by
Procedure Name using the syntax: Procedure-Name:Label.
Example
If you specify 3, the breakpoint occurs every third time the program passes through the
loop.
■ Specify in field the ID of the terminal where the program must be executing for
breakpoints to take effect. If you leave this field blank, it defaults to your current
terminal. Enter .ANY to have breakpoints take effect at all terminals, even when the
program executes without a terminal. Enter .NO to have breakpoints take effect
only when the program executes without a terminal.
■ Specify in field the ID of the terminal to receive breakpoint displays. If you leave
this field blank, it defaults to your current terminal. Enter .ANY to have breakpoint
screens displayed at the terminal where the program is executing when the
breakpoints occur.
■ Specify in field the statement number of the indirect command that you want to
invoke at the breakpoint you have set.
■ Specify in field the CICS ID of the user who must execute the program for the
breakpoint to take effect. Valid entries are a specific CICS user ID or .ANY. The
default varies depending on your installation option settings for DFLTUSER.
■ When you have entered all the necessary information, press Enter.
Example
The following example shows how to set unconditional breakpoints at four locations in
the COBOL program COBDEMO.
Para/Data return transid_________________ ______________________________
Names: _______________________________ ______________________________
_______________________________ ______________________________
Statement
Numbers: 1____ 136__ 174.2 _____ _____ _____ _____ _____
Because the user ID field is specified as BARNEY1 and the terminal identification fields
are left blank, these breakpoints take effect only if COBDEMO is executed by the user ID
BARNEY1. The breakpoints display at whatever terminal BARNEY1 is signed on under
CICS.
Conditional Breakpoints
This section reviews setting conditional breakpoints from the Source Listing and from
the Menu.
Another way of specifying the same condition for multiple locations in your program is
to use the ITST menus to specify both the locations and the conditions. For details, see
Set Conditional Breakpoints from the Menus (see page 115) later in this chapter.
The For Location field indicates the statement number with the source code at which
you specified c on the Source Listing display. Typing an S in the drop monitoring on a
true condition field causes monitoring to be dropped for the rest of the current task
when the conditional breakpoint is true.
Note: The For Location field does not display when you specify the location using the
menus.
Press Enter after completing the Conditional Breakpoint menu. CA InterTest for CICS
sets the conditional breakpoints and returns you to the Source Listing display.
Notes:
■ Conditional Breakpoint menus for Assembler and PL/I programs and the complex
Conditional Breakpoint menu for COBOL programs have additional entry fields.
■ To replace an unconditional breakpoint with a conditional breakpoint, you must
first remove the u before specifying the c. To remove the u, overtype it with x, and
press Enter. To place a conditional breakpoint at that location, enter c where the u
was, and press Enter.
More: +
Option Description
_ Status Display and/or remove monitoring options (S only)
_ Monitor Monitoring (R removes monitoring and all options previously set)
_ UBP Unconditional breakpoints (specific program only)
s CBP Conditional breakpoints (specific program only)
_ RBP Breakpoints for CICS, DB2, DL/I or external CALL requests
.
.
.
First, CA InterTest for CICS displays the Conditional Locations screen shown next.
This screen is similar to the screen used to specify unconditional breakpoints, and you
should enter the information in the same way. For details, see Set Unconditional
Breakpoints from the Menus (see page 108) later in this chapter.
One special feature lets you set a conditional breakpoint at all instructions. Enter an x in
the All Instructions field to request this option, as shown in the previous example. If you
request the All Instructions option and set a variable-change breakpoint, the breakpoint
takes effect whenever the value of the variable changes.
After specifying the breakpoint locations, press Enter to display the Conditional
Breakpoint screen. On this screen specify the condition that must be satisfied for the
breakpoint to take effect.
There are two versions of the Conditional Breakpoint screen: a simplified version for
COBOL users, and a detailed version for PL/I and Assembler users and for those COBOL
users who prefer this version. Using either version you specify the condition in this
format:
Field specifies the left side of the comparison, which is a data name.
EQ for equal
Field specifies the right side of the comparison, which can be a data name, literal or
figurative constant.
Variable-Change Breakpoints
COBOL and Assembler users set a conditional breakpoint to take effect whenever the
value of a variable changes. To do this, type x in the All Instructions field on the
Conditional Locations screen.
COBOL users must specify the variable name in fields and on the Conditional
Breakpoint screen. The condition for a variable-change breakpoint is:
variableA NE variableA
Assembler users must specify the variable name in fields and on the Detailed
Conditional Breakpoint screen, as discussed in The Detailed Conditional Breakpoint
Screen (see page 121) later in this chapter.
The operator entered in field determines whether the breakpoint occurs whenever
the value of the variable changes (NE), or only when the value increases, decreases, or
does not change. Whenever you re-execute the program, the initial value of the variable
resets to its value at the beginning of program execution.
Literal Formats
Specify four types of literals for the right side of the comparison:
Character Specify character literals for comparisons with any field except a COBOL
data name defined as COMP or COMP-3. Enter the literal as C'character
data' , X' hexadecimal data', or a combination of both. For example,
C'ABC', Xv0102',or C'ABC'X'0102'.
Packed Specify packed decimal literals for comparisons only with COBOL data
names defined as COMP-3. Enter the literal as P'number'. The number
can be preceded by a minus sign. For example, P'123' or P'-123'.
Halfword Specify halfword literals for comparisons with COBOL data names
defined as COMP with a length of four, as in S9(4) COMP. Enter the literal
as H'number'. The number can be preceded by a minus sign. For
example, H'12' or H'-12'
Fullword Specify fullword literals for comparisons with COBOL data items defined
as COMP with a length of eight, as in S9(8) COMP. Enter the literal as
F'num'100' or F' -100'.
Figurative Constants
Specify the following figurative constants for the right side of the comparison:
Example
The following screen shows how to set a conditional breakpoint in a COBOL program:
■ The left side of the comparison specifies the data name TOLEN.
■ The relational operator is LT (less than).
Enter OPERATOR (EQ, NE, GT, LT, GE, LE): lt
This breakpoint takes effect only if the value in the data name TOLEN is less than 80. The
breakpoint locations are all the instructions, as previously specified on the Conditional
Locations screen.
Enter OPERATOR (EQ, NE, GT, LT, GE, LE): __ Length: Left __ Right __
Specifies the left side of the comparison that must be an area of core. Enter
information in one of the following fields:
■ Data name
■ Register
■ COBOL BLL cell
■ Area identified by a CORE keyword
Specifies the relational operator:
EQ for equal
NE for not equal
GT for greater than
LT for less than
GE for greater than or equal to
LE for less than or equal to
/
Optionally define the length of the left side or right side of the comparison. (See the
Length of the Comparison section for details.)
Specifies the right side of the comparison, which is an area of core or a literal. Enter
information in one of these five fields: a data name, a register, a COBOL BLL cell, an
area identified by a CORE keyword, or a literal. For more information, see the CORE
Keywords section and the Literal Formats (see page 118) section later in this
chapter.
Optionally adjusts a CORE location by specifying offsets (displacements). Each offset
must be preceded by one of the following operands:
■ +
■ -
■ @–Indirect addressing below the 16-megabyte line
■ %–Indirect addressing above the 16-megabyte line (XA systems only)
Note: Literals cannot be modified by offsets.
For PL/I and Assembler version of this screen, the text line reads:
Use HELP or documentation for use of special keywords
You can explicitly define how many bytes of either the left side or right side specification
should be compared. Certain storage locations have implicit lengths:
■ A register or COBOL BLL cell has an implicit length of four bytes.
■ The storage locations referred to by the CORE keywords MXR, MXS, and TAL have
implicit lengths of four bytes.
■ The implicit length of a COBOL data name is its field length as defined in the DMAP.
■ The length of a literal is the number of bytes it contains; any length specification is
ignored.
Define both left side and right side lengths for a packed decimal (COMP-3) comparison.
For all other comparisons, define only one length. If you define both lengths, the smaller
length is used.
The maximum permissible length for the left side or right side is 16 bytes for packed
decimal data, and 255 bytes for all other data types.
Literal Formats
For details on specifying literals, see Figurative Constants (see page 119) earlier in this
chapter.
CORE Keywords
Specify the following CORE keywords on the left side or right side of the comparison:
Keyword Function
CMAR First byte of the EXEC CICS communications area for the task
CSA First byte of the CSA
CURR Next Assembler instruction to be executed
CWA First byte of the CWA
CWK First byte of the COBOL program's Working-storage
DSA First byte of program's DSA
ITBE First byte of the next instruction to be executed
LCL First byte of the COBOL program's local-storage
MXR CA InterTest for CICS maximum CICS request counter (implicit length =
4)
MXS CA InterTest for CICS maximum storage counter (implicit length = 4)
OPFL First byte of the Optional Features List
PGM=* First byte of the monitored program.
PREV Last Assembler instruction that was executed
Rnn A register (nn is a decimal from 1 to 15) (implicit length = 4)
TAL CA InterTest for CICS tally fullword (implicit length = 4)
TERM=* First byte of the terminal table entry of the current terminal
Keyword Function
TGT First byte of the COBOL TGT for the monitored task
TIOA First byte of the first TIOA of the task
TWA First byte of the TWA of the monitored task
Variable-Change Breakpoints
A variable-change breakpoint is a special type of conditional breakpoint that takes effect
when the value of a specified COBOL or Assembler variable changes. If you set a
variable-change breakpoint while the variable is also listed in the Keep window, the
variable's new value immediately appears at the top of the breakpoint display when the
breakpoint is triggered.
To set a variable-change breakpoint from a Source Listing screen, follow these steps:
1. Enter v in position 1 of any line in the program listing that defines or references the
variable.
2. If the statement references the variable, place the cursor under any character in the
variable name. (Omit this step if the statement defines the variable.)
3. Press Enter.
To set a variable-change breakpoint for a variable in the Keep window, follow these
steps:
1. Enter v next to the variable name in the Keep window.
2. Press Enter.
Set variable-change breakpoints before or during program execution. If you set the
breakpoint before execution, the variable's initial value is its value when it first becomes
known to CA InterTest for CICS during execution. Any change from this initial value
triggers the variable-change breakpoint.
Set Conditional Breakpoints from the Menus (see page 115) explains how to set
variable-change breakpoints when the value of a variable increases or decreases.
Request Breakpoints
This section reviews setting request breakpoints from the source listing and from the
menus.
Set request breakpoints easily from the source listing by entering the RBP command.
Once set, request breakpoints are identified by an R during program execution. Set
them also from the Monitoring menus and they are most easily removed from the
Monitoring Status display (STATUS command).
After completing the RBP menus, press PF4 Return until CA InterTest for CICS returns
you to the Source Listing display.
The following screen shows how to complete the Program Monitoring Menu (2.1) to set
request breakpoints for the COBDEMO program being monitored for the user ID
BARNEY1.
More: +
Option Description
_ Status Display and/or remove monitoring options (S only)
_ Monitor Monitoring (R removes monitoring and all options previously set)
_ UBP Unconditional breakpoints (specific program only)
_ CBP Conditional breakpoints (specific program only)
s RBP Breakpoints for CICS, DB2, DL/I or external CALL requests
After specifying the RBP command from the Source Listing screen or completing the
monitoring menu with the RBP option selected, CA InterTest for CICS displays the
Request Breakpoint Selection menu.
The program halts prior to all CICS commands.
The program halts prior to all DL/I calls.
The program halts prior to all calls to DSNHLI (for DB2 users) or prior to all calls to
ARIPRDI (for SQL/DS users).
The program is halted prior to calls to software that CA InterTest has been
instructed to recognize at installation time. A second screen, where you specify the
calls, displays.
If you select a type of CICS command, CA InterTest for CICS displays a second
screen. For example, if you select File Control, CA InterTest for CICS displays the File
Control screen.
If you do not want the program to halt before every occurrence of a command,
specify in this field how often the program should be halted. For example, if you
specify 3 the breakpoint occurs every third time the program reaches the
command. This feature is especially useful when a CICS command occurs within a
loop; for example, during a browse.
Specify the ID of the terminal where the program must be executing for breakpoints
to take effect. You can generally leave this field blank and have the default location
apply.
■ Enter .ANY to have breakpoints take effect at all terminals—even when the
program executes without a terminal.
■ Enter .NO to have breakpoints take effect only when the program executes
without a terminal.
Specify the ID of the terminal to receive breakpoint displays. You can generally
leave this blank, and have the default location apply. Enter .ANY to have breakpoint
screens displayed at the terminal where the program is.
Specify the first indirect command statement number to take effect at this
breakpoint.
For secure CICS regions, specify the CICS user ID of the user who must be executing
the program for the request breakpoints to take effect. If you do not have a secure
CICS system, leave this blank.
Note: Your version of this screen may differ slightly depending on CA InterTest for
CICS installation options.
When you have entered all of the necessary information, press Enter. If you entered an
x next to a type of command, CA InterTest for CICS displays a second screen.
Example
If you selected File Control as the previous screen illustrates, CA InterTest for CICS
displays the following screen.
x READ
x WRITE
_ REWRITE
_ DELETE
_ UNLOCK
_ STARTBR
_ READNEXT
_ READPREV
_ ENDBR
_ RESETBR
Using this screen specify that the program be halted at all File Control commands or
macros, or select specific File Control commands. In this example, the user specified that
program COBDEMO be halted at all READ and WRITE commands.
Remove Breakpoints
There are several ways to remove breakpoints. One of the easiest is to enter an R next
to any breakpoint entry on the Monitoring Status display.This section discusses two
other ways of removing breakpoints:
■ From your Source Listing Breakpoint or Display
■ From the Monitoring Menus (using STATUS command)
Important! If the program is being monitored for .ANY user, remove the breakpoints
instead of the monitoring entry. Removing monitoring for a program that others might
also be testing is risky.
Note: If you set more than one type of breakpoint at the same location, CA InterTest for
CICS flags and intercepts only one at a time—the first one you set. Once you remove the
first one, the next one you set is flagged and activated, and so on.
Note: An easy way to remove any breakpoint is to enter an r next to its entry on the
Monitoring Status display (STATUS command).
.
2. Enter r next to the UBP Option for Unconditional Breakpoints and press Enter
The Remove Breakpoint Locations screen appears. COBOL, PL/I, and Assembler versions
of the Breakpoint Locations screen are available. The screen is the COBOL version.
Term ID (or .ANY or .NO) where breakpoints will take effect: ____
Term ID (or .ANY) that will receive the breakpoints: ____
To remove all unconditional breakpoints from a program, enter .ALL in field and press
Enter. To remove one or more breakpoints, specify its ID number as shown on the
Monitoring Status display in field and press Enter, or enter the information that you
originally defined in fields through on the Set Breakpoint Locations screen and
press Enter.
Note: An easy way to remove any breakpoint is to enter an r next to its entry on the
Monitoring Status display.
Term ID (or .ANY or .NO) where breakpoints will take effect: ___
Term ID (or .ANY) that will receive the breakpoints: ____
To remove all conditional breakpoints from a program, enter .ALL in field of this
screen and press Enter. To remove one or more conditional breakpoints, enter the
breakpoint ID numbers listed on the Monitoring Status display in field and press Enter,
or specify the information that you originally defined in fields through on the Set
Conditional Breakpoints screen and press Enter.
Note: An easy way to remove any breakpoint is to enter an r next to its entry on the
Monitoring Status display.
The Remove Request Breakpoints screen appears. Enter the information exactly as you
originally defined it.
Indicates the type of breakpoint that occurred:
A Automatic, detected by CA InterTest for CICS
U Unconditional
C Conditional
V Variable-change
R Request
Indicates the statement or offset where the breakpoint occurred.
These lines tell you why an automatic breakpoint occurred. For additional
information, press PF1. To remove these lines, press Enter or scroll using PF7 or PF8
to see additional lines of source listing code.
Note: You cannot use this command line to enter CA InterTest for CICS system-wide
CNTL options.
COUNTS RESET None Resets the program code coverage statement counters to
zero.
COUNTS op None Turns on the code coverage COUNTER display and highlights
value program statements that match the criteria. The source
listing is repositioned to the first statement matching the
criteria.
Op values: EQ or =, NE or <>, LT or <, GT or >, LE or <= or =<,
GE or >= or =>
Values: 0 to 9999
NEXT OVER None Continue the test session when stopped on a PERFORM or
CALL until the statement following the PERFORM or CALL is
encountered, where a break point occurs.
NEXT RETURN None Continue the test session when stopped within a paragraph
or subroutine until the session encounters the statement
following the PERFORM or CALL that invoked the current
paragraph or subroutine, where a break point occurs.
TRACE ON must be enabled.
>{nnnn} None Used in the Keep window to scroll data item storage right
nnnn bytes.
PF Key Function
PF1 Help Displays a Help menu relating to the current Source Listing
Breakpoint screen.
PF2 Unassigned.
PF3 Det Bkpt Displays the Breakpoint Information screen for the current
breakpoint. This function is available only at a breakpoint.
PF Key Function
PF4 Profile Displays the Source Listing Profile screen.
PF5 Resume Continues program execution at the next sequential instruction.
This function is available only at a breakpoint.
PF6 Menu Displays the Breakpoint Primary Options Menu discussed in this
chapter.
PF7 Backward Scrolls the compiler output backward one page or the amount set
on the source listing profile. Does not apply within the Keep
window.
PF8 Forward Scrolls the compiler output forward one page or the amount set on
the source listing profile. Does not apply within the Keep window.
PF9 Unassigned
PF10 001 Verb 001 Verb/Instr/Stmt or Autostep single steps or auto steps through
execution, as indicated by the PF key label. Use PF4 to specify the
stepping function and amount on the source listing Profile. This
function is available only at a breakpoint.
PF11 Backtrace Displays the Backtrace Summary. This function is available only at a
breakpoint.
PF12 Status Displays the Monitoring Status for the current program. Remove
breakpoints and monitoring directly from the Status report.
To find out what caused the error and for instructions on how to fix it, press PF1 from
any automatic breakpoint display with the error message displayed. CA InterTest for
CICS Help provides additional information about the specific error. In most cases, Help
recommends how to handle the error.
Example
The following screen explains how to correct an AEIL abend:
WHAT YOU CAN DO: If the named file was entered incorrectly and the one you
wanted exists, you may use the Replace File Option to dynamically replace the
file name and then use the resume task facilities to execute the CICS request
again. To perform the above functions from the Source Listing Breakpoint screen
you would:
--------------------------------------------------------------------------------
ENTER N FOR NEXT PAGE, P FOR PRECEDING PAGE, F FOR FIRST PAGE, OR
M FOR RETURN TO PREVIOUS MENU. PRESS CLEAR TO EXIT. SELECTION ==> N
Note: When you leave and then return to an automatic breakpoint screen, the error
message may no longer appear. For help on the cause of the error, press Clear to
redisplay the error message before pressing PF1.
Important! Use this function with care! It bypasses monitoring only of the individual
Assembler instruction. For high-level COBOL or PL/I programs, there might be more than
one Assembler instruction per statement, which could trigger more than one automatic
breakpoint for a single statement. As a result, you might have to invoke this function
more than once to continue past a statement stopped at an automatic breakpoint.
Temporary Override
To temporarily bypass the monitoring of a statement that triggered an automatic
breakpoint:
1. Press PF6 to display the Breakpoint Primary Option Menu.
2. Select Option 5 Override Automatic Breakpoint.
Note: For fast-path entry, enter =5 on the command line of the Breakpoint display.
The override lets the statement that caused the breakpoint to be executed for this
instance, only.
Permanent Bypass
To permanently bypass the monitoring of a statement that triggered an automatic
breakpoint:
1. Overtype the A on the Source Listing Breakpoint with b.
2. Press PF5 or PF10 to resume execution. This lets the statement causing the
breakpoint to be executed; that is, the bypass function lets the error to occur.
Search for data using the Search=field, or by entering a FIND or LOCATE command on
the command line. If you know the line number, hex number, or the label that you want
to view, use the line commands to position the listing accordingly. For details, 8 (see
page 148) later in this chapter.
For COBOL nested programs, CA InterTest for CICS first searches the current nested
program (indicated in the NESTED= field) for the specified data item. If the data item is
not found in the indicated program, CA InterTest for CICS then searches the main
program and other nested programs for the item.
Note: It is not necessary to enter the entire data item, label, or paragraph name; enter
the first few characters to begin your search.
Example
If you wanted to search for TASKNUM, you could enter TASK, TASKN, and so on, in the
Search= field.
FO hex-number
Hex-number
Indicates any hex number within an Assembler program.
CS
The following screen shows four data items displayed, in hexadecimal format, in the
Keep window on the source listing breakpoint display.
---------------------------------------------------------------------------
| TASKNUM | 000000
| TASKIDNO | 000F
| TASKDATE | F0F961F1 F561F8F9
| VARLENGTHDATA | 00
----------------------------------------------------------------------------
_ 00880 CONTINUETASK.
00881**** TASKNUM *NOTE* FIELD MUST BE INITIALIZED
A ==> ADD +1 TO TASKNUM.
==>
==> ASRA abend (0C7) detected and prevented. Caused by invalid decimal
==> arithmetic data format.
==>
==> Press PF1 for a detailed description.
==>
_ 00883 IF TASKNUM = 1
_ 00884 MOVE 'DMAPASR' TO MAPNAME.
Note: Data items remain in the Keep window until you remove them or until you turn
off CA InterTest for CICS monitoring for the program—except for items added using the
AUTOKEEP facility. AutoKeep items appear in high intensity in the Keep window;
permanent Keep items appear in low intensity.
Using AUTOKEEP
AUTOKEEP lets you to display items in the Keep window concerning the currently
highlighted line, in addition to any data items you requested displayed permanently.
AUTOKKEEP is active when the IN25OPTS parameter SLBAKEEP is set to Yes, which is the
default. However, use the Source Listing Profile Screen to turn AUTOKEEP off or on
again at any time.
Remove Items
To remove a data item from the Keep window, follow these steps:
1. Enter x to the left of the data item.
2. Press Enter.
When all data items are removed, the command line and the Keep window are replaced
by the options and PF key functions.
View and Change Main Storage Display from the Keep Window
When the Keep window is active, CA InterTest for CICS replaces the title lines for the CA
InterTest for CICS options and PF key functions with expanded source display area. This
is the No Titles format. The No Titles format lets you to use CA InterTest for CICS
commands and the options and PF keys to perform CA InterTest for CICS functions.
■ To see the options and PF key functions, enter PROFILE in the command line and
press Enter
■ To exit the Profile, press Enter
For each item in the Keep window, CA InterTest for CICS displays the data name and its
value in main storage in hexadecimal or character format depending on the SDF profile
setting. Use the PF2 key to toggle between hexadecimal and character formats.
To modify data values using a pre-formatted MOVE command, follow these steps:
1. Enter m in column 1 to the left of the item listed in the Keep window.
2. Press Enter to make the change. CA InterTest for CICS displays the MOVE command
screen. For details, Display or Modify Main Storage (CORE) (see page 152) later in
this chapter.
An effective debugging tool is to observe data values in the Keep window as you
single-step through execution using PF10. You may also have CA InterTest for CICS
automatically repeat single-stepping every few seconds. Use the Profile display to set
the PF10 value for automatic single-stepping.
Note: When you request main storage displays directly from your breakpoint screen, CA
InterTest for CICS responds with a structured display whenever the request is for a data
item defined in a structure.
The first three functions are discussed in the sections that follow; displaying and
modifying program registers are discussed in the chapter "Source Listing Facility."
Note: Keep storage items displayed directly on your Source Listing Breakpoint screen by
using the Keep window. For details, The Keep Window (see page 148) earlier in this
chapter.
To display the value of a data item from where it is defined, follow these steps:
1. Enter d to the left of the line defining it. For multiple data items, enter d next to the
definition of each item that you want to display.
2. Press Enter. CA InterTest for CICS responds with a main storage display.
If you requested more than one item for display, CA InterTest for CICS responds with a
structured CORE storage display for the first item selected. The message line on the
screen prompts you to press Clear to view the next item, or press PF3 to cancel the
remaining requests. After the last item is displayed, press Clear to return to the Source
Listing Breakpoint display.
To display the value of a data item from where it is used in the code, follow these steps:
1. Enter d to the left of any line in the compiled listing that contains the item.
2. Move the cursor under any alphanumeric character in the data item.
3. Press Enter.
CA InterTest for CICS responds with a main storage display. The first field on the display
screen is the value of the data item you requested.
Example
To display the value of TASKNUM from the Automatic Breakpoint screen shown next,
overtype the A with d, move the cursor under any letter in TASKNUM, and press Enter.
CA InterTest for CICS produces the following display of main storage for TASKNUM:
______________________________________________________________________________
_
PFKEYS 1 Help 2 3 End 4 Return 5 6 Menu
7 Backward 8 Forward 9 Caps Off 10 11 Redisplay 12 Structure
CORE='TASKNUM'
CAIN0452 FIELD DOES NOT CONTAIN A VALID PACKED DECIMAL (COMP 3) VALUE
Important! If you enter d to the left of a statement and forget to place the cursor under
the data item, you will see the object code for the statement instead. Press Clear or PF3
to return to the Source Listing Breakpoint.
Use this method to correct invalid data or data that was not initialized. Remember that
these modifications are dynamic—they are one-time fixes that do not prevent the same
error from occurring again.
Example
In the previous screen, you could initialize TASKNUM by overtyping the final 0 in the
hexadecimal field for TASKNUM with C and pressing Enter.
Notes:
■ Display and modify task-related and system-related areas of CICS main storage
using the CORE facility menus or commands.
■ If you try to change a password-protected storage area not owned by your
program, CA InterTest for CICS prompts you to enter the password.
CA InterTest for CICS provides a preformatted MOVE command that lets you easily
modify the value of a COBOL or PL/I data item. Request the MOVE command from the
following places:
■ Where the data item is defined in the source listing
■ A Keep window
■ Any place in the listing where the data item is referenced
To modify a data item from the statement where it is defined or from a Keep window,
follow these steps:
1. Enter m to the left of the statement. To modify more than one data item, enter m
next to each item in the order in which they appear.
2. Press Enter. CA InterTest for CICS generates a fill-in-the-blank MOVE command for
each data item selected.
3. Press Enter. CA InterTest for CICS generates a fill-in-the-blank MOVE command for
each data item selected.
Note: This function is not supported for Assembler users.
Example
If you enter m to the left of the fields TASKNUM and TASK-TEXT from their definitions in
Working-storage and press Enter, CA InterTest for CICS displays the following formatted
MOVE commands.
MOVE ________________________________________________________________
to
TASKNUM
MOVE ________________________________________________________________
to
TASKTEXT
2. Press Enter to execute the MOVE command. CA InterTest for CICS responds with a
main storage display showing the result of the first MOVE. For multiple moves, the
storage displays are shown one at a time; press Clear to process the next one.
Note: If you do not press Clear, the remaining MOVE commands will not execute.
3. From the CORE display, press Clear or PF3 to return to the source listing breakpoint
display.
Note: All modifications to main storage are dynamic. This means that the changes are
one-time fixes to current values, and will not prevent the same error from occurring
again. For a more permanent correction, specify a set of indirect commands to be
executed at a particular program location. For details, Indirect Commands (see
page 187) later in this chapter.
Note: This feature is only valid for COBOL programs. Use the Backtrace facility for
tracing information for other languages.
Use the DATAMON command, or DM, to enable data monitoring for a program. Since
the statement trace facility is required for data monitoring, it will also be enabled if it is
not already active. Once data monitoring is active, CA InterTest for CICS captures the
data values for each statement in the program, as it is executed.
Use the PREV, or P, command to cause the display to back up one or more entries in the
statement trace table. Consider the following breakpoint:
The PREV command will back up to the previous entry in the table, resulting in the
following display:
Statement number 524 was the last statement executed prior to the abend at
statement number 533. To back up 10 entries in the table, specify PREV 10. After using
the PREV command to back up one or more entries in the statement trace table, use the
ADVANCE, or A, command step forward through the table. Return at any time to the
current statement using the CS command or the clear key.
In general, past data values are not captured for database areas or CICS task areas.
However, a few of these areas, such as DFHEIBLK or SQLCA, are defined within the
COBOL program and, therefore, reside in COBOL storage. For these areas, display past
data values by specifying the data name defined in the COBOL program. If the CORE
keyword is used (for example, CORE=EIB), current data values are displayed.
Usage Notes
Data monitoring is very CPU intensive and requires a significant amount of storage over
and above the storage required by the programs being monitored. Compute the storage
requirements as follows:
If you should encounter storage problems while using the data monitoring feature,
perform one or more of the following actions:
■ Reduce the use of data monitoring in the region
■ Make the STMTTRCE value smaller in the default options table, IN25OPTS
■ Increase the EDSALIM for the CICS region
As the Auxiliary Storage Menu shows, this facility enables you to examine or modify
files, DB2 and SQL/DS databases, DL/I databases, and CICS temporary storage and
transient data records.
Note: If you type FILE on the command line of a breakpoint display, you bypass this
menu and go to the initial file facility display. To access the Auxiliary Storage menu from
a Breakpoint, type ITST on the command line; then select option 4 from the Primary
Option Menu.
FILE at a Breakpoint
Use FILE at a breakpoint to add test records. For example, you can have 12 records in a
test file, one for each of 12 test conditions. However, when you get to a breakpoint you
realize there is another test condition. To test the condition in the current test run and
have a complete test file for future runs, go to FILE, add another test record, return to
the breakpoint, and continue program execution so the program reads the new record.
If you are using FILE, you do not have to enter a record from scratch. Retrieve a current
record, modify it, and then add it as a new record to the file.
Example
If you are stopped at a breakpoint and you use FILE to change the record that your
program is processing, the change you made using FILE is not automatically reflected in
your program's main storage because your program has already read the record.
To make the change in main storage, return to the breakpoint screen, and do one of the
following actions:
■ Instruct the program to read the record again
■ Repeat the changes to main storage that you made to the record or database
Note: If multiple fields need to changing, select multiple items for display or
modification from the Working-storage or Local-Storage section of a COBOL program.
To return to the breakpoint display after using FILE, press PF3 or Clear. (If you also
accessed the CA InterTest for CICS CNTL, CORE, or Help facilities, you might need to
press Clear more than once.)
Changes to data using FILE are permanent updates to the records or database. It is as if
you wrote a batch program to perform the updates.
Notice that from the Breakpoint Primary Option Menu, Option 1 Main Menu takes you
to the Primary Option Menu.
Access
To access the Breakpoint Primary Option Menu from any Breakpoint, enter MENU on
the command line or press PF6 Menu.
PF1 Help
To get details on using any of these options, press PF1 for help.
Press PF3 End to exit this menu and return to your breakpoint display.
In the following example the CALLTRACE was issued while program C370SUB2 was
stopped at a breakpoint. The CALLTRACE screen shows how program C370SUB2
received control.
Select any program in the list having symbolic data by typing an S to the left of the
program name. The source listing display facility runs in a special mode and positions
the listing at the point where it transferred control.
Once the source listing display is in calltrace mode, display program variables the same
way as they are for the currently breakpointed program.
For IBM CICS Transaction Server, also display the active channels and containers for any
program level by entering a c next to any program and pressing Enter.
To display the channels and containers, use one of these two commands:
■ Enter the CHANNEL command on the command line from any breakpoint
■ Enter a c line command next to any program in the CALLTRACE display
Each entry in the display represents a container, or in the case of larger containers, a
segment of a container. The display shows the following information:
Field Description
Channel The name of the channel in which the container has been
stored
Container The name of the container, or the segment offset withing
the container
Curr An X indicates that this container was passed to the current
program
CPGID The code page identifier for this container in EBCDIC format
Length The full length of the container
Field Description
Character Data An EBCDIC display of the first twenty-two bytes of each
container or segment
To view the storage within a container or segment, place an s on the line next to that
container or segment and press Enter.
Select any piece of storage from the list resulting in a core dump of the selected area.
At the time the screen is built each piece is inspected to see if there is valid leading and
trailing crumple zone. If not, a message is produced indicating there is a corrupted
storage area, the list shows an * next to the corrupted areas.
In addition to the Backtrace PF keys, all other source listing options (such as the Keep
window), setting and removing breakpoints, and the ability to scroll backward and
forward from the current position are available in the Backtrace facility.
Note: While you are using the Backtrace facility, the execution PF keys are disabled and
replaced with special forward and backward tracing PF keys.
From field indicates the relative backtrace statement blocks displayed on the
screen. There are a maximum of 580 backtrace statement blocks that record a
program's execution path. The oldest statement blocks are re-used as needed.
To reposition the Source Backtrace Summary, overtype the information in the From
field with a relative statement block number or with a one- to four-byte
user-specified tag or bookmark.
Select (S) column positions a display of the Source Listing Backtrace at a selected
backtrace statement. Enter S next to any entry and press Enter. The Source Listing
Backtrace displays from the specified backtrace position. Only one S is allowed.
Note: An * in the Select column indicates the current backtrace position.
Bookmark (Bkmk) column is used to assign a unique tag or ID to one or more
backtrace positions.
■ Specify multiple bookmarks.
■ Each bookmark must contain at least one non-numeric character. For example,
P103, UB7, T1, A, and so on.
■ Each bookmark must be unique.
■ Once a bookmark is assigned to a specific backtrace position, it remains
attached to that backtrace position until the bookmark is replaced or removed
by subsequent program execution.
– There are 580 backtrace positions, and the oldest entries are replaced.
– If a backtrace position is not replaced between breakpoints, use the
bookmark to reposition your Backtrace Summary by specifying the
bookmark name in the From field of the Backtrace Summary screen.
Statement (Stmt) Block column identifies a block of contiguously executed
statement numbers.
■ Each line entry is a pair of program locations identifying the first and last
statement numbers or offsets for a piece of sequentially executed code.
■ For COBOL programs, the decimal value of the statement number indicates a
specific verb in a statement. The first verb is 0, the second is 1, and so on.
■ The top left entry was executed first, and the bottom right entry was executed
most recently.
■ After each statement number or offset in the right column there was a break in
sequential execution, such as a CALL to CICS or a branch to another location in
the program. Each break results in a new line entry.
■ Plus signs indicate offsets; for example, +204.
Source Listing Summary column displays the source code associated with the first
statement executed in the statement block, which is identified by the statement
number in the left column. The left margin default is 01 for COBOL and PL/I
programs, and 34 for Assembler programs.
Note: For display purposes, the starting column is either the left margin default or
the Margin= value that was specified on the Source Listing Breakpoint screen,
whichever is greater.
Message Line displays any messages about the section of backtrace that you are
currently viewing.
By tracing the execution path, block-by-block, follow the flow of your program's logic.
Example
To use the information in the statement block columns, first look at the last entry, as in
the previous screen:
#897.0... Bkpt
This block answers the question: How did I get to the current breakpoint? In this case,
the program entered statement 897 and executed all of the machine instructions up to
the current breakpoint.
The next question you might ask is: How did statement 897 receive control? To answer
this question, you must look at the preceding statement block:
#887.0...#888.1
The statement number in the right column, 881.1, is the statement that caused a branch
to statement 897.
Note: You might see a statement branch to itself, as in the following example from the
previous figure:
#812.0...#813.0
#813.0...#818.0
This happens when a CICS command is issued and execution was returned to the same
statement.
PF Key Function
PF1 Help Displays online Help for the current screen.
PF2 Backtrace Redisplays the Source Listing Backtrace screen from the current
backtrace position. The current backtrace position is indicated by an
asterisk (*).
PF3 End Displays the Source Listing Breakpoint screen at the last breakpoint.
PF5 1st Stmt Repositions the Backtrace Summary to the first (oldest) entry in the
Backtrace.
PF6 Last Stmt Repositions the Backtrace Summary to the last (newest) entry in the
Backtrace.
PF7 Backward Scrolls the Backtrace Summary backward (up) a full screen.
PF8 Forward Scrolls the Backtrace Summary forward (down) a full screen.
PF11 Prev Bloc Displays the previous statement block.
PF12 Next Bloc Displays the next statement block.
When in Source Listing Backtrace mode, the current backtrace position always appears
on the line just above the first source statement. This line displays as follows:
On the Source Listing Backtrace, each relevant backtrace position is indicated in the
listing by an arrow or a line:
■ ====> indicates the first statement in a statement block
■ <==== indicates the last statement in a statement block
■ ===== indicates all other statements within a statement block
PF Keys Function
PF1 Help Initiates the CA InterTest for CICS online help facility.
PF2 Summary Displays the Backtrace Summary.
PF3 End Terminates the backtrace session and redisplays the Source Listing
Breakpoint screen at the last breakpoint.
PF4 Profile Accesses the Source Listing Profile, where you set source listing
features and PF9 and PF10 stepping amount settings.
PF5 1st Stmt Repositions screen to the first (oldest) entry in the backtrace.
PF6 Last Stmt Repositions screen to the last (newest) entry in the backtrace.
* PF7 Backward Scrolls screen backward (up) a full screen.
* PF8 Forward Scrolls screen forward (down) a full screen.
PF9 Prev Stmt Repositions the Source Listing Backtrace to the previously executed
statement.
PF9 Prev nnn Automatically traces backward the number of statements set in the
Stepping Amount= field on the Source Listing Profile (PF4). Stepping
Amount value is nnn.
PF10 Next Repositions the Source Backtrace to the next statement.
Stmt Automatically traces forward the number of statements set in the
PF10 Next nnn Stepping Amount= field on the Source Listing Profile (PF4). Stepping
Amount value is nnn.
PF11 Prev Bloc Displays the previous statement block.
PF12 Next Bloc Displays the next statement block.
*PF keys 7 and 8 temporarily suspend backtrace highlighting until PF5, 6, 9, 10, 11, or 12
are specified.
When you first access the Source Listing Backtrace by pressing PF2 on the Backtrace
Summary screen, the following screen appears. Access this screen also from any other
section of backtrace by pressing PF6, which positions the backtrace at the last
statement executed (the current breakpoint).
To reposition the source listing to the first statement of the current statement block or
to the beginning of the previously executed statement block, press PF11 Prev Bloc.
Example
If PF11 was pressed from the Source Listing Backtrace screen shown previously, the
following screen appears.
To reposition the source listing to the beginning of the next backtrace statement block,
press PF12 Next Bloc.
Example
If you pressed PF12 from the Source Listing Backtrace shown previously, the following
screen appears.
To turn off the backtrace display mode, press Clear or PF3. CA InterTest for CICS
redisplays the Source Listing Breakpoint screen positioned at the last breakpoint.
Look at the Breakpoint Information screen from any Source Listing Breakpoint screen:
■ When you are at a Source Listing Breakpoint, press PF3 DET BKPT to look at the
Breakpoint Information screen.
■ To return to the Source Listing Breakpoint screen, press PF4 Source.
Note: If the Source List BKPT= ON, CA InterTest for CICS displays the Source Listing
Breakpoint version. If the Source List BKPT= OFF, CA InterTest for CICS displays the
Detailed Breakpoint version.
The following screen shows the Breakpoint Information screen when Source List
BKPT=ON. The format does not include lines of the program listing.
Overtype the above or use a PF key or press ENTER to abend without a dump.
Note: The information displayed on the Breakpoint Information screen is also available
on the Detailed Breakpoint screen, which is discussed in the Detailed Breakpoint screen
later in this chapter.
Identifies the statement or offset location where the breakpoint occurred in your
program. For COBOL programs, the decimal value of the statement number
indicates which verb halted execution. The first verb is 0, the second verb is 1, and
so on.
Identifies the transaction and terminal ID where the program is executing, and how
monitoring was requested, such as for a program, transaction, or terminal.
Shows the backtrace as described in the section Tracing Program Execution.
Additional backtrace entries are accessed using PF11. To return, press Clear.
Indicates, in hexadecimal and character format, the address and contents of main
storage relevant to the breakpoint.
Displays the command line with a CNTL default command. Override this command
with any other CA InterTest for CICS command or transaction ID, such as HELP or
CORE. It is followed by a line that indicates any errors or messages. Enter also a
fast-path command to jump to a menu, such as =1.2.1 to go to the Program
Monitoring menu.
Lists the PF keys that are available from the Breakpoint Information screen. For
details, detailed breakpoint PF keys.
From the Detailed Breakpoint display access the Breakpoint Primary Option Menu, but
you cannot use the one-character commands that are available on the Source Listing
Breakpoint display, such as m to modify or d to display. Instead, access the Main Storage
Menus (fast-path entry is =1.3) or enter a one-line command in the command field on
the bottom of the screen.
A Detailed Breakpoint screen appears when Source List BKPT=OFF. A sample screen
follows.
Backtrace
Tran= DEMC from term L6D1 monitored as PROG=COBDEMO
#776.0 #786.0
DFHCOMMAREA does not exist. #786.0 #787.0
#789.0 #789.0
00879 GO TO SEND FIRST SCREEN. #797.0 #798.0
00880 CONTINUE TASK. #786.0 #787.0
00881**** TASKNUM *NOTE* FIELD MUST BE INITIALIZED #814.0 #815.0
00882 ADD +1 TO TASKNUM. #815.0 #816.0
00883 IF TASKNUM = 1 #821.0 #823.0
00884 MOVE 'DMAPASR' TO MAPNAME. #823.0 #833.0
00885 IF TASKNUM = 2 #833.0 #838.0
00886 MOVE 'DMAPSUM' TO MAPNAME. #838.0 #839.0
#841.0 #851.0
The two fields shown are at address 033DA4 and 2AE17C: #851.0 #866.0
000000 *... * #866.0 #872.0
1C *. * #872.0 #873.1
#882.0 to here.
Overtype the above or use a PF key or press ENTER to abend without a dump.
Identifies the statement or offset location where the breakpoint occurred in your
program. For COBOL programs, the decimal value of the statement number
indicates which verb halted execution. The first verb is 0, the second verb is 1, and
so on.
Indicates what kind of breakpoint occurred. For a review of what each letter means,
see the Examine the Source Listing Breakpoint screen (see page 136) at the start of
this chapter. If an automatic breakpoint occurred, the reason for it follows.
Identifies the name of the transaction and terminal ID where the program is
executing and how monitoring was requested (such as for a program, transaction,
or a terminal.).
For PL/I and Assembler programs, this area displays the machine instruction that
triggered the breakpoint, the machine instruction that last executed, and its offset
or absolute address. (This is not shown in this screen.)
Indicates the COMMAREA status and size.
Shows the backtrace, which is described in the section Tracing Program Execution.
Additional backtrace entries are accessed using PF11.
Displays source listing code, only if you:
■ Saved the listing in the CA InterTest for CICS symbolic file
■ Chose Source List BKPT=OFF on your Source Listing Profile screen. Without this
option specified, CA InterTest for CICS does not display this screen at all. The
Breakpoint Information screen displays instead.
Indicates, in hexadecimal and character format, the address and contents of main
storage relevant to the breakpoint.
Displays the command line with a default CNTL command. Override this command
with a CA InterTest for CICS command or transaction ID. It is followed by a line that
indicates any errors or messages.
Lists the PF keys that are available from the Detailed Breakpoint Display screen.
The backtrace shows the path of the most recently executed code.
■ The top left entry was executed first, and the bottom right entry was executed last.
■ Each line entry is a pair of program locations identifying the first and last statement
numbers or offsets for a piece of sequentially executed code.
■ The decimal value after statement numbers for COBOL code indicates which verb in
the statement was executed last. The first verb is given a decimal value of 0, the
second 1, and so on.
■ After each statement number or offset in the right column there is a break in
sequential execution, such as a CALL to CICS or a branch to another location in the
program. Each break results in a new line entry.
■ If a program loops through a section of code more than once, the backtrace displays
the number of times the loop was executed below the line entry, instead of
repeating the execution sequence.
■ Plus signs indicate offsets; for example, +204.
PF Key Function
PF1 Help Initiates the CA InterTest for CICS online help facility.
PF2 Unassigned.
PF3 Source Displays the Source Listing version of the breakpoint.
PF4 Unassigned.
PF5 Resume Resumes execution at the next instruction using the amount
set on PF10.
PF Key Function
PF10 001 Verb For COBOL, executes the next COBOL verb and then stops.
PF10 001 Stmt For PL/I, executes the next PL/I statement and then stops.
PF 10 Registers For Assembler, toggles registers on and off the screen.
PF11 Backtrace Displays the column of backtrace available at this
breakpoint.
PF12 Status Displays a monitoring status report for the monitored entry
(program, transaction, or terminal) that caused the
breakpoint.
PF22 Shift Left Shifts source code left; COBOL and PL/I programs shift 10
characters at a time; Assembler programs shift to 02, 40, 50,
and then 61. If you have only 12 PF keys, use the Margin=
field to shift your source code.
PF23 Shift Right Shifts source code to the right the same amounts as PF22.
Continue Execution
To continue execution from the Detailed Breakpoint or the Breakpoint Information
screen, perform these steps:
■ Press PF9 or PF10 to single-step.
■ Press PF5 Resume to continue execution starting with the next instruction.
■ Press PF6 Menu to access the Breakpoint Primary Option Menu, where you abend,
override an automatic breakpoint, step, or access the Resume Menu for additional
execution options. For details, The Breakpoint Primary Option Menu (see page 163).
■ Enter a CNTL command on the command line.
■ Enter GO, NEXT, or RUN on the command line.
Single-Stepping
Press PF9 or PF10 to execute a single machine instruction, COBOL verb, or PL/I
statement, as indicated in the PF key definition on the bottom of the screen. Use this
method to see what data values are being moved into main storage.
Notes:
■ The step amount for PF9 and PF10 cannot be changed. However, select alternative
step amounts by entering CNTL commands or by using the Resume Menu options.
Access the Resume menu using PF6, and select Option 4 Resume (the fast-path
command is =4).
■ When you use PF10 to single-step through nested COBOL IF statements, it might
appear that CA InterTest for CICS is not executing one verb at a time. This is a
function of how the compiler generates the object code. To follow closely the
execution of nested IFs, use PF9 (execute 1 instruction) instead.
Resume Execution
Access the Resume Menu by pressing PF6 from the Detailed Breakpoint screen, then
selecting Option 4 Resume. Alternatively, jump to the Resume menu by entering =4 in
the command line on the Detailed Breakpoint screen.
CNTL Commands
CA InterTest for CICS provides a default command at each breakpoint display, as shown
following:
■ The default command at an automatic breakpoint is:
CNTL=GO,task=xxxxx,A
To modify the default command, overtype the existing command and press Enter.
GO line-number | label
Line-number
Indicates any line number within an ASSEMBLER, COBOL, or PL/1 program from
which you want the execution to continue.
Default: The current statement.
Label
Indicates any valid paragraph or procedure label within an ASSEMBLER, COBOL, or
PL/1 program (up to 31 characters in length) from which you want the execution to
continue.
Default: The current statement.
NEXT verb-count
Verb-count
Indicates number of verbs to execute before the next display of the Breakpoint
Display screen.
INTC--Continue Processing After a COBOL Program Breakpoint Until the Next Call
Or PERFORM Statement
NEXT RETURN
Specifies that the NEXT command is used to continue execution until the next CALL or
PERFORM verb. Execution stops when it hits a CALL or PERFORM execution.
RUN
Interval
Indicates number of seconds (between 1 –59) to display each Breakpoint Display
screen.
Default: Wait Amount in Profile.
Stop-count
Indicates number of verbs to execute before stopping.
Default: Stop value in Profile.
Once you complete these steps, CA InterTest for CICS displays the Source Listing
Breakpoint version at future breakpoints in your test session. For more information, see
the chapter "Source Listing Facility."
To switch from the Source Listing Breakpoint to the Detailed Breakpoint display,
perform these steps:
1. Enter PROFILE in the command line of a Source display and press Enter. The Source
Listing Profile appears.
2. Enter OFF in the Source List BKPT= field and press Enter.
3. Press PF3 DET BKPT. You should now see the Detailed Breakpoint display version.
Note: The default value of the Source List BKPT= field is a system-wide, CA InterTest for
CICS installation option. To change the default value, have your System Administrator
consult the Installation Guide.
Indirect Commands
The CA InterTest for CICS indirect commands facility enables you to define a set of
commands that execute automatically, or indirectly, at a predetermined location in a
monitored COBOL or PL/I program. Invoke these commands from an unconditional,
conditional, or request breakpoint.
In effect, indirect commands are executed at breakpoints within your program just as
other CA InterTest for CICS line commands issued from the Source Listing Display, such
as MOVE and GO, are used to alter the flow of your program's logic. The difference is
that indirect commands are executed automatically without issuing a breakpoint
display. Once the indirect commands are performed, your program continues to execute
normally.
Indirect commands save you from having to recompile a program or manually correct an
area of code every time it is encountered during a debugging session. With the indirect
commands facility, you can perform the following actions:
■ Change the flow of control in your program
■ Test conditions based on specified variables
■ Change the value of specified variables
■ Create and execute commands as a group, like adding a new subroutine
■ Automatically resume execution of your program at the same or different location
■ Define abbreviations for variables with long names
Note: Indirect commands are not available for Assembler programs.
Overview of Steps
To invoke indirect commands in your program, perform these steps:
1. Enter the statement numbers and indirect command statements on the Indirect
Commands screen. To access the Indirect Commands screen, use Option #11 from a
Source Listing screen, or select the Command option on the Program Monitoring
menu.
2. Use the Monitoring Menus or Source Listing facility to set a breakpoint
(unconditional, conditional, or request) where the indirect commands will take
effect. As you set the breakpoint, you must access the Breakpoint Options menu
and specify the first statement number of the Indirect Command as an option to
that breakpoint. Option #12 (Bkpt Opt) on the Source Listing screen provides access
to the Breakpoint Options menu.
3. Specify the terminal ID (terminal ID, .ANY, or .NO) or user ID for the indirect
commands to take effect.
The following section describes each of these steps in detail.
Note: Set the breakpoint and give the starting indirect command number before you
code the indirect commands. The order is up to you. However, new users often find it
easier to code the indirect commands first, and then attach them to breakpoints.
Follow the steps listed next when setting an unconditional or conditional breakpoint
from the Source Listing Breakpoint:
1. From the Source Listing Breakpoint, set an unconditional or conditional breakpoint
that will invoke the indirect commands.
The following table summarizes how to set the breakpoints from the Source Listing
Facility:
The following screen shows how to set an unconditional breakpoint for indirect
commands from the Source Listing facility. Notice the required Option # 12 entry at
the top of the screen.
After:
5. Press Enter. CA InterTest for CICS processes the breakpoint as usual, and displays a
message to that effect.
CA InterTest for CICS displays the following Indirect Commands screen.
LINE COMMAND
1 Help 2 3 End 4 5 6
7 Backward 8 Forward 9 Top 10 Bottom 11 12
CAIN1255 No indirect commands exist for this program/terminal.
Term ID indicates the terminal where the specified indirect commands execute.
This value must match the terminal ID specified at the breakpoint that invokes
these indirect commands.
xxxx—indicates a specific terminal.
.ANY—indicates that these commands will execute at all terminals.
Note: If indirect commands are specified for both .ANY and your specific terminal,
the indirect commands specified for your terminal take precedence.
.NO—indicates that these commands execute with no terminal.
Delete ALL provides a quick method to delete all previously specified indirect
commands for the program you are testing. Enter one of the following options:
NO—indicates that the indirect commands at the specified terminal will not be
deleted (default).
YES—indicates that the indirect commands at the specified terminal will be deleted.
Line Indicates the one- to five-digit sequence number, from 1 to 99999, of the
indirect command, which must be followed by at least one blank space. This
number must be the first item entered except for continued commands, and must
begin in the first position of the input line.
Command displays the actual command text to be performed during Indirect
Command execution from a breakpoint. For a complete listing of indirect
commands, see Indirect Command Syntax.
PF Keys let you scroll through your indirect commands, invoke the Help facility, or
exit the function.
Message Line displays messages about your indirect commands.
When you are finished coding an indirect command statement, perform these steps:
1. Press Enter. CA InterTest for CICS translates everything you entered into uppercase
characters and checks the command for syntactical accuracy. If the command is
correct, one of the following messages is displayed:
CAIN1261 Indirect command(s) added.
Indirect command(s) replaced.
2. When you have coded all of your indirect commands, press PF3 or Clear.
LINE COMMAND
------------------------------------------------------------------------------
00010 /* INITIALIZE TASKNUM */
00020 MOVE 1 TO TASKNUM
00030 EXIT
1 Help 2 3 End 4 5 6
7 Backward 8 Forward 9 Top 10 Bottom 11 12
CAIN1261 Indirect commands added.
Note: Setting TASKNUM to 1 alters the demo results. The clear key must be used to
complete the termination of the demo when the "You have completed the sample
CA InterTest for CICS test session" screen appears.
2. To avoid the storage violation that occurs in COBDEMO:
■ Using Source Listing option 12 with a U line command, set an unconditional
breakpoint at statement number 978
■ Specify 50 as the indirect command statement number that you want to
execute at the breakpoint
■ Using the Source Listing Option # 11, access the indirect commands facility, and
then add the following commands.
1 Help 2 3 End 4 5 6
7 Backward 8 Forward 9 Top 10 Bottom 11 12
CAIN1261 Indirect commands added.
3. To perform the code that was bypassed at statement 1369 at another location
where it will not cause a storage violation:
■ Using the Source Listing Option # 12 with a U line command, set an
unconditional breakpoint at statement number 974
■ Specify 80 as the indirect command statement number that you want to
execute at the breakpoint
■ Using the Source Listing Option # 11, access the indirect commands facility,
then add the following commands.
LINE COMMAND
1 Help 2 3 End 4 5 6
7 Backward 8 Forward 9 Top 10 Bottom 11 12
CAIN1261 Indirect commands added.
LINE COMMAND
1 Help 2 3 End 4 5 6
7 Backward 8 Forward 9 Top 10 Bottom 11 12
CAIN1261 Indirect commands added.
Access
To access the status report from the Source Listing display or breakpoint enter the
command STATUS, or press PF12 Status. The following screen shows how indirect
commands are represented on the CA InterTest Status Report:
The previous figure shows the status report expanded for the program COBDEMO when
monitored by user ID CARAR01. Notice the unconditional breakpoint entries and
indirect command entries, which are discussed next.
The UBP entry identifies the unconditional breakpoint set at the procedure-name
Continue-Task. Notice the last line of the UBP description is Execute indirect
command ... 100.
The CMD entry identifies the indirect commands. Notice the indirect commands are
assigned the option ID 90AB36F1.
To return to the Source Listing display from the Status Report, press PF3 or Clear.
2. On the Program Monitoring menu, complete the Program name and type S next to
the Commands (indirect commands) Option. The entries are shown in the following
screen.
COMMAND ===>
3. Press Enter to continue to the next screen. The following Indirect Commands screen
appears.
Term ID (or .ANY or .NO) where commands will take effect: ____
user ID (or .ANY) who will execute the program: .ANY___
Optionally, specify the terminal ID where the indirect commands will take effect and the
user ID that executes the program when the indirect commands are to take effect.
Note: Generally, accept the defaults. Press PF1 for help in completing these fields, if
necessary.
To edit indirect commands previously coded for a program, ensure the terminal ID and
user ID entries match those initially used to code the indirect commands.
Press Enter to continue. CA InterTest for CICS displays the Indirect Commands screen for
the requested program, terminal ID, and user ID.
For details on how to insert insert, copy, edit, and delete the commands, see Format
Indirect Commands (see page 204).
To return execution to your program following the indirect commands processing, use
one of the following exit commands:
BREAK
CA InterTest for CICS halts indirect commands processing and issues a breakpoint
display from where the indirect commands were invoked in the program.
GOTO
CA InterTest for CICS resumes execution at the program statement number, offset,
paragraph name, or indirect command statement number specified after the GOTO
command.
EXIT
CA InterTest for CICS resumes program execution at the breakpoint location from
which the indirect commands were invoked and continues debugging the program
until the next breakpoint.
RUN
CA InterTest for CICS resumes program execution at the breakpoint location from
which the indirect commands were invoked and ignores all subsequent breakpoints.
Command Syntax
The syntax for the basic commands available in the indirect commands facility is
described next.
Note: All bold characters are required in the syntax of the command.
Equate Command
This command equates a one- to eight-character symbol of your choice to a relatively
long data name. A maximum of ten EQuate symbols can be active concurrently.
symbol
Indicates any user-defined symbol that observes the rules for data names.
data-name
Specifies the corresponding variable name.
Example
EQ TN TASKNUMBER
Exit Command
The Exit command returns control to the statement following the last executed PErform
indirect command. If no PErform is active, indirect processing is terminated and control
is returned to the program, where execution continues from the breakpoint. Any
relational operands entered with this command are ignored.
Example
EX
Goto Command
This command resumes execution at a specified location. The syntax controls where
execution resumes.
To resume execution at the specified indirect command sequence number, use this
syntax:
GOto *nnnnn
GOto #nnnnn
GOto +nnnnn
GOto 'paragraph-name'
Example
GO *1150
expression
Specifies any valid condition.
indirect command
Specifies any valid indirect command.
Example
IF (A+B)*C=D
THEN GOTO *1150
Example
BR
Move Command
This command moves the specified source-item to the target data-name. Follow COBOL
MOVE statement rules when formatting an indirect command Move.
Note: For a complete description of each of these source items, see Formatting Indirect
Commands later in this chapter.
data-item
Refers to a COBOL or PL/I variable name. Qualifiers and subscripting are allowed.
data-name
Refers to another COBOL or PL/I variable name. If the data-name is a COBOL Index
cell, the MOVE command moves exactly the data specified into the Index cell. No
mathematical calculation is performed.
Perform Command
This command transfers control to the specified indirect command sequence number as
a subroutine call. A maximum of five PErform commands can be active concurrently.
PErform nnnnn
nnnnn
Indicates the indirect command sequence number to which control is transferred.
Example
PE 2250
Indirect commands and their arguments are free-form. However, there are several rules
to keep in mind as you format your commands:
■ All arguments must be separated by at least one blank space.
■ Only one indirect command displays on a line (with the exception of the IF
command), but one indirect command spans several lines.
– The first line of a command must begin with a line number followed by a blank
space
– Consecutive lines of a single command must begin with at least one blank
space
Example
10 IF DATA-COUNTER <> 0
THEN M 0 TO DATA-COUNTER
20 BR
■ New indirect commands are entered by:
– Overtyping an existing command
– Entering new indirect commands on blank lines below existing ones
Example
Example:
■ Indirect commands are verified after you press Enter, but some errors might not be
detected until the indirect commands are actually processed.
■ Delete an entire set of indirect commands by specifying YES in the Delete ALL= field.
Delete a specific indirect command by overtyping the line number with DEL.
■ One group-item qualifier is allowed. It can be any group containing the item in
question:
– Immediate parent
– 01-level
– Any level in between the immediate parent and the 01-level
■ Up to seven levels of subscripting are allowed. Subscripts include:
– Positive integer numeric literal
– Another variable defined as a positive integer numeric field (no sign or decimal
portion)
– INDEX item (either INDEXED BY or USAGE INDEX)
Example
DATE OF INVOICE
TABLE-ENTRY(4,TABLE-INDEX)
Example
If the array is declared as (100:200), subscript values must be within the range of 100 to
200, inclusive.
■ The base address for a variable is supplied with the base locator notation. One item
supplies the base address for the next item, which in turn supplies the base address
for the next variable, up to a limit of 15 items. This feature is intended for BASED
variables, but it is used to map any declaration over any addressable storage.
Example:
DATE OF INVOICE
TABLE_ENTRY(4,TABLE_INDEX)
or
prog-id
Identifies the program-ID of the program to which the variable belongs. If used, the
prog-id must immediately be followed by a colon (:). If omitted, the default is the
main program's program-ID.
data-name
Indicates COBOL data item.
grp-name
Identifies the COBOL identifier of a group item to which the data-name belongs.
This clause lets qualification of an identifier that displays in more than one group.
sub-name
Specifies a COBOL identifier to use as a subscript. This identifier must follow all the
COBOL rules for valid subscripts.
ind-name
Indicates a COBOL index-name.
number
Specifies a positive integer that is used as a valid subscript for a data-name.
Examples:
TOTAL-AMT
CUST-NO OF CUST-REC
MONTHLY-BAL (8)
YEARLY-TOT (W-YR, 3, W-DEPT)
SUBRTN1:ITEM-A
SUBRTN1:ITEM-B IN INP-REC(3, SUB-2, 4, SUB-3)
->
Defines the address for symbol. It indicates that the expression on the left provides
the address on which the the expression on the right is based. If the expression on
the left is a PL/I POINTER variable, the contents of the POINTER variable is use.
The -> notation is provided for referencing PL/I BASED variables whose addresses
cannot be resolved at compile time, but are used for referencing any PL/I variable.
procnm
Indicates the label of the procedure to which the variable belongs. If used, procnm
must immediately be followed by a colon (:). If omitted, it defaults to the MAIN
procedure name.
var-name
Identifies the PL/I variable name.
sub-name
Defines a PL/I variable name to use as a subscript. This identifier must follow all PL/I
rules for valid subscripts.
number
Specifies a positive integer that is a valid subscript for var-name.
Examples
The following are examples of valid PL/I variables:
TOTALAMT
CUSTREC.CUSTNO.PREFIX
MONTHLYBAL (8)
YEARLYTOT (WYR, 3, WDEPT)
SUBRTN1:ITEMA
SUBRTN1:INPREC.ITEMB (3, SUB2, 4, SUB3)
Example
PRT1 is a POINTER variable that provides the base address for BASED variable
BASEDSTRUCT1.
Example
PRT1 is a POINTER variable that provides the base address for BASED variable
BASEDSTRUCT1. It contains another POINTER variable, PRT2, which is used as the base
address for the BASED variable BASEDSTRUCT2, containing ITEMA.
Example
STRUCTA is not a pointer variable but a structure. The address of STRUCTA is used to
map the variable names defined in STRUCTB.
Continue Execution
To continue execution from an automatic breakpoint, you must do one of the following:
■ Dynamically correct the error. To dynamically modify main storage to correct the
error and for instructions on using the indirect commands facility.
■ Set a CA InterTest for CICS protection option, discussed in the chapter "Monitoring
Menu Options."
■ Go around the error. For details, Jump to Another Location (see page 214) and
Using the Resume Menu (see page 218). Options 2, 3, and 4 on the Resume menu
offer easy ways to specify where you want to continue execution.
CA InterTest for CICS lets you control where execution resumes and how much code
executes at a time. Resume execution from where you stopped or from another
location; and either single-step through execution or continue until CA InterTest for CICS
reaches the next breakpoint or the end of the program.
Press PF5 or specify GO on the command line to continue from the current breakpoint.
Execution continues until another breakpoint occurs or the program ends, whichever
comes first.
When stopped on a PERFORM or CALL, the NEXT OVER command causes the test
session to continue until the statement following the PERFORM or CALL is encountered,
where a break point occurs.
When stopped within a paragraph or subroutine, the NEXT RETURN command causes
the test session to continue until the session encounters the statement following the
PERFORM or CALL that invoked the current paragraph or subroutine, where a break
point occurs. You must have TRACE ON to use NEXT RETURN.
Note: When you use PF10 or the NEXT command to single-step through nested COBOL
IF statements, it might appear that CA InterTest for CICS is not executing one verb at a
time. This is a function of how the compiler generates the object code.
Important! To more closely follow the execution of nested IF statements, use the PF9
on the Detailed Breakpoint display to execute one instruction at a time.
Example
Notes:
■ Use this option with caution in COBOL and Assembler programs and optimized
code. Certain uses trigger difficulties in getting proper addressability.
■ When an error occurs in a paragraph containing a CICS command, resume program
execution at the paragraph-name rather than at the specific instruction, because
some CICS internal processing might have occurred prior to that command.
■ In PL/I programs, do not resume execution at a new location if it results in a jump
between PROCS/BLOCKS.
CA InterTest for CICS supports the debugging of programs that have been optimized,
either by the COBOL compiler's OPTIMIZE option or by CA Optimizer or CA Optimizer/II.
However, debugging these programs sometimes results in unexpected behavior.
These unexpected displays do not indicate that a program is being executed incorrectly.
They indicate that the debugger sometimes cannot accurately identify which object
code corresponds to which source statement, or which statement is contained within
which paragraph.
CA InterTest for CICS uses the information in the compiler-generated procedure map or
offset report to establish the program offset for each statement and label in the
program. During execution, the debugger recognizes the start of the new statement or
label by matching the program offset of the currently executing instruction with the
PROTSYM information obtained from the compiler listing. Therefore, the accuracy with
which the debugger represents a breakpoint or other intercept is only as good as the
information in the compiler listing.
Additionally, application abends may result from the use of the GO line-number
command because the optimized object code may have register requirements that do
not support changes to the flow of control. These commands should be avoided when
debugging an optimized program.
For the best debugging results, avoid using optimization whenever possible in your
testing environment. Production applications may be compiled with optimization, and
debugging these applications as they exist without recompiling is supported. However,
you may experience some of the inaccuracies listed previously under these
circumstances.
COMMAND ===> =4
After entering a label name, press Enter to continue. The program resumes execution
from the label you specified.
After entering a statement number, press Enter to continue. The program resumes
execution from the label you specified.
After entering the hexadecimal value of an offset, press Enter to continue. The program
resumes execution from the offset you specified.
This option is a one-time execution of the steps you specify and does not change the
value of PF 10 on a Breakpoint display. To set the value for PF 10, use the Source Listing
Profile, PF4 from any Source Listing display.
This option is a one-time execution of the steps you specify and does not change the
value of PF9 on a Detailed Breakpoint Display.
CA InterTest for CICS displays a message confirming the abend request and dump code.
Follow any online instructions to complete the abend. After an abend, you return to
CICS.
Example
If CA InterTest for CICS detected an ASRA and you used CA InterTest for CICS to correct
the error, the original error still exists in your code.
If you modified main storage, that change was only temporary—your program remains
unchanged.
The CA InterTest for CICS copy of your program from the compiled or assembled output
also remains unchanged. If you rerun the transaction, you will see the same display of
your program in the Source Listing Facility as you did the first time.
To get a status display of monitoring activity and options in effect for one program,
perform these steps:
1. Display the Source for the program.
2. Enter the command STATUS.
To get a status display of monitoring activity and options in effect for all programs, enter
the command STATUS ALL.
To get global status display from the Primary Option Menu, perform these steps:
1. Access the Primary Option Menu.
2. Select Option 2 Monitoring.
3. Select Option 4 Status.
Note: The fast-path entry for a Monitoring Status Report from CICS is ITST 2.4
Alternatively, enter one of the following commands on a clear screen under CICS:
■ For a program:
CNTL=INQ,PROG=progname
Example
To display the CA InterTest for CICS monitoring status for the program COBDEMO, enter
the following command under CICS:
CNTL=INQ,PROG=COBDEMO
Important! File or database changes that you make using the CA InterTest for CICS FILE
facility are permanent, whether or not the NUP option is set.
Continue to Test
In some testing situations, you might want to re-execute the program without changing
the source code. Doing this means you will see the same automatic breakpoints that you
saw the first time. When it is easy to correct or get around the errors, this method can
be the most efficient route to continue testing because you do not have to recompile
your program.
Use the indirect commands facility to continue to test your program without
recompiling it.
Note: To recompile your program and keep the same breakpoints in the recompiled
version, set breakpoints at paragraph names or labels, not at lines of executable code.
Then use the CA InterTest for CICS New Program Copy function to transfer the
breakpoints to the recompiled program. If you set breakpoints at lines of executable
code, New Program Copy transfers the breakpoints to the same statement numbers or
offsets in the recompiled program, which might not be what you want.
Important! Use this option with caution! Removing monitoring for a program clears all
breakpoints and all monitoring options.
This chapter describes the Monitoring Menu Options (Option 2 on the Primary Option
Menu) that let you take advantage of the full range of CA InterTest for CICS monitoring
capabilities. For example, use the monitoring menus to set monitoring for programs, all
programs executed by a transaction, or all the programs executed from a terminal. Use
the menu to invoke many options for monitoring, such as breakpoints, data monitoring,
indirect commands, CICS resource replacement options, and system-wide options. The
monitoring menus also enable you to get a selective Monitoring Status report.
Monitor Status
For more information on how to access and use the Primary Option Menu and Status
Report, see the chapter Menus and Displays (see page 35).
Breakpoints
For more information on how to set or remove breakpoints from the Monitoring Menu,
see the chapter Using Breakpoints (see page 103).
Data Monitoring
For more information on how to use Data Monitoring, see the chapter Breakpoint
Activities (see page 135).
Indirect Commands
For more information on how to use indirect commands, see the chapter Breakpoint
Activities (see page 135).
CNTL Commands
Programs
Displays the Program Monitoring screen, which lets you set and remove monitoring,
breakpoints, monitoring options, and monitoring-related functions for one or more
programs. Monitoring related functions include the following items:
■ Status report to display and remove monitoring and monitoring options for
programs, transactions, and terminals
■ Setting and removing monitoring, breakpoints, and monitoring options
■ Setting and removing statement tracing and data monitoring
■ New copy function to reset monitoring for a recompiled program
■ Indirect commands to enable inline adjustments to programs without recompiling
■ Composite support to provide symbolic support for separately compiled programs
brought together when they are link-edited
Transactions
Displays the Transaction Monitoring screen which lets you set and remove monitoring,
and monitoring options for one or more transactions. Monitoring options for
transactions include request breakpoints, statement tracing and data monitoring, and
replace, protect and special options.
Terminals
Displays the Terminal Monitoring screen, which lets you set and remove monitoring and
monitoring options for all the programs executing from a terminal.
Status
Displays the status report (2.4) for all monitoring activity in the current CICS region. Use
the status report to quickly remove a monitoring option or monitoring entry.
Active Tasks
Displays the list of active tasks that are being monitored by CA InterTest. If the
system-wide purge option is turned on, the Active Tasks screen lets you to purge a task.
If you previously disconnected a task from a terminal, the Active Tasks screen lets you
reconnect the task and continue testing.
System-Wide
Displays the System-Wide Options submenu (2.6), which lets you display and modify
monitoring options for the entire system. These include automatic breakpointing,
checkpointing, dumping all abends, global logging, CA InterTest for CICS tracing, and
breakpointed task purging.
Access
The Monitoring Menu is Option 2 on the Primary Option Menu.
To access the Monitoring Menu from a Source Listing display, perform these steps:
1. Type the command MENU or press PF6 to access the Primary Option Menu.
2. Select Option 2.
To access the Monitoring Menu from a Source Listing Breakpoint display, type the
command MENU or press PF6 to access the Breakpoint Primary Option Menu, and then
select Option 1.2. The fast-path command entry is =1.2.
PF Keys
Exit any Monitoring Menu by pressing a PF key. The following table describes the
function of each PF key.
PF Key Function
PF1 or 13 Initiates the CA InterTest for CICS online help facility.
PF2 or 14 Unassigned
PF3 or 15 Terminates the current processing and returns to the previous display.
PF4 or 16 Returns you to the top-level menu, the Primary Option Menu.
PF5 or 17 Unassigned
PF6 or 18 Unassigned
PF7 Scrolls a display list backward towards the top of the list.
PF8 Scrolls a display list forward towards the bottom of the list.
PF9 to 12 Unassigned
PF21 to 24
COMMAND ===>
The following status report shows the same program COBDEMO, which will be
monitored for a single user, MARY01. The unconditional breakpoint is directed to any
terminal where CICS user MARY01 is signed on.
COMMAND ===>
Monitoring with a specific user ID gives you the ability to do the following actions:
■ Isolate monitoring and debugging to a specific user, and not all users
■ Move from terminal to terminal (or use a multi-session manager) and automatically
redirect monitoring options and breakpoints to your current session, provided the
from and to terminals default to .ANY
■ Have two users concurrently debug a program, but with different monitoring
options
The following table explains how the default values work when you are and are not
signed on to CICS.
Look up the current DFLTUSER value from the Primary Option Menu (fast-path 7.1.2) by
performing these steps:
1. Use option 7 Status/Maintenance.
2. Select Option 1 Product Status.
This displays all installation options for IN25OPTS in alphabetic order. The DFLTUSER
setting shows the default user ID setting for your system.
If you override the default user ID setting before you set monitoring, make sure to use
the same user ID when you set a breakpoint or other monitoring option. Otherwise, the
breakpoints or other monitoring options are not attached to the original monitoring
entry. View the Monitoring Status report to check the entries.
If you have special testing needs, set breakpoints that include a From and To terminal
value that you specify. To do this, set your breakpoints using one of these methods:
■ Program, Transaction, or Terminal Monitoring menus (2.1, 2.2, or 2.3) as discussed
in the chapter "Using Breakpoints"
■ CNTL transaction-based commands as discussed in the chapter "CNTL: Commands
and Menus"
Monitoring Submenus
This section describes how to use the Monitoring submenus and screens to perform the
following monitoring-related functions. The order in which the functions are described
corresponds to their order on the Monitoring Programs, Transactions, and Terminals
submenus.
Setting and Removing Monitoring
Begin and end monitoring for programs, transactions, or terminals.
Status Display
Display the monitoring status of a program, transaction, or terminal.
Using the New Copy Option
Reset monitoring for a recompiled program.
Setting and Removing Replacement Options
Dynamically change CICS resources (programs, files, transient data queues,
temporary storage).
Setting and Removing Protection Options
Bypass CA InterTest for CICS rules that protect main storage, the CSA, and load
modules.
Setting and Removing Special Options
Modify monitoring rules (for example, prevent a program from updating a file, let a
program to branch to another program, limit the number of times a program is
monitored).
Setting and Removing Composite Support
Provide symbolic support for a program consisting of separately compiled modules.
Viewing and Setting System-Wide Options
Request and revise monitoring options on a system-wide basis.
Initiate Monitoring
The CA InterTest for CICS CNTL transaction performs all monitoring functions. However,
CA InterTest for CICS provides a number of ways to initiate monitoring and perform
other CNTL functions as shown following:
■ Source Listing Facility
■ Monitoring Menu, Option 2 on the Primary Option Menu
■ CNTL menus and fill-in screens
■ CNTL commands
Use one method exclusively, or mix-and-match methods (even during one test session)
depending on your specific testing needs.
Example
Use the Source Listing facility to initiate monitoring and set breakpoints, the Monitoring
Menu and screens to set special options, and a single-line command to resume
execution of a task.
The easiest way to turn on monitoring and set breakpoints for a single program is to use
the Source Listing facility. For a new or infrequent user, this method is strongly
recommended. Turn on monitoring by pressing a PF key, and set a breakpoint by
entering a single keystroke directly on your program's source listing.
To take advantage of the full range of CA InterTest for CICS monitoring capabilities, use
the Monitoring Menu, which is Option 2 on the Primary Option Menu. Additional
submenus guide you through selecting monitoring for programs, terminals, or
transactions, with or without monitoring options.
Online help is available from every screen. Press PF1 from any menu or panel for details
on how to use it.
If you prefer, enter single-line CNTL commands to specify monitoring functions. More
experienced users often find it faster to enter commands directly.
COMMAND ===>
How to Use
To select an option, enter or modify the Program and User ID field values, and then tab
to the desired Option. Type an S to set the option or an R to remove the option, and
then press Enter to process the function. Press PF1 for field level help at any time.
The More field on the right side of the display indicates additional options are available.
More: + indicates you can scroll forward to view additional options. More: - indicates
you can scroll backward to view additional options. Press PF8 to scroll forward and view
additional options; PF7 to scroll backward and view previous options.
After you process an option that requires an additional screen, when you return to this
submenu the option you processed becomes the first option on the list. Enter the
Command TOP to display the Options list from the top. Press PF7 to scroll backward,
PF8 to scroll forward.
Note: If a program is stopped at a breakpoint, press PF6 to access the Breakpoint Menu,
and then select option 1.2.1 to access the Program Monitoring submenu. Jump to the
menu by entering =1.2.1 in the command line of the breakpoint display.
Examples
CA InterTest for CICS enables you to establish system-wide monitoring of all applications
in the CICS region except for those with the prefix DFH (IBM CICS programs) or IN25 (CA
InterTest for CICS programs). Establish system-wide monitoring that applies to .ANY user
in the CICS region or a specific CICS user. Typically, this option is password protected.
Menu Entries
To set monitoring for all programs, enter the following on the Program Monitoring
menu (2.1):
Program
.ALL
User ID
.ANY to apply system-wide monitoring for all users or specific user ID to apply
monitoring to all programs executed by a specific user.
Example
Suppose you specify monitoring options for program ABC1 and different options for
transaction TRN1. ABC1 executes as part of that transaction. When ABC1 executes, the
options specified for ABC1 override the options specified for TRN1. Similarly, it is
important to understand the priorities CA InterTest for CICS observes when a program,
transaction, or terminal is specifically and generically declared for monitoring. A specific
entry overrides a generic entry except when you request Status Display. In that case, the
generic specification takes precedence.
Suppose you specify monitoring options for program ABC1 and different monitoring
options for program ABC*. The options specified for ABC* affect all programs whose
names begin with ABC except for program ABC1 (and any other programs beginning
with ABC that have their own entries in the Monitoring Table). Monitoring for ABC1 is
controlled by the specific entry for that program. However, if you request a Status
Display for program ABC*, you get monitoring status reports for all programs that begin
with ABC, including program ABC1 that has a separate Monitoring Table entry.
Monitoring
Set and remove monitoring for programs, transactions, or terminals directly from the
Monitoring Submenus for Program, Terminals, or Transactions.
Set Monitoring
When you set monitoring for a:
■ Program, CA InterTest for CICS monitors the program from whatever terminal it
executes, even if it executes as part of a non-terminal owning task. Use the
replacement, protection, or special options screen if you want to restrict
monitoring to a specific terminal.
■ Transaction, CA InterTest for CICS monitors all of the transaction's programs.
■ Terminal, CA InterTest for CICS monitors every program that executes at that
terminal.
Note: CA InterTest for CICS does not monitor programs that begin with the prefix DFH
(IBM CICS programs) or IN25 (CA InterTest for CICS programs).
If you set monitoring for a transaction or terminal, and a program executing as part of
that transaction or at that terminal is stopped at an automatic breakpoint, CA InterTest
for CICS automatically creates an individual entry in the Monitoring Table for that
program. This lets you set breakpoints and monitoring options specifically for that
program. Similarly, if you specify .ALL in the Program Names field on the Function
Selection Menu or if you specify a generic program name, CA InterTest for CICS creates
an individual Monitoring Table entry for any program monitored under that entry that it
stops at an automatic breakpoint.
Remove Monitoring
When you remove monitoring, you also remove all breakpoints and monitoring options
specified for that program, transaction, or terminal. A quick way of creating a new
testing scenario for a program is to remove monitoring and reset it with different
breakpoints and options.
Before you remove monitoring for a program, terminal, or transaction being monitored
under .ANY user ID, you might want to view the status report of all CA InterTest for CICS
monitoring activity to make sure other users are not currently testing the same
programs. Option 2.4 gives a Monitoring Status report of all monitoring activity.
From the status report, remove monitoring quickly for any entry. Just locate the
monitoring entry, enter r in the field to the left of the entry, and press Enter. The
following screen shows how to remove monitoring for the program COBDEMO from the
Monitoring Status display.
After the request is processed, an asterisk in front of the Monitoring Status entry
indicates the entry was removed. If you press PF2 Refresh, the entry is deleted from the
display.
Note: Remember that you can also set monitoring by setting breakpoints, replacement,
protection, special options, or composite support. However, if you remove breakpoints,
options, or composite support, monitoring remains in effect for the specified programs
until you specifically instruct CA InterTest for CICS to stop monitoring.
Set and remove statement tracing and data monitoring for programs, transactions or
terminals. However, these options are only valid for COBOL programs and, when
specified for a transaction or terminal, will only take affect when a COBOL program is
executed. In addition, if either option is specified for more than one program in a
transaction, only one statement trace table will be allocated for the transaction.
When you set statement tracing for a COBOL program, if a statement trace table was
not created for the transaction, it is created prior to executing the next statement in the
program. If a statement trace table exists for the transaction, it will be used by all
programs in the transaction for which statement tracing was specified.
When you set statement tracing for a transaction, a statement trace table is created
prior to executing the next COBOL statement in the transaction. When you set
statement tracing for a terminal, a statement trace table is created for each transaction
that executes a COBOL program at that terminal.
When you set data monitoring for a program, transaction, or terminal, statement
tracing is automatically set for that entity. Unlike statement tracing, however, data
monitoring must be restricted to a specific terminal or user ID.
To set or remove statement trace options, access the appropriate Monitoring submenu:
Term ID (or .ANY or .NO) where trace options will take effect:
User ID (or .ANY) who will execute the program: _______
Specify the following options on the Statement Trace Options screen. The equivalent
option used in CNTL transaction-based commands is specified in parentheses.
Statement tracing (TRC) —Instructs CA InterTest for CICS to save trace information for
every executed COBOL statement.
Data monitoring (DM) —Instructs CA InterTest for CICS to capture data values for every
executed COBOL statement. If data monitoring is selected, statement tracing will
automatically be activated. In addition, a specific terminal ID or user ID will be required.
Term ID (or .ANY or .NO) where trace options will take effect —Specifies that the
program be monitored and that statement trace options, if specified, take effect only
when the program is executed at any terminal (.ANY), no terminal (.NO), or a specific
terminal.
User ID (or .ANY) who will execute the program —Specifies that the program be
monitored and that statement trace options, if specified, take effect only when the
program is executed by any user (.ANY) or a specific user (a CICS user ID).
Once you have specified the required information, press Enter. You are returned to the
monitoring submenu where you selected the Statement Trace option.
This section describes how to remove statement trace options from a status report or
from the menu.
To remove statement tracing, access the Monitoring Status display (2.4), scroll to the
monitoring entry for which you specified the option, and locate the statement trace
option. Type r next to the option and press Enter. If data monitoring is on, it is also
removed.
Alternatively, use the same menus and screens you used to set the option, but instead
of entering s next to Trace, enter r next to Trace.
To remove statement tracing, enter R next to the Statement Trace option. If data
monitoring is on, it is also removed. To remove data monitoring without removing
statement tracing enter x next to Data monitoring. Enter the terminal ID and user ID
exactly as you originally defined them.
Note: CNTL=NEW is the equivalent CNTL command for the New Copy monitoring menu
option.
Replacement Options
This section explains how to set and remove replacement options. Set replacement
options to dynamically change the names of CICS resources (programs, files, transient
data queues, and temporary storage) specified in CICS CALLS by a monitored program.
Remove the replacement options when you want the program to use the resources
defined in the program.
When you specify replacement options for a transaction, the resources are replaced in
all of its programs. When you specify replacement options for a terminal, the resources
are replaced in all programs executing from that terminal.
SET one or more options to replace one CICS resource name with another in:
PROG=COBDEMO
Specify the following options on the previous screen. The equivalent option used in
CNTL transaction-based commands is specified in parentheses.
Replace program name (RPC)—Lets a program name be replaced. Specify the original
program name and the new name.
Replace file name (RFC)—Lets a file name be replaced. Specify the original file name
and the new name. The sample screen shown previously specifies that program
COBDEMO use file TFILE instead of PFILE.
Replace TD queue name (RTD)—Lets a transient data queue name be replaced. Specify
the original TD queue name and the new name.
Example
STORAGE2 replaces STORAGE1 in all temporary storage requests issued by the program.
User ID (or .ANY) who will execute the program—Specifies that the program be
monitored and that replacement options, if specified, take effect only when the
program is executed by any user (.ANY) or a specific user (a CICS user ID).
When you have specified the required information, press Enter. You are returned to the
monitoring submenu where you selected the Replace option.
To remove a replacement option, access the Monitoring Status display (2.4), scroll to
the monitoring entry for which you specified the option, and locate the specific
replacement option. Type r next to the option and press Enter.
Alternatively, use the same menus and screens you used to set the option, but instead
of entering s next to Replace, enter r next to Replace. Specify the information exactly as
you entered it.
To remove all replacement options of a specific type, use the menus and enter .ALL in
the appropriate field on the Remove Replacement Options screen as shown in the
following screen. This example removes all file replacement options previously set for
the transaction DEMC.
REMOVE one or more options to replace one CICS resource name with another in:
TRAN=DEMC
Protection Options
Set options to override the CA InterTest for CICS default protection rules for modifying
main storage, the CSA, and load modules. Remove the protection options to re-instate
the default protection rules.
Note: Because the protection options can potentially damage your CICS system if
misused, exercise caution in specifying them. These options are password protected
unless your site removed this restriction.
SET one or more options to override the default protection rules in:
PROG=COBDEMO
Specify the following options on the previous screen. In the description of each option,
the command syntax equivalent for each monitoring option is specified in parentheses.
Bypass storage protection (BYP)
Permits a specified section of program code to do the following:
■ Modify any area of main storage
■ Issue SVC instructions
■ Issue BALR, BASSM, or BASR 14,15 or 14,14 instructions
Specify the beginning and ending program addresses or program offsets. Specify
addresses as six- to eight-hexadecimal digits, and offsets as one- to five-hexadecimal
digits.
If you specify .ANY in the From field and an address or offset in the To field, CA InterTest
for CICS suspends monitoring when any BALR, BASSM, or BASR 14,15 or 14,14
instruction passes control to the specified location. Monitoring resumes when the
routine executed by the instruction returns control to the next byte after the
instruction.
At a breakpoint, specify * in the From field and leave the To field blank to instruct CA
InterTest for CICS to bypass the current instruction.
Unprotect CSA (CSA)
Permits a program to modify areas in the CSA. Specify the offset and the length in
hexadecimal.
Unprotect CWA (CWA)
Permits a program to modify areas in the CWA. Specify the offset and the length in
hexadecimal.
Unprotect main storage area (LET)
Permits a program to modify a designated area of storage. Specify the beginning
address as six to eight hexadecimal digits. Specify the length of the area in
hexadecimal.
Unprotect load module (LET)
Permits a program to modify a load module.
Protect main storage area (PRO)
Prevents a program from modifying a designated area of storage not protected by
CA InterTest for CICS. Specify the beginning address as six- to eight-hexadecimal
digits. Specify the length of the area in hexadecimal.
Limit monitoring (TON)
Specifies that the program be monitored and that the protection options, if
specified, take effect only when the program executes at the current terminal (*), a
specific terminal (termid), or without a terminal (.NO).
User ID (or .ANY) who will execute the program (USR)
Specifies that the program be monitored and that protection options, if specified,
take effect only when the program is executed by any user (.ANY), or a specific user
(a CICS user ID).
Once you have specified the required information, press Enter. You return to the
monitoring submenu where you selected the Protect option.
To remove a protection option, access the Monitoring Status display (2.4), scroll to the
monitoring entry for which you specified the option, and locate the specific protection
option. Type r next to the option and press Enter.
To remove all options of a specific type, enter .ALL in the appropriate field of the
Protection Options menu.
Example
To remove all Bypass Storage Protection options, enter .ALL in the first Bypass Storage
Protection field.
Special Options
Set special options to alter the standard CA InterTest for CICS monitoring procedures.
Remove the special options to reinstate the default monitoring rules.
SET one or more options to override the default monitoring rules in:
PROG=COBDEMO
You can specify many options on this screen. The equivalent option used in CNTL
transaction-based commands is specified in parentheses.
Source Listing Breakpoint (SLB)—Specifies that the Source Listing Breakpoint screen be
displayed rather than the detailed breakpoint display screen.
No file updating (NUP)— Specifies that a monitored program not update any files. This
option only affects VSAM and BDAM files; databases are unaffected.
Note: The FOL option should not be specified if control is passed to a program by a LINK
or XCTL instruction. Such a program is monitored only if monitoring was specified for it.
Limit total size of CICS storage (MXS)—Limits the amount of storage, including program
storage, a program acquires.
Setting for Structure Display Format (SDF)—Use this option to override, by program,
the global default setting. Specify the following:
Set local automatic breakpoint (ABP)— Activates the automatic breakpoint facility for a
particular program, transaction, or terminal.
Specify the terminal to receive automatic breakpoint displays. An asterisk, *, routes the
display to the current terminal. A termid routes the display to a particular terminal. .ANY
routes the display to all terminals. OFF instructs CA InterTest for CICS to abend the task
instead of halting it at an automatic breakpoint.
Note: This option is useful when you do not want the breakpoint display routed to the
terminal where the program is running or when the display cannot be routed to that
terminal (for example, a non-terminal task or a task running on a non-3270 terminal). In
those cases, specify the terminal to which breakpoint displays should be routed. The
local automatic breakpoint option is also useful in a production environment when the
global Automatic Breakpoint facility is disabled and you want to monitor a specific
program, transaction, or terminal.
Limit monitoring (TON)—Specifies that the program be monitored and that the special
options, if specified, take effect only when the program executes at the current terminal
(*), at a specific terminal (termid), or without a terminal (.NO).
User ID (or .ANY) who will execute the program (USR)—Specifies that the program be
monitored and that special options, if specified, take effect only when the program is
executed by any user (.ANY) or a specific user (a CICS user ID).
Once you have specified the required information, press Enter. You are returned to the
monitoring submenu where you selected the Protect option.
To remove a special option, access the Monitoring Status display (2.4), scroll to the
monitoring entry for which you specified the option, and locate the specific special
option. Type R next to the option and press Enter.
To remove special options, access the same monitoring menu and specify R next to
Special, complete the Special Options menu by enter an x next to the options you want
to remove, or enter the information exactly as you originally defined it.
Composite Support
The CA InterTest for CICS composite support feature lets you take advantage of all CA
InterTest for CICS capabilities when you test and debug composite modules. A
composite module is a load module, defined in the PPT that consists of separately
compiled or assembled parts brought together when the module is link-edited. The part
of the composite module that receives control from CICS is referred to as the main
program. The remaining parts are referred to as subprograms. The main program and
subprograms can be written in the same or different languages.
Composite support lets you test and debug a subprogram as if it were a separate
program. This means you can set breakpoints and other monitoring options individually
for any subprogram. If the same subprogram is defined to more than one composite
load module, see the section Composite Support for Duplicate Subprograms (see
page 98) in the chapter "Source Listing Facility" for more details.
CA InterTest for CICS provides full symbolic support for the main program and
subprograms if you provide that information when the programs are compiled or
assembled.
CA InterTest for CICS needs link-edit information for the main program and
subprograms you want to test. There are two ways to provide link-edit information as
shown following:
■ Execute a batch job
■ Enter specifications online on the Composite Support screen
The CA InterTest for CICS batch job step, executed after the composite module is
link-edited, reads the link-edit map to determine the link-name, offset, and length of the
main program and each subprogram. This step also specifies the names under which CA
InterTest for CICS monitors each program.
After the batch job completes, access the Program Monitoring menu (2.1). Enter the
composite module name, the user ID who executes the program (or .ANY), type S next
to the Composite Option, and press Enter. CA InterTest for CICS displays the following
Composite Support screen.
The Composite Support screen lists link-edit information for the main program and
subprograms. Subprograms with prefixes DFH, ILB, and IBM are automatically excluded
from the list unless you specifically name them in the batch job step.
Monitor-Names
Once you have made all necessary changes, press PF5 to set composite support.
The fields on the Composite Support screen provide the following information:
Monitor-name—Specifies the name under which CA InterTest for CICS monitors the
program. The following rules apply to monitor-names:
■ Each monitor-name must be unique.
■ The monitor-name of the main program will always be the PPT name of the
composite module. This name cannot be changed.
■ The monitor-name of a subprogram cannot be a PPT name.
■ A monitor-name is identical to a link-name.
■ If you want symbolic information for a program or subprogram, its monitor-name
must be identical to the name used in the post-processor batch job step that
provides the symbolic information to CA InterTest for CICS.
Example
In the previous figure BIGMOD is the monitor-name of the main program; ASMMOD-A,
ASMMOD-B, and ASMMOD-C are the monitor-names of the subprograms you want to
test.
Offset—Specifies the hexadecimal offset of the program as listed in the link-edit map. If
the offset displays on the screen, you cannot change it.
Length—Specifies the hexadecimal length of the program as listed in the link-edit map.
If the length displays on the screen, you cannot change it.
lang chg to match symb—The language has been changed to the language specified
in the symbolic post-processor batch job.
Use PF8 and PF7 to scroll forward and backward through the list of programs. Enter a
slash, /, to the left of a link-name to position that program on the top of the next screen.
Example
Suppose CA InterTest for CICS displays the Composite Support screen for composite
module BIGMOD. You want to test SUBMOD-D, but you do not want to test SUBMOD-A,
SUBMOD-B, and SUBMOD-C. To do this, change the monitor-name specifications, as
shown, before pressing PF5.
Example
■ The monitor-names for SUBMOD-A, SUBMOD-B, and SUBMOD-C were removed
because those subprograms are not going to be tested. Removing the
monitor-names reduces overhead.
■ A monitor-name was specified for subprogram SUBMOD-D so that the subprogram
is tested separately.
Note: Changes made to the Composite Support screen affect that session only. So, if you
re-accessed the Composite Support screen for BIGMOD after making the previous
changes, the original screen is displayed. You could then submit the original
specifications or change those specifications again.
Enter the following information for COBDEMO and each subprogram you want to test
separately:
■ Link-names of the main program and each subprogram you want to test (required).
■ Monitor-names for each subprogram you want to test (required).
■ Hexadecimal offset and length of the main program and each subprogram you
want to test (required).
■ Language of the main program and each subprogram you want to test (optional). If
CA InterTest for CICS has symbolic information for the programs, omit this field
because CA InterTest for CICS uses the language specified in the symbolic
post-processor batch job. However, if you omit the subprogram language and CA
InterTest for CICS does not have symbolic information for that program, it defaults
to the language of the main program.
Note: Remember, it is not necessary to enter information for subprograms you do not
plan to test separately.
In the previous figure, subprograms ASM-A, ASM-B, and ASM-C are treated as one
program. Set breakpoints and other options for all CSECTs under the name ASM-A, the
monitor-name specified for subprogram ASM-A.
Note: The Composite Support screen might already have plus signs joining Assembler
CSECTs. This means the CSECTs were treated as one program in the post-processor
batch job step that provided symbolic information to CA InterTest for CICS.
To remove composite support, you must remove monitoring for the main program, as
shown in the following steps:
1. Access the Monitoring Status Report (2.4).
2. Scroll to the monitoring entry for the main program, type R to the left of the entry,
and press Enter.
Note: Remember, removing monitoring from the main program also removes
monitoring from all subprograms. In other words, all breakpoints and options set for the
main program and all subprograms are removed.
Disconnect a Task
To disconnect a terminal from CA InterTest for CICS while at a breakpoint, use
Breakpoint Primary Menu Option 7 Disconnect. This option lets non-CA InterTest for
CICS or non-CICS functions be performed at the terminal.
Reconnect a Task
To reconnect a terminal to the CA InterTest for CICS breakpoint, use the ITST Monitoring
Menu to reconnect a task. Monitoring Menu Option 5 Active-Tasks, lets you reconnect,
disconnect, and purge active tasks. From CICS, enter ITST 2.5 and the following Active
Tasks menu appears.
The Active-Tasks menu lets you type an R next to a task you want to reconnect to your
terminal, or type a P next to a task you want to purge.
Note: MRO environments should consult the Installation Guide for reconnection
considerations for tested transactions in implicit routing sessions.
Note: These options are password protected unless your site has removed this
restriction.
There are six options to select from on this screen. The equivalent option used in
single-line commands is specified in parentheses. Type S next to the option to select it,
and then complete the following screen. In many cases, you enter ON to set an option
and OFF to remove it.
ABP Option: Automatic breakpointing sets the Automatic Breakpoint Facility for the
entire system. Default. Breakpoint displays are routed to the terminal where the
program is running. Specify a terminal ID to indicate where breakpoint displays should
be routed for non-terminal attached tasks and for tasks executing from non-3270
terminals.
Modify below to set or remove the ABP option, then press ENTER.
If you specify OFF for the ABP option, you might want to use the Special Options from
the Program Monitoring submenu (2.1) to set the local Automatic Breakpoint option for
one or more programs. The local Automatic Breakpoint option overrides the system
Automatic Breakpoint option.
Modify below to set or remove the CKPT option, then press ENTER.
DUMP Option: Dumping all abends requests that a dump be produced for all abends.
Modify below to set or remove the DUMP option, then press ENTER.
GLOG: Global logging requests global logging of CA InterTest for CICS activity, most
CNTL commands, and all changes to main storage.
Modify below to set or remove the GLOG option, then press ENTER.
ITTRACE Option: CA InterTest for CICS tracing instructs CA InterTest for CICS to write
trace records to the CICS trace during monitoring.
Purge breakpointed tasks (PURGE) instructs CA InterTest for CICS to periodically purge
tasks halted at a breakpoint for longer than the specified interval. The first purge occurs
when the option is specified. Subsequent purges occur at the end of the interval,
specified in hours and minutes in this format hhmm. The minimal time interval is 20
minutes.
Note: Segmented monitoring is available with CA InterTest for CICS releases 5.x only and
applies to users of HOGAN Systems software, the MSA Corporation's DCI interface, and
LE/370 Condition Handler monitoring.
Segmented monitoring applies to users of HOGAN Systems software and the MSA
Corporation's DCI Interface. Programmed breakpoints are used primarily by PL/I users
who want to display data areas that CA InterTest for CICS normally cannot display or
who do not have symbolic information for their programs.
Because LE/370 condition handlers do not receive control the same way a normal CICS
program does, you must start and stop monitoring for the condition handler routine or
program by using the Segmented Monitoring breakpoint options (+ and -). For example,
use the Source Listing facility to display the condition handler routine or program, and
then set a start monitoring (+) breakpoint at the first statement number, which causes
CA InterTest for CICS to begin monitoring when the condition handler is invoked by
LE/370. Set normal breakpoints, such as unconditional, conditional and so on, in the
condition handler program. For details on segmented monitoring, Segmented
Monitoring to Handle Special Situations (see page 274).
You must set a stop monitoring breakpoint (-) before or at the GOBACK statement of the
condition handler or unpredictable results might occur.
Request monitoring for dynamically called COBOL programs through the Source Listing
and CNTL facilities the same way you request monitoring for first level CICS COBOL
programs.
Example
You might want to monitor recently installed or modified applications until you are sure
they are free of errors, or even monitor the entire production system if you have errors
that cannot otherwise be isolated.
When you use CA InterTest for CICS in a production environment, you should consider
the following items:
■ Where to route automatic breakpoint displays
■ How many times to monitor a program
■ Whether to restrict monitoring to a single terminal or user ID
■ What to do if you must monitor the entire system
When you monitor a program in a production environment, you usually do not want the
breakpoint display to appear at the operator's terminal because the information is
meaningless. Instead, CA InterTest for CICS either abends the task or routes the
Breakpoint Display.
If you want CA InterTest to abend the task before it damages CICS and writes a
transaction dump (INTE), deactivate the global automatic breakpoint facility. This facility
instructs CA InterTest for CICS to generate a breakpoint each time it detects an error in a
program that it is monitoring.
To deactivate this facility, select System-Wide Options from the Monitoring Menu
(Primary Menu Option 2.6), and enter OFF in the Automatic Breakpoint field, or enter
the command:
CNTL=ABP,OFF
When the global automatic breakpoint facility is deactivated, you might want to specify
the local automatic breakpoint option for certain programs, transactions, or terminals.
To specify this option, select Special Options from the Monitoring submenus (2.1, 2.2, or
2.3) and specify the programs, transactions, or terminals. Then specify the terminal to
which breakpoint displays should be routed. You could also enter the command:
CNTL=ON,promid,ABP=termid
When a new or modified program goes into production, limit the number of times CA
InterTest for CICS monitors it. The MUS option lets you specify the number of times CA
InterTest for CICS should monitor a program. To specify the MUS option, select Special
Options from the Monitoring submenus (2.1, 2.2, or 2.3) and specify the programs,
transactions, or terminals. On the Special Options menu, specify the number of times
monitoring should occur in the MUS field. You can also enter this command:
CNTL=ON,promid,MUS=nnn
When a program fails in the production system, use CA InterTest to monitor it so you
can find and correct the error. In a secure CICS region, restricting monitoring to a single
user ID means you test the program thoroughly without interfering with the work of
other users.
All monitoring methods let you specify a single CICS user ID when setting monitoring.
This limits monitoring to only that user, but permits the user to go to any terminal.
Monitoring by user ID can be the default in your system. If it is not, you must specify the
user ID each time you set monitoring or a monitoring option. If you are using the Source
Listing facility or the menus to set monitoring, press PF1 to get help on how to monitor
by user ID. If you are using CNTL commands, specify the USR option when you set
monitoring, as follows:
CNTL=ON,promid,USR=userid
When a program fails in the production system, use CA InterTest for CICS to monitor it
to find and correct the error. Restricting monitoring to a single terminal means you test
the program thoroughly without interfering with the work of other users.
If you are using the CNTL Monitoring Command Builder menus, limit monitoring to a
single terminal on the Replacement Options, Protection Options, and Special Options
screens. If you are using commands, specify the TON option when you set monitoring,
as follows:
CNTL=ON,promid,TON=termid
You usually want to avoid monitoring the entire production system because of the high
overhead involved. But what if your production system has a serious error and you
cannot isolate the problem program? In that case, instruct CA InterTest for CICS to
monitor all the programs in the production system for every user or for a specific user
only.
If your system is experiencing sporadic problems that are difficult to isolate, you might
want to monitor all programs executed by the user experiencing the problems. In a
secure CICS region, use the following global monitoring command with the user ID
option for the user experiencing the problem:
CNTL=ON,PROG=.ALL,USR=cics-userid
While CA InterTest is monitoring all of the programs, use the Active Tasks display
(Primary Menu Option 2.5 Monitoring Active Tasks) to check for problems. When CA
InterTest for CICS finds that a program is about to commit an error, it halts the program
at an automatic breakpoint and automatically creates a Monitoring Table entry for that
program. The monitoring status report provides that information. As soon as you see
that CA InterTest for CICS has identified the problem program, turn monitoring off for
the system and monitor the problem program for a single user or at a single terminal
until you resolve the error.
Alternatively, monitor a certain percentage of your programs until CA InterTest for CICS
finds the problem program.
Example
You might monitor 10 percent of your programs one week, another 10 percent the next
week, and a third 10 percent the following week.
This approach minimizes overhead, and takes advantage of the ability of CA InterTest
for CICS to track down problems that are otherwise very difficult to resolve.
If you set unconditional, conditional, and request breakpoints and you want to see the
breakpoint display, you must indicate that the task is running without a terminal.
Specify the terminal to receive breakpoint displays.
If you specify .ANY for the terminal at which the task must be executing, the breakpoint
occurs at all terminals—even when the task runs without a terminal. If you specify .NO,
the breakpoint occurs only when the task executes without a terminal.
Note: If you set a breakpoint, the local automatic breakpoint option is automatically set
for the program.
Automatic Breakpoints
To identify a terminal to receive breakpoint displays for all non-terminal attached tasks
and for tasks executing from non-3270 terminals, select System-Wide Options from the
Monitoring Menu (Primary Menu Option 2.6, Breakpoint Menu Option 1.2.6). On the
System-Wide menu, specify a terminal ID for the global automatic breakpoint option.
Monitor a task only when it executes without a terminal. Specify this by selecting
Replacement Options, Protection Options, or Special Options from Monitoring
submenus (2.1, 2.2, or 2.3). Specify .NO in the Limit Monitoring field. You can also enter
the following command:
CNTL=ON,promid,TON=.NO
Monitor a task only when it executes without a terminal. Specify this by selecting
Replacement Options, Protection Options, or Special Options from the Monitoring
submenus, and then specify .NO in the Limit Monitoring field. For details, see the
chapter "Monitoring Menu Options." You can also enter this command:
CNTL=ON,promid,TON=.NO
Automatic Breakpoints
If you set unconditional, conditional, and request breakpoints and you want to get the
breakpoint display, you must specify .ANY or a terminal ID for the terminal at which the
task must be executing for breakpoints to take effect.
Route breakpoint displays to a specific terminal. To change the terminal ID: use the
Source Listing Profile, and change the setting prior to setting any breakpoints.To see
your current terminal's ID, enter TERM on the command line of any Source Listing or
Breakpoint display.
If CA InterTest for CICS was installed with the DFLTUSER value in IN25OPTS set to
SPECIFIC, Terminal ID =.ANY is the default terminal setting. When the DFLTUSER option
is set to .ANY, the default terminal ID is the terminal used to set the breakpoint. To view
your IN25OPTS settings, use Primary Menu Option 7.12.
Use segmented monitoring sparingly for special debugging needs, such as when only
certain pieces of code should be monitored because of excessive overhead or because
they get control directly from programs (or interfaces) that must not be monitored by
CA InterTest for CICS. The following figure shows why segmented monitoring is used.
--------------------------------------------------------------------------------
-
Important! Improper use of segmented monitoring options could damage your CICS
system because CA InterTest for CICS places invalid machine instructions in application
programs at the segmented monitoring locations specified by the user. Review Notes
and Warnings (see page 286) before using segmented monitoring.
For users running CA InterTest for CICS 5.x releases on a z/OS system, the monitoring
problems that follow are solved with segmented monitoring.
MON turns CA InterTest for CICS monitoring on beginning with the machine instruction
of the specified location (regardless of how this piece of application program got
control). If CA InterTest for CICS monitoring was already on, monitoring continues. After
a MON entry, monitoring continues unless CA InterTest for CICS encounters one of the
following:
■ A NOM entry
■ An XCTL
■ A RETURN
NOM stops CA InterTest for CICS monitoring at the specified location and gives control
to the machine instruction on which the NOM option was specified. If the code was not
already being monitored, it continues unmonitored. After a NOM entry, the program
continues unmonitored unless CA InterTest for CICS encounters a MON entry or a
LINK/XCTL to another program already being monitored.
Specify these options in your program at the same type of locations you use to set
individual breakpoints, such as at COBOL paragraph names or statement numbers. Each
option takes effect as it is encountered during program execution. Each MON and NOM
option is an independent request to start or stop CA InterTest for CICS monitoring,
regardless of the current monitoring status.
Note: The MON and NOM options are not CICS user ID or terminal sensitive. An option
set from one terminal applies when the program executes from any terminal by any
CICS user.
When using MON and NOM, specify breakpoints and other options in your program. If
you set a MON or NOM option at the same location as a breakpoint or other option, the
MON or NOM option executes first. This means the MON option starts monitoring and
hits the breakpoint, but since NOM drops monitoring before the breakpoint is
encountered, you never receive the breakpoint that is set where a NOM is also set.
The segmented monitoring option must be enabled as part of the installation and
customization procedure. Enable it with or without CNTL menu support, and with or
without password protection.
To check the status of the segmented monitoring option on your system, select Primary
Menu Option 7 Status/Maintenance, and then Option 1.2 Global Options. The current
IN25OPTS values are displayed alphabetically. Look for the option MONOM.
MENU—Segmented monitoring is enabled for all methods: Source Listing, CNTL menus,
and CNTL commands.
Note: CA InterTest for CICS releases prior to 5.1 do not support segmented monitoring.
There are three methods for setting and removing MON and NOM, as shown following:
■ Source listing
■ CNTL menus
■ CNTL one-line commands
This method requires a listing version that corresponds to your load module. If you use
an old listing version, you can experience unpredictable results during
execution—ranging from no effect, to unexpected abends, to data corruption.
To set a location for a MON option in your source listing, enter a plus sign, +, to the left
of the statement in your listing where you want monitoring to begin, and press Enter.
Likewise, to set a location for a NOM option, enter a minus sign, -, to the left of the
statement in your listing where you want monitoring to stop, and press Enter. If a
password is required, enter the password at the prompt.
Example
The following screen shows setting MON and NOM in your source listing.
Set breakpoints within the execution path of the MON and the NOM locations in the
program.
Note: If you specify a MON or NOM option and a breakpoint at the same location, CA
InterTest for CICS displays the character for the first option entered in column 1,
although both options are set. To obtain a status display of the options in effect, enter
STATUS in the command line, and press Enter.
To remove a MON or NOM option location, overtype the plus sign, +, or minus sign, -,
with an X. Press Enter, and the option is removed.
To quickly remove all segmented monitoring options for a program, turn monitoring off
for the program, remove the options from the Monitoring Status display, or use the .ALL
entry on the CNTL Segmented Monitoring ON and OFF menus.
Access the specific CNTL menu directly from the Source Listing Display by making the
following entries in the Option # field:
When segmented monitoring is enabled with MENU support, set and remove
segmented monitoring for programs directly from the following CNTL Function Selection
Menu, using Options 14 (Segmented Monitoring On) and 15 (Segmented Monitoring
Off).
For functions 1030, enter Program Names or Transaction Codes or Terminal Names
user ID ________ user ID (or .ANY) who will execute the program
Notes:
■ If Options 14 and 15 do not display on the Function Selection menu, menu support
for segmented monitoring is not available to you.
■ If segmented monitoring is password protected, you are prompted to enter the
password.
■ Specifying NOM options with the menus is tricky because of double negatives:
– Use 15S to set a segmented monitoring off, or NOM, location.
– Use 15R to remove a segmented monitoring off, or NOM, location that you
previously set.
Specify segmented monitoring locations like you would specify individual breakpoint
locations on the Segmented Monitoring On and Off screens.
The following screen is used to set the monitor on locations in COBOL programs. The
sample entry specifies that monitoring begins (or continues) whenever user CARAR01
executes the first executable statement in the paragraph A-TEST.
SET `monitor on' option for PROG=COBDEMO in any of the following fields:
(For qualification by nested program name, specify 'Programid:Label')
Paragraph ATEST_______________________ _______________________________
Names: _______________________________ _______________________________
_______________________________ _______________________________
Statement
Numbers: _____ _____ _____ _____ _____ _____ _____ _____
There are similar versions of this menu for Assembler and PL/I users. Specify multiple
monitors on locations on this menu. Valid locations are as follows:
■ COBOL (paragraph names, statement numbers, or hexadecimal offsets)
Note: You cannot specify COBOL data names as segmented monitoring locations.
■ Assembler (labels or hexadecimal offsets)
■ PL/I (PL/I labels, statement numbers, or hexadecimal offsets)
Remove any option directly from the Monitoring Status display, as discussed in the
chapter "Menus and Displays." Specify individual locations to be removed exactly as you
set them or by the ID number shown on the CA InterTest for CICS status display. To
quickly remove all locations at once, enter .ALL in the first field as shown on the menu
and enter the same user ID (or .ANY) used to set the options.
The following screen is used to remove the monitor on locations that were previously
set in the program for user ID CARAR01.
Remove `monitor on' option for PROG=COBDEMO in any of the following fields:
The following screen is used to set locations for no monitoring in COBOL programs; it
specifies two locations:
■ Specifies the first executable statement in paragraph A-TEST-EXIT.
■ Indicates statement number 125 in the program.
SET `monitor off' option for PROG=COBDEMO in any of the following fields:
(For qualification by nested program name, specify 'Programid:Label')
Paragraph ATESTEXIT___________________ _______________________________
Names: _______________________________ _______________________________
_______________________________ _______________________________
Statement
Numbers: 125__ _____ _____ _____ _____ _____ _____ _____
Note: There are similar versions of this menu for Assembler and PL/I users.
Specify multiple monitor off locations on this menu. Valid locations are as follows:
■ COBOL (paragraph names, statement numbers, or hex offsets)
Note: You cannot specify COBOL data names as segmented monitoring locations.
■ Assembler (labels or hex offsets)
■ PL/I (PL/I labels, statement numbers, or hex offsets )
Specify individual locations to be removed exactly as you set them, or by the ID number
shown on the CA InterTest for CICS status display. To quickly remove all locations at
once, enter .ALL in the first field on the menu and the same user ID (or .ANY) used to set
the options. The following screen is used to remove the monitor off locations that were
previously set in the program using the ID number shown in the status report.
REMOVE `monitor off' option for PROG=COBDEMO in any of the following fields:
(For qualification by nested program name, specify 'Programid:Label')
Paragraph ______________________________ _______________________________
Names: ______________________________ _______________________________
______________________________ _______________________________
Statement
Numbers: __ _____ _____ _____ _____ _____ _____ _____
CNTL Commands
Review Notes and Warnings (see page 286) later in this chapter before using command
syntax to specify segmented monitoring.
To set one or more MON options; use either of the commands shown next. To set one
or more NOM options; use NOM instead of MON in these commands.
CNTL=ON,PROG=progname,MON=locn
CNTL=ON,PROG=progname,MON=(locn1,locn2, ...,locn9)
progname
Indicates one program.
locn
Specifies an address (from six- to eight-hexadecimal digits), offset (from one- to
five-hexadecimal digits), statement number (a decimal number preceded by #),
COBOL paragraph name, Assembler or PL/I label (enclosed in apostrophes).
At a breakpoint display, enter the abbreviated command form to see this Monitor Table
entry:
CNTL=ON*,MON=... or CNTL=ON*,NOM=...
Other options, including breakpoints, precede or follow within the same CNTL
command.
To remove one or more MON options, use one of the following command forms. To
remove all NOM options, use NOM instead of MON in these commands
CNTL=OFF,PROG=progname,MON=ID=id
CNTL=OFF,PROG=progname,MON=locn
CNTL=OFF,PROG=progname,MON=ID=(id1,id2, ...,id9)
CNTL=OFF,PROG=progname,MON=(locn1,locn2, ...,locn9)
progname
Indicates the name of one program.
id
Indicates same number as the ID= number displayed by the CA InterTest for CICS
Inquiry Report (obtained by CNTL=INQ or, at breakpoint, by pressing PF3).
locn
Specifies an address (from - to eight-hexadecimal digits), offset (from one to five
hexadecimal digits), statement number (a decimal number preceded by #), COBOL
paragraph name, Assembler or PL/I label (enclosed in apostrophes).
To remove all MON options for a Monitor Table entry, use the form:
CNTL=OFF,PROG=progname,MON=.ALL
At a breakpoint, use the abbreviated command form to see this Monitor Table entry:
CNTL=OFF*,MON=...
CNTL=OFF*,NOM=...
Other options, including breakpoints, precede or follow within the same CNTL
command.
Note: The command CNTL=OFF,PROG=progname does not remove the MON or NOM
entries for a program. To remove the MON and NOM options, you must explicitly
specify them.
Examples
The following are command examples of specifying MON and NOM options.
To selectively monitor the program COBPROGA from paragraph A-TEST to the paragraph
name A-TEST-EXIT, specify:
CNTL=ON,PROG=COBPROGA,MON='A-TEST'
This command declares a MON option for the first machine instruction in A-TEST. CA
InterTest for CICS monitoring starts when the first machine instruction at A-TEST is
executed.
The following command declares a NOM option for the first machine instruction in
statement 123. CA InterTest for CICS monitoring stops prior to the execution of this
statement.
CNTL=ON,PROG=COBPROGA,NOM=#123
The following command declares a NOM option for the first machine instruction in the
paragraph A-TEST-EXIT.
CNTL=ON,PROG=COBPROGA,NOM='A-TEST-EXIT'
The following command declares the same options as the three preceding commands.
CNTL=ON,PROG=COBPROGA,MON='A-TEST',NOM=(#123,'A-TEST-EXIT')
The following command selectively removes the two NOM options that were displayed
by an Inquiry Report with ID= numbers 02 and 03.
CNTL=OFF,PROG=COBPROGA,NOM=ID=(02,03)
CNTL=OFF,PROG=COBPROGA,MON=.ALL,NOM=.ALL,LET=.ALL
Note: Any non-sequential passing of control (such as PERFORM, GO TO, and so on),
executed between the MON location at A-TEST and the NOM location at
A-TEST-EXIT could result in CA InterTest for CICS monitoring outside the designated
range.
The following information contains notes and warning that you should be aware of
when using CA InterTest for CICS.
Location Restrictions
Programmed breakpoints differ from other CA InterTest for CICS breakpoints because
they are actually coded by the programmer into the tested program. A programmed
breakpoint occurs because it was written into the monitored program in the form of a
special CALL statement that identifies the data areas to display. The Detailed Breakpoint
display automatically shows, in dump format, up to three data areas named in the CALL
statement parameters. There is no need to enter CORE commands to display these
areas. However, if there are more than three data areas, use the command
CORE=ARGnn to display them.
If you are using the Source Listing Breakpoint facility, CA InterTest for CICS stops the
program at the programmed breakpoint. Press PF3 DET BKPT to display the Detailed
Breakpoint screen to view the requested data areas.
The programmed breakpoint will not occur unless the automatic breakpoint facility is
active. If this facility is not active, the programmed breakpoint CALL has no effect on
program execution. The programmed breakpoint also does not affect program
execution if the program is not monitored by CA InterTest for CICS (the called routine
only does a return). However, a small amount of overhead is added to the program's
execution. For this reason, programmed breakpoints should be removed before the
program is put into production.
When control comes to the program location where the programmed breakpoint should
occur, CA InterTest for CICS executes the programmed breakpoint just like an automatic
breakpoint, except that in the data portion of the display 16 bytes of the first three
passed parameters are automatically displayed. In addition, a CORE command keyword
is provided to display the parameters.
The small Assembler programmed breakpoint load module, which is identical for all
programming languages, must be prepared by your systems programmer and
assembled and link-edited into the proper language library so that it is automatically
included in your module as a result of the CALL. The program follows:
PBP CSECT
SR 15,15
BR 14
DC C'PBPINTERTEST'
END PBP
A PL/I program with a programmed breakpoint must be coded to define the entry point
as passing parameters in Assembler fashion, as shown next:
Example
WRITE_RESPONSE:
RESPONSE = ERROR CODE;
CALL PBP ('WRITE_RESPONSE',RESPONSE,ADDR(REC_SIZE));
At this programmed breakpoint, the breakpoint display shows the following data areas:
■ The characters WRITE_RESPONSE tell you which programmed breakpoint (if many
was coded) is being executed
■ The first 16 bytes of the field named RESPONSE
■ The full word that contains the address of the field named REC_SIZE
WRITE-RESPONSE.
MOVE ERROR-CODE TO RESPONSE.
CALL 'PBP' USING RESPONSE.
At this programmed breakpoint, the breakpoint display shows the first 16 bytes of the
field named RESPONSE.
If you do not include parameters in the CALL statement, a programmed breakpoint still
occurs but data is not automatically displayed.
In Assembler you must use the CALL macro, coded so that the last parameter is marked
as such, or coded without parameters. Because of the restrictions of the CALL macro, it
is often practical not to code parameters. The breakpoint display shows the location of
the programmed breakpoint and the contents of the registers.
If you do not include parameters in the CALL statement, a programmed breakpoint still
occurs but data is not automatically displayed.
Once you code a programmed breakpoint CALL in a program, the breakpoint occurs
every time execution reaches the programmed breakpoint's location during an
interactive session. The only way to deactivate the programmed breakpoint is to replace
the BALR 14,15 instruction in the program, which is contained in the CALL statement, by
a NOPR 0. When the task is waiting at breakpoint, do this easily by issuing the
command:
CORE=CURR=CHGX'0700'
However, since this modifies the program's code, the programmed breakpoint will not
occur again until the program is reloaded by CICS.
After program testing is complete, the programmed breakpoint CALL statements should
be removed for improved performance.
CA InterTest for CICS releases 5.2 and higher let both front-end and back-end processes
be tested. However, the terminal IDs must be properly specified when breakpoints are
set.
Set monitoring and breakpoints as usual when testing a front-end process only.
Turn on monitoring as usual for a back-end process running in a local CICS region.
To set breakpoints for a back-end process running in a local region, specify both the
terminal at which the process is running and the terminal to receive breakpoints, as
follows:
■ Term ID where breakpoints take effect: (F=)
The virtual terminal assigned by CICS. Specify either an actual virtual terminal name
or .ANY if the terminal is assigned from a pool and its name is not known.
■ Term ID that receives the breakpoints: (T=)
The real terminal to which breakpoints should be sent.
It is important that breakpoints not be sent to a virtual terminal because this could
disrupt the application dialog screen flow.
If the back-end process is running in a remote CICS region, turn on monitoring in the
remote region and ensure that the terminal that receives breakpoints is a real terminal
connected to the remote region.
To set breakpoints for both front- and back-end processes that are running
concurrently, follow the steps outlined in the previous sections. However, make sure
that two real terminals are available for receiving breakpoint displays: one for
breakpoints from the front-end process, and one for breakpoints from the back-end
process. For example, if both processes are running in the same CICS region, you might
enter the following commands from TER1:
CNTL=ON,PROG=FRONTEND,UBP=#1
CNTL=ON,PROG=BACKEND,UBP=((#1),F=VIR1,T=TER2)
Breakpoint displays for program FRONTEND are sent to TER1, the terminal at which the
command was issued. Breakpoint displays for program BACKEND are sent to TER2.
If the back-end process is running in a remote CICS region, perform these steps:
1. Set monitoring and breakpoints for the front-end process in the local region.
2. Set monitoring and breakpoints for the back-end process in the remote region from
any real terminal.
TIMEOUT Values
When CA InterTest for CICS and EDF are being used on the same task, be aware of the
following points:
■ If a CA InterTest for CICS breakpoint is set at an EXEC CICS command, the CA
InterTest for CICS breakpoint occurs before the command is passed to CICS.
■ At the breakpoint, the programmer reviews and changes any parameters of the
command before telling CA InterTest for CICS to continue with the task.
■ CA InterTest for CICS checks the parameters and, if necessary, halts the task at an
automatic breakpoint.
■ If that does not happen, the command is passed by CA InterTest for CICS to CICS for
execution; that is, to the EXEC Interface.
■ Subsequently, EDF presents the before a command breakpoint. The EDF facility,
however, is in control at that time and any changes by you during the EDF
breakpoint cannot be checked by CA InterTest for CICS.
■ Only after the command is executed, the EDF breakpoint display opens, and EDF is
told to continue with the task can CA InterTest for CICS resume control and
continue monitoring.
Note: The CNTL Monitoring Command Builder menu topics are included in this chapter
as a reference for CA InterTest for CICS users familiar with this method of performing
monitoring functions from previous releases.
CNTL=ON,PROG=COBDEMO,USR=BARNEY1,UBP=#1
Note: For more information about specifying CNTL Monitoring Options, CNTL
Monitoring Options (see page 311) later in this chapter.
For CICSPlex environments using the CA InterTest for CICS CICSPLEX=YES installation
option, all CNTL functions that are checkpointed are propagated to all CICSPlex family
members on startup (CNTL=START) or restart (CNTL=RESTART). The following table
summarizes which CNTL commands are propagated and which are not.
The following list contains the terms used in command syntax for which you must
substitute the appropriate information.
promid
Identifies one or more programs, transactions, or terminals. Use one of the
following formats:
PROG=program
PROG=(prog1,...,prog9)
TRAN=trancode
TRAN=(tran1,...,tran9)
TERM=terminal
TERM=(term1,...,term9)
PROG=.ALL to specify the entire system
Note: * replaces promid for the monitoring table entry currently at a breakpoint at your
terminal.
progname
Identifies a program.
locn
Identifies a program location. Specify a location in one of the following ways:
■ One- to five-digit hexadecimal displacement (offset) from the beginning of the
program
■ Six- or eight-digit hexadecimal address
■ A COBOL paragraph name enclosed in single quotes
■ A COBOL or PL/I statement number preceded by a # sign
■ A PL/I or Assembler label enclosed in single quotes
options
Indicates one or more CNTL monitoring options. Separate multiple options with
commas.
Enter CNTL commands directly on a clear screen or on the command line of a source
listing, breakpoint, or CORE display.
Specify asterisks, *, and plus signs, +, to replace characters in promid in the following
CNTL commands:
CNTL=ON,...
CNTL=OFF,...
CNTL=EXCL,...
CNTL=INCL,...
CNTL=INQ,...
These specifications are interpreted according to the rules for the CICS CEMT
transaction.
Examples
To specify all programs that start with ABC, including program name ABC, enter:
PROG=ABC*
To specify all programs that end with ABC, including program name ABC, enter:
PROG=*ABC
To specify all programs that start with AB and end with C and all those that could have
an unspecified number of characters in the middle, enter:
PROG=AB*C
Note: Specifies more than one asterisk in a promid. Do not specify an asterisk by itself:
PROG=* because it is invalid.
To specify all four-character program names that begin with ABC followed by any one
character, enter:
PROG=ABC+
To specify all four-character program names that begin with any character followed by
ABC, enter:
PROG=+ABC
To specify all four-character program names that begin with AB followed by any one
character and C, enter:
PROG=AB+C
Note: Specify more than one plus sign in a promid. Do not specify a plus sign by itself:
PROG=+ because it is invalid.
To specify all programs that begin with AB followed by one character, C, and an
unspecified number of characters, enter:
PROG=AB+C*
Example
Suppose you specify monitoring options for program ABC1 and different options for
transaction TRN1. ABC1 executes as part of that transaction. When ABC1 executes, the
options specified for ABC1 override the options specified for TRN1.
Example
Suppose you specify monitoring options for program ABC1 and different monitoring
options for program ABC*. The options specified for ABC* affect all programs whose
names begin with ABC except for program ABC1 (and any other programs beginning
with ABC that have their own entries in the monitoring table). Monitoring for ABC1 is
controlled by the specific entry for that program. However, if you specify
CNTL=INQ,PROG=ABC*, you get monitoring status reports for all programs that begin
with ABC, including programs such as ABC1, which have separate monitoring table
entries.
CNTL=START
CNTL=END
Important! This command terminates CA InterTest for CICS for all users and could be
password protected.
CNTL=RESTART
or
CNTL=RESTART,TODAY=ONLY
This command restarts CA InterTest for CICS from the last recorded checkpoint. If
TODAY=ONLY is specified, CA InterTest for CICS is restarted only if the checkpoint
occurred on the same day.
When CA InterTest for CICS is restarted from a sequential terminal, it ignores all input
records following the RESTART command until it finds a record with this command:
CNTL=DUMMY
This terminates the CNTL transaction and permits the system to execute transactions
from subsequent input records. However, if the restart is unsuccessful, the CNTL
transaction terminates and all input records that follow the RESTART command are
executed as usual by CICS.
CNTL=ON,promid
CNTL=ON,PROG=.ALL,USR=.ANY
To set monitoring for all programs executed by the user whose CICS user ID is BARNEY1,
enter:
CNTL=ON,PROG=.ALL,USR=BARNEY1
CNTL=OFF,promid
Examples
CNTL=ON,PROG=cobdemo
CNTL=OFF,PROG=(cobdemo,payprog)
If you set monitoring for a transaction or terminal and a program executing as part of
that transaction or at that terminal is stopped at an automatic breakpoint, CA InterTest
automatically creates an entry in the monitoring table for that program. This enables
you to set breakpoints and monitoring options for that individual program. Similarly, if
you specified CNTL=ON,PROG=.ALL or you specified a generic program name, CA
InterTest for CICS creates an individual monitoring table entry for any program
monitored under that entry that CA InterTest for CICS stops at an automatic breakpoint.
CNTL=ON,promid,options or CNTL=ON*,options
CNTL=ON,PROG=.OPTIONS,USR=.ANY,options
Options specified on a system-wide basis take effect for all programs CA InterTest for
CICS monitors.
Notes: Specify only the following options on a system-wide basis: ABI, CSA, FOL, ICT,
LET, MXR, MXS, NUP, PRO, RFC, RNT, RPC, RTD, RTS, SLB, STR, and TRC.
CNTL=OFF,promid,options OR CNTL=OFF*,options
Examples
To set the Follow option for the task currently at a breakpoint at your terminal, enter:
CNTL=ON*,FOL=ON
CNTL=ON,PROG=.OPTIONS,NUP=ON
CNTL=OFF,PROG=cobdemo,UBP=#1
CNTL=OFF,ALL,USR=userid or CNTL=OFF,ALL,TTR=termid,FTR=termid
Use this command with caution because it removes monitoring options for more than
one program or transaction. This command is also passed to the CNTL transaction as
data on a CICS START command and could be used by an installation's AutoInstall exit
when a terminal signs off to automatically remove all CA InterTest for CICS breakpoints
set by the terminal or user ID.
CNTL=EXCL,promid
CNTL=INCL,promid
Note: INCL and EXCL are not sensitive to the monitoring user ID.
Examples
CNTL=EXCL,TRAN=PYRL
To remove program PAYROLL1 from the exclusion list so it is again eligible for
monitoring, enter:
CNTL=INCL,PROG=payroll1
CNTL=GO,TASK=taskid,C[,options]
taskid
Represents the number of the task at a breakpoint. Use the CNTL=INQ command to
determine the taskid.
C instructs CA InterTest for CICS to continue execution.
CNTL*C[,options]
CNTL=GO,TASK=taskid,Ddddd[,options]
Ddddd, dddd
Specifies a four-character transaction dump code.
Specify the following options with the CNTL commands for resuming execution:
AT=locn
or
AT=X
GO=locn
NOBREAK
S=#nnn[,I=nn][,N=CALL/xxxx]orS=nnn[,I=nn][,N=CALL/xxxx]
GO=locn specifies the location at which the task should resume execution. For details,
see Limitations of Using the GO=Element.
NOBREAK resumes execution from the current statement ignoring all preset
breakpoints and indirect commands until the task either abends or runs to normal
completion. Use the NOBREAK option on:
CNTL*C
or
CNTL=GO, TASK=xxxxx, C
Examples
CNTL=GO,TASK=12345,C,GO=`task-number-for-msg'
To specify that the task currently at a breakpoint at your terminal resume at statement
number 142 and that the program execute five COBOL verbs or PL/I statements before
being halted, enter:
CNTL*C,GO=#142,S=#5
To specify that task 12345 resume execution after taking a dump and that the current
breakpoint be disabled, enter:
CNTL=GO,TASK=12345,Dhelp,AT=X
To specify that task 777 resume execution at indirect command sequence number 10,
enter:
CNTL=GO,TASK=777,C,EXEC=0010
When changing the execution sequence of a high level program, especially COBOL or
PL/I, you must take responsibility for securing proper addressability of the data that will
be processed in the piece of logic specified by GO= element.
In COBOL, before you force a branch (GO TO) to the routine using GO= element, the
BLLs and their corresponding registers must contain correct addresses. Accomplish this
with CORE commands, especially the =SET element of the CORE command. Use symbolic
names of BLL cells. The BLL cells are related to their data structures in the Data Division
Map (DMAP) of the COBOL listing, while the related registers are found in the register
assignment section of the memory map.
SERVICE RELOAD statements in the COBOL program are necessary to notify the COBOL
compiler that, at a specific time, the registers must be reloaded when the address of the
base of a certain data structure changes. If you force a branch (GO TO) to the intended
routine using the GO= element and, in the process, you cross the boundaries of SERVICE
RELOAD, then it is necessary to set the addresses.
In PL/I, you not only must secure the proper addressability of data, but also remain
within the same logical level (such as the same DO block or called procedure). Going to
another logical level requires going through all intermediate epilogues and prologues.
CNTL=GO,TASK=taskid,Adddd[,options]
taskid
Represents the number of the task at a breakpoint. Use the CNTL=INQ command to
determine the taskid.
Adddd dddd
Specifies a four-character transaction dump code. Replace dddd with XXXX to
abend the task without a dump and disable exits.
Note: A dump code of XXXX is not allowed for tasks in a MRO session. Specify A by itself
to abend the task without a dump and enable the exits.
AT=locn or AT=X
Examples
To abend task number 54321 with a dump and a transaction dump code of DMP1,
enter:
CNTL=GO,TASK=54321,Admp1
CNTL=GO,TASK=54321,AXXXX
To abend the current task with a dump and move the current breakpoint to statement
number 128, enter:
CNTL*Admp1,AT=#128
CNTL*AXXXX
CNTL=INQ,promid[,TODEST=destid]
To produce a monitoring status report for the task currently at a breakpoint at your
terminal, enter:
CNTL?
CNTL=INQ[,TODEST=destid]
CNTL=LIST[,TODEST=destid]
To display the entire contents of the CA InterTest for CICS symbolic file, enter:
CNTL=INQ,SYM=ALL[,TODEST=destid]
To display information for one program in the CA InterTest for CICS symbolic file, enter:
CNTL=INQ,SYM=progname[,TODEST=destid]
destid
Represents the transient data destination. If omitted, the report displays on your
terminal screen.
Examples
To request a monitoring status report that displays on your terminal screen for program
COBDEMO, enter:
CNTL=INQ,PROG=cobdemo
To request a monitoring status report for all programs that is routed to the CSSL
transient data queue, enter:
CNTL=INQ,TODEST=CSSL
To request a report listing information on all programs in the symbolic file that is routed
to the CSSL transient data queue, enter:
CNTL=INQ,SYM=ALL,TODEST=CSSL
CNTL=NEW,PROG=progname
Note: The specified program is declared for monitoring before any breakpoints are
reset. Monitoring and breakpoints are reset for all user IDs.
Example
CNTL=NEW,PROG=COBDEMO
Note: This parameter should be used with caution as it forces CA InterTest for CICS to
use the first symbolic file member it finds for a program being NEW copied when
breakpoints are reset after the new module is copied.
CNTL=ABP,ON,termid
Breakpoint displays are routed to the terminal where the program is running. Specify a
terminal ID to indicate where breakpoint displays should be routed for non-terminal
attached tasks and for tasks executing from non-3270 terminals.
Note: The delivered default is to activate the global automatic breakpoint facility when
CA InterTest for CICS is initialized.
CNTL=ABP,OFF
If you deactivate the global automatic breakpoint facility, set the local Automatic
Breakpoint option for one or more programs, transactions, or terminals. The local
Automatic Breakpoint option overrides the system automatic breakpoint facility.
To log all CNTL commands (except INQ and LIST) and all changes made to main storage,
enter:
CNTL=GLOG,ON
CNTL=GLOG,OFF
To activate checkpointing so that the status of the CA InterTest for CICS monitoring is
periodically monitored so that you can use the restart feature, enter:
CNTL=CKPT,INTRVAL=hhmm
The first checkpoint occurs when the option is specified. Subsequent checkpoints occur
at the end of the interval, specified in hours and minutes. The time interval must be at
least ten minutes,
CNTL=CKPT,OFF
CNTL=PURGE,INTRVAL=hhmm
The first purge occurs when the option is specified. Subsequent purges occur at the end
of the interval, specified in hours and minutes. The time interval must be at least 20
minutes
CNTL=PURGE,ALL=ONCE
CNTL=PURGE,OFF
Example
CNTL=CKPT,INTRVAL=0050
After the product is activated, enter the following command to execute the commands
in the module:
CNTL=EXEC,MODULE=modulename
Note: The CNTL=LIST and CNTL=INQ commands cannot be specified in the module.
Construct as many of these modules as you want. Each should have its own entry in the
PPT.
CNTL=ON,promid,options or CNTL=ON*,options
CNTL=OFF,promid,options or CNTL=OFF*,options
To remove an option that was specified more than once for a program, enter:
CNTL=OFF,promid,option=.ALL
The .ALL specification is valid for the following options: BYP, CBP, CSA, KEP, LET, MON,
NOM, PRO, RFC, RPC, RTD, RTS, and UBP.
Examples
To instruct CA InterTest for CICS to limit the number of CICS requests made by program
COBDEMO to 40, enter:
CNTL=ON,PROG=cobdemo,MXR=40
To instruct CA InterTest for CICS to stop limiting the number of CICS requests made by
program COBDEMO for user ID BARNEY1, enter:
CNTL=OFF,PROG=cobdemo,MXR=40,USR=BARNEY1
To instruct CA InterTest for CICS to remove all RFC options specified for program
COBDEMO, enter:
CNTL=OFF,PROG=cobdemo,RFC=.ALL
Example
Specify the UBP option at various times to set unconditional breakpoints within a
program. Each specification remains in effect until it is removed.
Specify the following options more than once: BYP, CBP, CSA, DM, KEP, LET, MON, NOM,
PRO, RFC, RPC, RTD, RTS, SLB, TRC, and UBP. For other options, only one specification is
in effect at one time for a program, transaction, or terminal. The last specification is the
one that CA InterTest for CICS recognizes.
For the following options, only one specification is in effect at a time: ABI, ABP, FOL, ICT,
MUS, MXR, MXS, NUP, RNT, STR, TAL, and TON.
ABI=ON (Default). Intercepts all CICS abends and produces automatic breakpoints for
programs or tasks that do not have an active CICS HANDLE ABEND. If you want to
intercept CICS abends for programs or tasks that have an active CICS HANDLE ABEND
command, use the ABI=FORCE option.
ABI=OFF causes CA InterTest for CICS to STOP intercepting CICS ABENDS for the
specified program.
Examples
CNTL=ON,PROG=ABC,ABI=ON
CNTL=ON,PROG=ABC,ABI=OFF
CNTL-ON,PROG=ABC,ABI=FORCE
ABP=termid or ABP=*
termid
Specifies the ID of the terminal to which automatic breakpoint displays should be
routed.
*
Specifies that the current terminal should receive automatic breakpoint displays.
This option overrides the global automatic breakpoint facility and is useful in a
system where the global automatic breakpoint facility is disabled.
The local ABP option is also useful when you do not want the breakpoint display routed
to the terminal where the program is running, or when the display cannot be routed to
that terminal (for example, a non-terminal task or a task running on a non-3270
terminal). In these cases, specify the termid of the terminal to which breakpoint displays
should be routed.
Remove the ABP option to deactivate automatic breakpoints for a specified program,
transaction, or terminal. If a monitoring violation occurs, CA InterTest for CICS abends
the task instead of halting it at an automatic breakpoint.
BYP=(offset1,offset2)
or
BYP=(addr1,addr2)
Specify the beginning and ending program locations either as offsets or addresses.
offset
Specifies a one to five digit hexadecimal displacement from the beginning of the
program.
addr
Specifies a six- to eight-digit hexadecimal address.
This BYP specification defines a section of program code that is allowed to:
■ Modify any area of storage
■ Issue SVC instructions
■ Issue BALR, BASSM, and BASR 14,15 and 14,14 instructions
WARNING! Use this option with great care! Specify BYP only for a small section of code,
such as a CALL statement (that is, a BALR, BASSM, or BASR 14,15 or 14,14 instruction). In
that case, monitoring is suspended until control returns to the instruction after the CALL
statement. If control does not return, monitoring remains off for the duration of the
program's execution.
This BYP specification suspends monitoring when a BALR, BASSM, or BASR 14,15 or
14,14 instruction passes control to the specified location. It is useful when a monitored
program calls a non-standard interface from several different locations. Use the
following specification to bypass storage protection when a BALR, BASSM, or BASR
14,15 or 14,14 instruction passes control:
BYP=(.ANY,locn)
locn
Specifies a one- to five-digit hexadecimal displacement or a six- to eightdigit
hexadecimal address.
BYP=*
This BYP specification instructs CA InterTest for CICS to allow the current instruction to
modify storage or issue an SVC, BALR, BASSM, or BASR 14,15 or 14,14 instruction.
Note: Specify this option with great care. It could be password protected.
CBP=locn,IF=condition
CMD=((number),F=termid),TEXT='command text'
number
Specifies the indirect command statement line number that will be assigned to the
accompanying command text.
F=termid
Specifies the terminal where the program for which the indirect commands are
being set will execute from. This provides multiple users with the potential for
defining independent sets of indirect commands for each of their debugging
sessions. In addition, a single set of commands is shared by all users if F=.ANY is
specified.
Note: Indirect commands defined under a specific or .NO terminal take precedence over
any existing F=.ANY command set.
TEXT
Specifies the actual indirect command text, which must be enclosed within single or
double quotation marks. For details and command syntax, Indirect Commands (see
page 366) later in this chapter.
CSA=(offset,length)
offset
Specifies a hexadecimal displacement from the beginning of the CSA.
length
Specifies the number of hexadecimal bytes in the CSA to be unprotected.
This option lets a program, transaction, or terminal modify areas in the CSA.
Important! Specify this option with great care. It could be password protected.
CWA=(offset,length)
offset
Specifies a hexadecimal displacement from the beginning of the CWA.
length
Specifies the number of hexadecimal bytes in the CWA to be unprotected.
DM=ON
Note: A specific terminal ID or user ID is required to set the data monitoring option. If
one is not specified, the default will be used.
FEP=(addr,len)
FEP=(EX,addr,len)
addr
Indicates six to eight digit hexadecimal address of the first byte of a main storage
area.
len
Indicates length of the area in hexadecimal.
EX
Prevents the program from reading all main storage areas except those specified in
the option or owned by the program.
Specify breakpoints in the load module to which control is passed, but their locations
might have to be specified as hexadecimal addresses.
Note: Do not specify this option if control is passed using a LINK or XCTL instruction.
■ Use FOL=ON when control passes to a program that does not have a PPT entry.
■ Use FOL=name when control passes to a program that has a PPT entry.
■ Use FOL=NOPPT instead of ON to reduce overhead.
FOL=ON
or
FOL=name
or
FOL=NOPPT
ICT=nnnnn
nnnnn
Specifies the number of instructions. Replace nnnnn with a decimal number
between 1 and 65,534.
Display up to six items in a Keep window at a time. If you keep more than six items, CA
InterTest for CICS initially displays the first six items that you selected but allows
scrolling to other items using the PF19 and PF20 keys. When an item is removed from
the window, another item is displayed. The KEP= option syntax allows only one request
at a time. For each item kept, CA InterTest for CICS displays a single line identifying the
keep request, followed by the first 12 bytes of storage in both hexadecimal and
character format.
KEP=(request)
KEP=((request),T=termid)
request
Specifies one data area in CICS main storage to be displayed in a keep window. Use
CORE syntax to specify the requested data area, but omit CORE=.
termid
Specifies the terminal that displays the requested area in a Keep window.
T=.ANY
Specifies the data area that will display in a Keep window on any terminal that
displays or executes the program using LIST.
LET=(address,length)
address
Specifies the starting address of the area of storage that is modified as six to eight
hexadecimal digits.
length
Specifies, in hexadecimal, the number of bytes that are modified.
The storage area must lie entirely within the CICS Dynamic Storage Area.
LET=progname
progname
Specifies the load module that is modified.
Note: Specify this option with great care. It could be password protected.
The part of the composite module that receives control from CICS is referred to as the
main program; the remaining parts are referred to as subprograms. These programs are
written in the same or different languages.
Composite support lets you test and debug a subprogram as if it were a separate
program. Specify a separate LNK option for the main program and for each subprogram
you want to test separately.
It is easier to set LNK options on the CNTL Composite Support screen than with
single-line commands. Most of the necessary information is supplied in a CA InterTest
for CICS batch job step.
Notes:
MON is supported only in releases 5.1 and higher.
MON options are not user ID sensitive and pertain to all users.
MON=locn
MON=(locn1,locn2,...,locn9)
locn
Specifies a program location where CA InterTest for CICS starts or continues
monitoring using the special segmented monitoring method. The location must
specify the op-code of a machine instruction that resides in non-store-protected
virtual storage.
Specify, in quotes, the location as a COBOL paragraph name or a PL/I or Assembler label;
without quotes a COBOL or PL/I statement number (a decimal number preceded by a #
sign), or a hexadecimal displacement from the beginning of the program, or an address
in main storage.
MUS=limit
limit
Specifies the number of times a program is monitored. Replace limit with a decimal
number from 1 to 65,534.
MXR=nnnnnnn
nnnnnnn
Specifies the number of CICS requests a program issues. Replace nnnnnnn with a
decimal number up to one million.
MXS=nnnnnnn
nnnnnnn
Specifies the amount of storage, including program storage that a program
acquires. Replace nnnnnnn with a decimal number up to one million.
Notes:
NOM is supported in releases 5.1 and higher, only
NOM is not user ID sensitive and pertains to all users
NOM=locn
NOM=(locn1,locn2,...,locn9)
locn
Specifies a program location where CA InterTest for CICS stops monitoring using the
special segmented monitoring method. The location must specify the op-code of a
machine instruction that resides in non-store-protected virtual storage.
Specify the location as a COBOL paragraph name (in quotes), a PL/I or Assembler label
(in quotes), a COBOL or PL/I statement number (a decimal number preceded by a #
sign), or a hexadecimal displacement from the beginning of the program. The location
also specifies an address in main storage.
To prevent CA InterTest from issuing a read buffer before displaying a breakpoint, enter:
NRB=ON
NUP=ON
OVR=errcode
or
OVR=(errcode1,errcode2,...)
errcode
Specifies a hexadecimal CA InterTest for CICS error code.
Important! Use caution in specifying this option. Remember, it forces CA InterTest for
CICS to ignore potentially dangerous conditions.
Specify the PRO option while a program is at a breakpoint if the storage location is
different each time the program executes.
PRO=(address,length)
address
Specifies the starting address of the protected storage area as six- to
eight-hexadecimal digits.
length
Specifies, in hexadecimal, the number of protected bytes.
Note: If the F=term1 or T=term2 parameter is omitted, it defaults to the terminal that
issued the RBP option.
RBP=request
RBP=(request1,request2,...,request9)
RBP=((request),F=term1,T=term2)
RBP=((request1,...,request9),F=term1,T=term2)
RBP=((request),F=term1,T=term2,L=loopnumber)
RBP=((request1,...,request9),F=term1,T=term2,L=loopnumber)
request
Specifies where the request breakpoint should occur:
■ ALLCOM prior to all CICS commands
■ ALLMAC prior to all CICS macros
■ ALLDLI prior to all DL/I calls
■ ALLCAL prior to all calls to software CA InterTest for CICS has been instructed to
recognize at installation time
■ code prior to the CICS commands or macros represented by the code
For a list of valid codes, see the Help facility (see page 460).
term1
Specifies the terminal at which the program must be executing for the breakpoint
to take effect. F=.ANY specifies that the breakpoint take effect at all
terminals—even when the program executes without a terminal. F=.NO specifies
that the breakpoint take effect only when the program executes without a terminal.
term2
Specifies the terminal to which the breakpoint display is sent. T=.ANY specifies that
the breakpoint display be sent to the terminal at which the program is executing.
loopnumber
Specifies how often the program should be halted at the breakpoint.
Example
L=2 halts the program every other time it reaches the specified command; L=13 halts it
every thirteenth time. If this parameter is omitted, the breakpoint occurs every time the
program reaches the specified command or macro. This parameter is especially useful
when a CICS command occurs within a loop; for example, during a browse.
RFC=(file1,file2)
file1
Specifies the file to be replaced.
file2
Specifies the file that will replace file1.
RNT=ON
RPC=(prog1,prog2)
prog1
Specifies the program to be replaced.
prog2
Specifies the program to replace prog1.
RTD=(name1,name2)
name1
Specifies the transient data queue name to be replaced.
name2
Specifies the transient data queue name to replace name1.
RTS=(mask1,mask2)
mask1
Specifies the temporary storage ID to be replaced.
mask2
Specifies the temporary storage ID to replace mask1.
Specify both masks as eight bytes in either character (C' data' ) or hexadecimal (X' data')
format.
SDF=HEX or SDF=DATA
HEX
Displays data in hexadecimal or character format.
DATA
Displays data in Structure Display Format.
SLB=termid
SLB=*
termid
Specifies the terminal to receive breakpoint displays.
*
Specifies the terminal from which the option is issued.
STR=ON
TAL=locn
locn
Specifies a program location as a COBOL paragraph name (in quotes), a PL/I or
Assembler label (in quotes), a COBOL or PL/I statement number (preceded by a #
sign), or a hexadecimal displacement from the beginning of the program.
TER=(oldtrm,newtrm)
oldtrm
Specifies the old terminal ID.
newtrm
Specifies the new terminal ID.
TON=termid
or
TON=*
or
TON=.NO
termid
Specifies the terminal the program must execute from to be monitored.
*
Specifies that the program must execute at the current terminal to be monitored.
.NO
Specifies that the program must execute without a terminal to be monitored.
TRC=ON
UBP=locn
UBP=(locn1,locn2,...,locn9)
UBP=((locn),F=term1,T=term2)
UBP=((locn1,...,locn9),F=term1,T=term2)
UBP=((locn),F=term1,T=term2,L=loopnumber)
UBP=((locn1,...,locn9),F=term1,T=term2,L=loopnumber)
ubp=((ALLPAR),F=term1,T=term2,L=loopnumber)
ubp=((ALLLAB),F=term1,T=term2,L=loopnumber)
locn
Specifies a program location as a COBOL paragraph name (in quotes), a PL/I or
Assembler label (in quotes), a COBOL or PL/I statement number (preceded by a #
sign), or a hexadecimal displacement from the beginning of the program. locn also
specifies an address in main storage.
The following operands specify the terminal at which the program must be executing for
the breakpoint to take effect.
■ F=.ANY specifies that the breakpoint take effect at all terminals, even when the
program executes without a terminal.
■ F=.NO specifies that the breakpoint take effect only when the program executes
without a terminal.
term2
Specifies the terminal to which the breakpoint display is sent.
T=.ANY
Specifies that the breakpoint display be sent to the terminal at which the program is
executing.
Note: If the F=term1 or T=term2 parameter is omitted, it defaults to the terminal that
issued the UBP option.
loopnumber
Specifies how often the program should halt when a breakpoint is within a loop.
Example
L=2 halts the program every other time it passes through the loop; L=3 halts it every
third time. If this parameter is omitted, the breakpoint occurs every time the program
reaches the location.
ALLPAR
Specifies that breakpoints take effect at all COBOL paragraph names.
ALLLAB
Specifies that breakpoints take effect at all Assembler labels.
When you set unconditional breakpoints, CA InterTest for CICS halts the program at the
specified locations.
USH=ON
The TER option changes all occurrences of the old terminal ID to the new terminal ID
whenever a terminal ID is specified for an online option; for example, in a UBP option.
This is useful when you have set terminal-specific options, and then need to move to
another terminal to continue testing.
Monitoring options set for a specific user ID have advantages. The From and To
terminals automatically default to .ANY. This means that you can switch terminals and
continue to have monitoring, breakpoints, and options set for his user ID directed to the
new terminal.
For releases 5.4 and higher, to limit monitoring to a specific CICS user ID in a secure
region, enter:
USR=userid
userid
Specifies CICS user ID.
USR=.ANY
CNTL Capabilities
Use the CNTL transaction to perform these functions:
■ Monitoring
■ Breakpoints
Monitoring
Set and remove monitoring for one or more programs, all the programs executed by a
transaction, or all the programs executed from a terminal.
Breakpoints
Set and remove request breakpoints prior to CICS macros and commands, calls to DL/I
or DB/2, and calls to database software.
Monitoring Options
With the CA InterTest for CICS CNTL feature, you can:
■ Set and remove statement tracing options for COBOL programs, including data
monitoring
■ Dynamically replace one or more CICS resources (programs, files, temporary
storage, transient data queues) used by a program
Note: Use the CNTL menus and screens or CNTL commands to perform all of the
functions listed in the previous two sections. Additional options, specified by
commands, are available to perform more specialized functions.
Initiate Monitoring
CA InterTest for CICS provides many ways of initiating monitoring and performing other
CNTL functions:
■ Source listing facility
■ ITST menus and fill-in screens
■ CNTL menus and fill-in screens
■ CNTL commands
With the CNTL facility use one method exclusively or use the mix-and-match
method—even during one test session, depending on your specific testing needs.
Example
Use the source listing facility to initiate monitoring and set breakpoints, the CNTL menus
and screens to set special options, and a single-line command to resume execution of a
task.
The easiest way to turn on monitoring and set breakpoints for a single program is to use
the source listing facility. For a new or infrequent user, this method is strongly
recommended. Turn on monitoring by pressing a PF key, and set a breakpoint by
entering a single keystroke directly on your program's source listing. The chapter
"Source Listing Facility" discusses this facility and gives detailed information on what to
do when your program halts at a breakpoint.
To take advantage of the full range of CA InterTest for CICS monitoring capabilities, use
the CNTL Monitoring Command Builder menus and screens or enter CNTL commands.
Nearly all the monitoring functions are implemented either way, so select the method
that suits you best.
The CNTL Monitoring Command Builder menus and screens make it easy for you to
specify the necessary information without worrying about command syntax. All you
have to do is select the function you want and enter the data—CA InterTest for CICS
creates the right command for you. Online Help is available from every screen using PF1
to provide you with more information.
If you prefer, enter single-line CNTL commands to specify monitoring functions. More
experienced users often find it faster to enter commands directly.
To access online Help when entering single-line commands, type Help on a clear screen.
CA InterTest for CICS displays the Transaction Codes screen. Press Enter and CA
InterTest for CICS displays the help facility master menu. Two main topics (program
monitoring and breakpoints) and their associated subtopics provide information on
CNTL commands.
Setting and Removing Statement Trace Options—Set and remove statement tracing
and data monitoring for COBOL programs.
Setting and Removing Protection Options—Bypass CA InterTest for CICS rules that
protect main storage, the CSA, and load modules.
Setting and Removing Special Options—Modify monitoring rules (for example, prevent
a program from updating a file, allow a program to branch to another program, limit the
number of times a program is monitored).
Utility Options—Display the contents of CA InterTest for CICS tables and files, and reset
monitoring for a recompiled program.
For functions 1030, enter Program Names or Transaction Codes or Terminal Names
user ID ________ user ID (or .ANY) who will execute the program
To select a function, first enter the number of the desired function in field .
Note: If a program is stopped at a breakpoint and you type CNTL in the command line to
access the Function Selection Menu, CA InterTest for CICS displays the name of the
monitored entry (program, transaction, or terminal) on this screen.
When you have entered all the necessary information, press Enter. In most cases, a
second screen opens. If you have specified multiple programs, transactions, or
terminals, the names of all the entries display on subsequent screens.
When you set monitoring or monitoring options for a specific program, transaction, or
terminal, CA InterTest for CICS creates an entry for that program, transaction, or
terminal in the monitoring table. Also set monitoring or monitoring options generically
by specifying asterisks, *, and plus signs, +, to replace characters in a program name,
transaction code, or terminal name. These specifications are interpreted according to
the rules for the CICS CEMT transaction.
■ An asterisk specifies any number of characters, including no characters. Specify
more than one asterisk in a program name, transaction code, or terminal name. Do
not, however, specify an asterisk by itself.
■ A plus sign specifies just one character in a particular position. Specify more than
one plus sign in a name or code. Do not, however, specify a plus sign by itself.
■ Combine asterisks and plus signs.
Examples
ABC* Specifies all names or codes that begin with ABC, including ABC.
*ABC Specifies all names or codes that end with ABC, including ABC.
AB*C Specifies all names or codes that begin with AB and end with C with an
unspecified number of characters in the middle.
ABC+ Specifies all four-character names or codes that begin with ABC followed by
any one character.
+ABC Specifies all four-character names or codes that begin with any character
followed by ABC.
AB+C Specifies all four-character names or codes that begin with AB followed by
any one character and C.
AB+C* Specifies all names or codes that begin with AB followed by one character, C,
and an unspecified number of characters.
It is important to know the priorities CA InterTest for CICS observes if more than one
entry in the monitoring table applies to the same program.
■ A specific or generic program entry overrides a transaction entry, a terminal entry,
and an .ALL specification
■ A transaction entry overrides a terminal entry and an .ALL specification
■ A terminal entry (specific or generic) overrides an .ALL specification
Example
Suppose you specify monitoring options for program ABC1 and different options for
transaction TRN1. ABC1 executes as part of that transaction. When ABC1 executes, the
options specified for ABC1 override the options specified for TRN1. Similarly, it is
important to understand the priorities CA InterTest for CICS observes when a program,
transaction, or terminal is specifically and generically declared for monitoring. A specific
entry overrides a generic entry except when you request Status Display. In this case, the
generic specification takes precedence.
Suppose you specify monitoring options for program ABC1 and different monitoring
options for program ABC*. The options specified for ABC* affect all programs whose
names begin with ABC except for program ABC1 (and any other programs beginning
with ABC that have their own entries in the monitoring table). Monitoring for ABC1 is
controlled by the specific entry for that program. However, if you request a status
display for program ABC*, you will get monitoring status reports for all programs that
begin with ABC, including program ABC1 that has a separate monitoring table entry.
PF Keys
Exit from the Function Selection Menu by pressing a PF key. Most of these PF keys are
also in effect on other Monitoring Command Builder screens. The following table
describes the function of each PF key.
PF Key Function
PF1 or 13 Initiates the CA InterTest for CICS online help facility.
PF2 or 14 Unassigned
PF3 or 15 Terminates the Function Selection Menu screen and returns to the
active breakpoint, if appropriate. Pressing Clear does the same thing.
PF4 or 16 Returns to the source listing display facility.
PF5 or 17 Unassigned
PF6 or 18 Unassigned
PF7 Unassigned
PF8 Displays your previous CNTL Monitoring Command Builder screen with
the specified data.
PF9 to end Unassigned
Monitoring
Set and remove monitoring for programs, transactions, or terminals directly from the
Function Selection Menu. Specify function 10, S or R, and the program names,
transaction codes, or terminal names, and press Enter. For detailed instructions, see The
Function Selection Menu (see page 337) earlier in this chapter. This is the only screen
you need to complete.
Set Monitoring
Program—CA InterTest for CICS detects and prevents errors before they occur. That
means monitored programs will not abend or commit storage violations. CA InterTest
for CICS monitors the program from whatever terminal it executes, even if it executes as
part of a non-terminal owning task. Use the replacement, protection, or special options
screen if you want to restrict monitoring to a specific terminal.
Terminal—CA InterTest for CICS monitors every program that executes at that terminal.
Note: CA InterTest for CICS will not monitor programs that begin with the prefix DFH
(IBM CICS programs) or IN25 (CA InterTest for CICS programs).
If you set monitoring for a transaction or terminal, and a program executing as part of
that transaction or at that terminal is stopped at an automatic breakpoint, CA InterTest
for CICS automatically creates an individual entry in the monitoring table for that
program. This lets you set breakpoints and monitoring options specifically for that
program. Similarly, if you specify .ALL in the Program Names field on the Function
Selection Menu or if you specify a generic program name, CA InterTest for CICS creates
an individual monitoring table entry for any program monitored under that entry when
it stops at an automatic breakpoint.
Remove Monitoring
Before you remove monitoring, you might want to produce a report of all CA InterTest
for CICS monitoring activity to make sure other users are not currently testing the same
programs. Press PF12 Status to produce a monitoring report.
When you remove monitoring, you also remove all breakpoints and monitoring options
specified for that program, transaction, or terminal. A quick way of creating a new
testing scenario for a program is to remove and then reset monitoring with different
breakpoints and options.
Note: Remember that you can also set monitoring by setting breakpoints, replacement,
protection, special options, or composite support. However, if you remove breakpoints,
options or composite support, monitoring remains in effect for the specified programs
until you specifically instruct CA InterTest for CICS to stop monitoring.
Unconditional Breakpoints
When you set unconditional breakpoints, CA InterTest for CICS halts the program at the
specified locations. CA InterTest also automatically monitors that program.
If you want to set unconditional breakpoints, the Breakpoint Locations screen opens.
COBOL, PL/I, and Assembler versions of the Breakpoint Locations screen are available.
The following screen is the COBOL version.
COBOL
For a COBOL program, this is a paragraph name or data name , a statement number
, or the hexadecimal displacement (offset) from the beginning of the
program .
ASSEMBLER
PL/I
For a PL/I program, breakpoint locations can be offsets or, if you have the PL/I symbolic
option, PL/I labels or statement numbers.
Example
A statement number entered as 503.3 specifies a breakpoint at the fourth verb in
statement number 503.
■ If you specify a COBOL or Assembler data name, breakpoints are set at every
reference to that data name.
■ Enter an X in the All paragraph names field (COBOL) or All Assembler labels field
to set breakpoints at all paragraph names or all labels.
■ Optional specifications:
■ If you set a breakpoint within a loop, specify in field how often the program
should be halted.
Example
If you specify 3, the breakpoint occurs every third time the program passes through
the loop.
■ Specify in field the ID of the terminal where the program must be executing for
breakpoints to take effect. If you leave this field blank, it defaults to your current
terminal. Enter .ANY to have breakpoints take effect at all terminals, even when the
program executes without a terminal. Enter .NO to have breakpoints take effect
only when the program executes without a terminal.
■ Specify in field the ID of the terminal to receive breakpoint displays. If you leave
this field blank, it defaults to your current terminal. Enter .ANY to have breakpoint
screens displayed at the terminal where the program is executing when breakpoints
occur.
■ Specify in field the statement number of the indirect command that you want to
invoke at the breakpoint you have set.
■ Specify in field the user ID who must be executing the program for the
breakpoint to take effect. Valid entries are .ANY or a specific CICS user ID.
When you complete entering all the necessary information, press Enter.
Example
The following screen shows how to set unconditional breakpoints at four locations in
the COBOL program COBDEMO.
_______________________________ _______________________________
Statement
Numbers: 1____ 136__ 174.2 _____ _____ _____ _____ _____
Because the user ID field specifies a single user and the terminal ID fields are left blank,
the breakpoints take effect at any terminal under which User MARY01 is executing
COBDEMO.
If you indicated that you want to remove unconditional breakpoints, the Remove
Breakpoint Locations screen opens. COBOL, PL/I, and Assembler versions of the
Breakpoint Locations screen are available. The following screen is the COBOL version.
Term ID (or .ANY or .NO) where breakpoints will take effect: ____
Term ID (or .ANY) that will receive the breakpoints: ____
To remove a breakpoint, specify the information that you originally defined in fields
through on the Set Breakpoint Locations screen, or enter its ID number in field .
The ID number appears on the Detailed Breakpoint display. Press PF12 Status to request
a status report for the program. This report lists the ID of each breakpoint.
Note: To remove all unconditional breakpoints from a program, enter .ALL in field ,
and press Enter.
Conditional Breakpoints
When you set conditional breakpoints, CA InterTest for CICS halts the program at the
specified locations only if a condition is met. Conditional breakpoints are very useful in
isolating complex problems.
To set or remove conditional breakpoints, specify function 12, S or R, and the program
name on the Function Selection Menu, and press Enter. For detailed instructions, see
The Function Selection Menu (see page 337) earlier in this chapter.
This screen is similar to the screen used to specify unconditional breakpoints, and you
should enter the information in the same way. For details, see Set Unconditional
Breakpoints (see page 108) earlier in this chapter.
_______________________________ _______________________________
Statement
Numbers: _____ _____ _____ _____ _____ _____ _____ _____
All paragraph names: _ All instructions: x
2. Specify the breakpoint locations, and press Enter to display the Conditional
Breakpoint screen.
3. Specify the condition that must be satisfied for the breakpoint to take effect on the
Conditional Breakpoint screen.
There are two versions of the Conditional Breakpoint screen: a simplified version for
COBOL users, and a detailed version for PL/I and Assembler users and for those COBOL
users who prefer this version.
■ Field specifies the left side of the comparison , which is a data name.
■ Field specifies the relational operator:
EQ for equal
NE for not equal
GT for greater than
LT for less than
GE for greater than or equal to
LE for less than or equal to
■ Field specifies the right side of the comparison, which is a data name, literal, or
figurative constant.
Variable-Change Breakpoints
■ COBOL and Assembler users set a conditional breakpoint to take effect whenever
the value of a variable changes. To do this, type x in the All Instructions field on the
Conditional Locations screen.
■ COBOL users must then specify the variable name in fields and on the
Conditional Breakpoint screen.
■ Assembler users must then specify the variable name in fields and on the
Detailed Conditional Breakpoint screen, as discussed previously in The Detailed
Conditional Breakpoint screen.
The operator entered in field determines whether the breakpoint occurs whenever
the value of the variable changes (NE) or only when the value increases, decreases, or
does not change. Whenever you re-execute the program, the initial value of the variable
is reset to its value at the beginning of program execution.
Literal Formats
Specify four types of literals for the right side of the comparison:
Character Specify character literals for comparisons with any field except a COBOL
data name defined as COMP or COMP-3. Enter the literal as C'character
data', X'hexadecimal data', or a combination of both. For example,
C'ABC', X'0102', or C'ABC'X'0102'.
Packed Specify packed decimal literals for comparisons only with COBOL data
names defined as COMP-3. Enter the literal as P'number'. The number
can be preceded by a minus sign. For example, P'123' or P'-123'.
Halfword Specify halfword literals for comparisons with COBOL data names
defined as COMP with a length of four, as in S9(4) COMP. Enter the
literal as H'number'. The number can be preceded by a minus sign. For
example, H'12' or H'-12'.
Fullword Specify fullword literals for comparisons with COBOL data items defined
as COMP with a length of eight, as in S9(8) COMP. Enter the literal as
F'number'. The number can be preceded by a minus sign. For example,
F'100' or F'-100'.
Figurative Constants
Specify the following figurative constants for the right side of the comparison:
Example
The following sample screen shows how to set a conditional breakpoint in a COBOL
program.
Enter OPERATOR (EQ, NE, GT, LT, GE, LE): lt
■ The left side of the comparison specifies the data name TOLEN.
■ The relational operator is LT (less than).
■ The right side of the comparison specifies the literal 80.
This breakpoint takes effect only if the value in the data name TOLEN is less than 80. The
breakpoint locations are all the instructions, as previously specified on the Conditional
Locations screen.
When you specify that you want to remove conditional breakpoints, the following
Remove Conditional Locations screen opens.
Term ID (or .ANY or .NO) where breakpoints will take effect: ____
Term ID (or .ANY) that will receive the breakpoints: ____
The easiest way to remove a conditional breakpoint is from the Monitoring Status
display, as discussed in the chapter "Menus and Displays." To remove all conditional
breakpoints from a program, enter .ALL in field of this screen, and press Enter.
When Assembler and PL/I users want to specify conditional breakpoints complete the
Conditional Locations screen and press PF9, the following screen opens. COBOL users
access this screen by pressing PF9 from the COBOL Conditional Breakpoint screen
shown in the previous section.
Enter OPERATOR (EQ, NE, GT, LT, GE, LE): __ Length: Left __ Right __
Specifies the left side of the comparison must be an area of core. Enter information
in one of these four fields:
■ Data name
■ Register
■ COBOL BLL cell
■ Area identified by a CORE keyword
Specifies the relational operator:
■ EQ for equal
■ NE for not equal
■ GT for greater than
■ LT for less than
■ GE for greater than or equal to
■ LE for less than or equal to
/
Optionally define the length of the left side or right side of the comparison. For
details, see Length of the Comparison (see page 353), which follows this section.
Specifies the right side of the comparison, which is an area of core or a literal. Enter
information in one of these five fields: a data name, a register, a COBOL BLL cell, an
area identified by a CORE keyword, or a literal. For details, see CORE Keywords and
Literal Formats (see page 118) later in this chapter.
Optionally adjusts a CORE location by specifying offsets (displacements). Each offset
must be preceded by one of the following operands:
■ +
■ -
■ @ (indirect addressing below the 16-megabyte line) % (indirect addressing
above the 16-megabyte line; XA systems only)
■ Literals cannot be modified by offsets.
Explicitly define how many bytes of the left side or right side specification should be
compared. Certain storage locations have implicit lengths:
■ A register or COBOL BLL cell has an implicit length of four bytes
■ The storage locations referred to by the CORE keywords MXR, MXS, and TAL have
implicit lengths of four bytes
■ The implicit length of a COBOL data name is its field length as defined in the DMAP
■ The length of a literal is the number of bytes it contains; any length specification is
ignored
Define both left side and right side lengths for a packed decimal (COMP-3) comparison.
For all other comparisons, define only one length. If you define both lengths, the smaller
length is used.
The maximum permissible length for the left side or right side is 16 bytes for packed
decimal data and 255 bytes for all other data types.
Literal Formats
For details about specifying literals, see Figurative Constants (see page 349) earlier in
this chapter.
CORE Keywords
Specify the following CORE keywords on the left side or right side of the comparison:
Keyword Function
CMAR First byte of the EXEC CICS Communications Area for the task
CSA First byte of the CSA
CURR Next Assembler instruction to be executed
CWA First byte of the CWA
CWK First byte of the COBOL program's Working-storage
DSA First byte of the program's DSA
ITBE First byte of the next instruction to be executed
LCL First byte of the COBOL program's local-storage
MXR CA InterTest for CICS maximum CICS request counter (implicit length =
4)
MXS CA InterTest for CICS maximum storage counter (implicit length = 4)
OPFL First byte of the optional features List
PGM=* First byte of the monitored program
PREV Last Assembler instruction executed
Rnn A register (nn is a decimal from 1 to 15) (implicit length = 4)
TAL CA InterTest for CICS tally fullword (implicit length = 4)
TERM=* First byte of the terminal table entry of the current terminal
TGT First byte of the COBOL TGT for the monitored task
TIOA First byte of the first TIOA of the task
TWA First byte of the TWA of the monitored task
Request Breakpoints
Set request breakpoints to halt a program prior to CICS commands, macros, and other
program calls, such as calls to DL/I, DB2, or SQL/DS. Instruct CA InterTest for CICS to halt
the program before every CICS command, or a type of CICS command, such as file
control or program control commands. Specify that the program halts before specific
commands, such as all READ or WRITE commands. Once the program halts, Use all of
the CA InterTest for CICS facilities to inspect and modify main storage or auxiliary
storage or to set additional options.
CA InterTest for CICS displays the Request Breakpoint Selection menu. Enter an x next to
the options you want to select.
The program halts prior to all CICS commands.
The program halts prior to all CICS macros.
The program halts prior to all DL/I calls.
The program halts prior to all calls to DSNHLI (for DB2 users), or prior to all calls to
ARIPRDI (for SQL/DS users).
The program halts prior to calls to software that CA InterTest for CICS has been
instructed to recognize at installation time. A second screen opens for you to
specify the calls.
If you select a type of CICS command, CA InterTest for CICS displays a second
screen. For example, if you select File Control, CA InterTest for CICS displays the File
Control screen.
If you do not want the program to halt before every occurrence of a command,
specify how often the program should halt. For example, if you specify 3, the
breakpoint occurs every third time the program reaches the command. This feature
is especially useful when a CICS command occurs within a loop; for example, during
a browse.
Specify the ID of the terminal where the program must be executing for breakpoints
to take effect. If you leave this field blank, it defaults to your current terminal. Enter
.ANY to have breakpoints take effect at all terminals, even when the program
executes without a terminal. Enter .NO to have breakpoints take effect only when
the program executes without a terminal.
Specify the ID of the terminal to receive breakpoint displays. If you leave this field
blank, it defaults to your current terminal. Enter .ANY to have breakpoint screens
displayed at the terminal where the program is executing when breakpoints occur.
Specify the first indirect command statement number to take effect at this
breakpoint.
Specify the CICS user ID of the user (or .ANY) who must execute the program for the
breakpoint to take effect.
Note: Your version of this screen might differ slightly, depending on CA InterTest for
CICS installation options.
When you have entered all necessary information, press Enter. If you entered an x next
to a type of command, CA InterTest displays a second screen.
Example
If you selected File Control as the previous screen shows, CA InterTest for CICS displays
the following screen.
x READ
x WRITE
_ REWRITE
_ DELETE
_ UNLOCK
_ STARTBR
_ READNEXT
_ READPREV
_ ENDBR
_ RESETBR
On this screen specify that the program be halted at all File Control commands or
macros, or select specific File Control commands. In this example, the user specified that
program COBDEMO be halted at all READ and WRITE commands.
Set Statement Trace options to save trace information for executed COBOL statements
and to capture data values for those statements. Remove the Statement Trace options
to delete the trace data.
The following Statement Trace Options screen opens. For detailed instructions, see The
Function Selection Menu (see page 337) earlier in this chapter.
Term ID (or .ANY or .NO) where trace options will take effect: ____
Specify the following options on this screen. The equivalent option used in single-line
commands is specified in parentheses.
Statement tracing (TRC)—Instructs CA InterTest for CICS to save trace information for
every executed COBOL statement.
Data monitoring (DM)—Instructs CA InterTest for CICS to capture data values for every
executed COBOL statement. If data monitoring is selected, statement tracing is
automatically activated. In addition, a specific terminal ID or user ID is required.
Term ID (or .ANY or .NO) where trace options will take effect—Specifies that the
program be monitored and that Statement Trace options, if specified, take effect only
when the program is executed at any terminal (.ANY), no terminal (.NO), or a specific
terminal.
User ID (or .ANY) who will execute the program—Specifies that the program be
monitored and that Statement Trace options, if specified, take effect only when the
program is executed by any user (.ANY) or a specific user (a CICS user ID).
To remove statement trace options, enter an x next to the options you want to remove.
If you select statement tracing, data monitoring is also removed. Enter the terminal ID
and user ID information exactly as you originally defined it.
Replacement Options
Set replacement options to dynamically change the names of CICS resources (programs,
files, transient data queues, and temporary storage) specified in CICS CALLS by a
monitored program. Remove the replacement options when you want the program to
use the resources defined in the program.
When you specify replacement options for a transaction, the resources are replaced in
all its programs. When you specify replacement options for a terminal, the resources are
replaced in all programs executing from that terminal.
The Replacement Options screen opens. For detailed instructions, see The Function
Selection Menu (see page 337) earlier in this chapter.
SET one or more options to replace one CICS resource name with another in:
PROG=COBDEMO
Specify five options on this screen. The equivalent option used in single-line commands
is specified in parentheses on the following option list.
Replace file name (RFC)—Allows a file name to be replaced. Specify the original file
name and the new name. The sample screen shown previously specifies that program
COBDEMO use file TFILE instead of PFILE.
To remove a replacement option, specify the information exactly as you entered it. To
remove all replacement options of a specific type, enter .ALL in the appropriate field.
Example
To remove all file replacement options, enter .ALL in the Replace file name field.
Protection Options
This section describes protection options.
Set options to override the CA InterTest for CICS default protection rules for modifying
main storage, the CSA, and load modules. Remove the protection options to reinstate
the default protection rules.
Important! Because the protection options can potentially damage your CICS system if
misused, exercise caution in specifying them. These options are password protected
unless your site has removed this restriction.
SET one or more options to override the default protection rules in:
PROG=COBDEMO
Specify the following options on this screen. In the descriptions, the command syntax
equivalent for each monitoring option is specified in parentheses.
Unprotect CSA (CSA)—Permits a program to modify areas in the CSA. Specify the offset
and the length in hexadecimal.
Unprotect CWA (CWA)— Permits a program to modify areas in the CWA. Specify the
offset and the length in hexadecimal.
Limit monitoring (TON)—Specifies that the program be monitored and that the
protection options, if specified, take effect only when the program executes at the
current terminal (*), a specific terminal (termid), or without a terminal (.NO).
To remove protection options, enter the information exactly as you originally defined it.
To remove all options of a specific type, enter .ALL in the appropriate field.
Example
To remove all bypass storage protection options, enter .ALL in that field.
Special Options
This section discusses special options.
Set special options to alter the CA InterTest for CICS standard monitoring procedures.
Remove the special options to reinstate the default monitoring rules.
The following Special Options screen opens. For detailed instructions, see The Function
Selection Menu (see page 337) earlier in this chapter.
SET one or more options to override the default monitoring rules in:
PROG=COBDEMO
Specify the following options on this screen. The equivalent option used in single-line
commands is specified in parentheses.
Source Listing Breakpoint (SLB)—Specifies that the Source Listing Breakpoint screen be
displayed rather than the full breakpoint display screen. For more information, see the
chapter "Source Listing Facility."
No file updating (NUP)—Specifies that a monitored program not update any files. This
option only affects VSAM and BDAM files; databases are unaffected.
Limit total size of CICS storage (MXS)—Limits the amount of storage, including program
storage, a program acquires.
Setting for Structure Display Format (SDF)—Use this option to override, by program,
the global default setting. Specify the following:
■ HEX to display data in hexadecimal / character format
■ DATA to display data in Structure Display Format
Set local automatic breakpoint (ABP)—Activates the automatic breakpoint facility for a
particular program, transaction, or terminal.
Limit monitoring (TON)—Specifies that the program be monitored and that the special
options, if specified, take effect only when the program executes at the current terminal
(*), a specific terminal (termid), or without a terminal (.NO).
To remove special options, enter an x next to the options you want to remove, or enter
the information exactly as you originally defined it.
Composite support lets you test and debug a subprogram as if it were a separate
program. This means you set breakpoints and other monitoring options individually for
any subprogram.
CA InterTest for CICS provides full symbolic support for the main program and
subprograms if you provide that information when the programs are compiled or
assembled.
Function 23 on the CNTL Function Selection Menu is one method of accessing the
Composite Support screen, a sample screen follows. An alternative method of accessing
this screen is from the ITST monitoring menus.
Indirect Commands
The CA InterTest for CICS indirect commands facility lets you define a set of commands
that execute automatically or indirectly at a predetermined location in a monitored
COBOL or PL/I program. These commands are invoked from an unconditional,
conditional, or request breakpoint.
In effect, indirect commands are executed at breakpoints within your program just as
other CA InterTest for CICS line commands issued from the Source Listing display, such
as MOVE and GO, are used to alter the flow of your program's logic. The difference is
that indirect commands are executed automatically without issuing a breakpoint
display. Once the indirect commands are performed, your program continues to execute
normally.
Indirect commands save you from having to recompile a program or manually correct an
area of code every time it is encountered during a debugging session. With the indirect
commands facility, you can:
■ Change the flow of control in your program
■ Test conditions based on specified variables
Indirect commands are used to correct the following sample program problems:
■ A variable is not being initialized during processing. Using indirect commands
initialize the variable every time the program is run and continue execution without
recompiling.
■ A new routine is needed in your program. Insert the code using indirect commands
and continue executing your program without recompiling.
■ A section of code is bad. To continue executing or testing without recompiling,
write and invoke indirect commands to direct CA InterTest for CICS to go around
the bad source code or execute a new series of indirect command statements.
Step Overview
For users familiar with the CNTL menus, use Function 24 of the CNTL Function Selection
Menu to access the indirect commands facility when you are coding the commands.
Status Display
Determine the monitoring status of one or more programs, transactions, or terminals by
following these steps:
1. Specify Function 30.
2. Specify the program names, transaction codes, or terminal names on the Function
Selection Menu, and press Enter.
If you specify multiple programs, transactions, or terminals, CA InterTest for CICS
displays the monitoring reports in the order in which you specified the entries.
Note: The status display accessed from the CNTL menu does not include the same
formatting as the monitoring status report discussed in other areas of this guide.
Example
The following screen shows a status report for the program COBDEMO.
--------------------------------------------------------------------------------
-
PF1:Top PF7:Up PF8 or Enter:Down PF3 or Clear:End PF4:Refresh. Page 001
The global ABP (Automatic Breakpoint) facility is active. This means monitored
programs will receive breakpoint displays when an error triggers an automatic
breakpoint.
There is no global ABP terminal.
The checkpoint recording facility is in effect. The interval between checkpoints is 30
minutes.
The last checkpoint occurred at 9:45 a.m.
The next line identifies the program for which the status report was generated as
COBDEMO.
The rest of the report indicates the options currently active for COBDEMO. In this
example, only Unconditional Breakpoints (UBP) are active for this program. For
each breakpoint, the report provides the information shown in the following table.
Field Information
offset= The breakpoint location is defined as a hexadecimal offset from the
beginning of the program.
id=hhhhhhhh The breakpoint ID number assigned by CA InterTest for CICS.
at=location The symbolic location specified when the breakpoint was set. A
number preceded by a # sign refers to a statement number, except
for #1, which refers to the first executable instruction.
from=termid The ID of the terminal where the program must be executing for the
breakpoint to take effect.
to=termid The ID of the terminal that will receive the breakpoint display.
Note: If you do not see the message, End of Report, the report is too long to fit on
one screen. Press Enter to display more of the report.
*Entry not active*. This indicates that CA InterTest for CICS is not currently
monitoring the program.
Utility Functions
Use the utility functions to produce CA InterTest for CICS reports and to reset
monitoring for a recompiled program.
To select utility functions, specify Function 31 on the Function Selection Menu, and
press Enter. The following Utility Options screen opens:
Specify the following functions on this screen. The equivalent function used in
single-line commands is specified in parentheses.
List CA InterTest tables (LIST)—Requests a list of all the programs, transactions, and
terminals that CA InterTest for CICS was instructed to monitor or not to monitor. The
report also lists the programs CA InterTest for CICS will monitor as a result of the FOL
special option.
List programs in symbolic file (SYM)—Requests a list of all the programs in the CA
InterTest for CICS symbolic file. For each program, this report lists its date and time of
compilation, the number of records it occupies in the file, whether it can be purged, and
whether it was compiled with the LISTER option.
List one program in symbolic file (SYM)—Requests information for one program in the
CA InterTest for CICS symbolic file. It lists the date and time of compilation, the number
of records it occupies in the file, whether it can be purged, and whether it was compiled
with the LISTER option.
Note: The reports produced by the options LIST, SYM, and INQ might be too long to fit
on one screen. Press Enter to display more of the report. To write a report to a transient
data queue, enter the name of the TD queue.
Specify the following options on this screen. Specify in parentheses the equivalent
option used in single-line commands. Enter ON to set an option and OFF to remove it.
Automatic breakpoint (ABP)— Sets the automatic breakpoint facility for the entire
system; the default. Breakpoint displays are routed to the terminal where the program
is running. Specify a terminal ID to indicate where breakpoint displays should be routed
for non-terminal attached tasks and for tasks executing from non-3270 terminals.
If you specify OFF for the ABP option, you might want to use the Special Options screen
(Function 22) to set the local automatic breakpoint option for one or more programs.
The local automatic breakpoint option overrides the system automatic breakpoint
option.
Global logging (GLOG)—Requests global logging of CA InterTest for CICS activity: most
CNTL commands and all changes to main storage.
Note: Specify only one of the following two options at one time. To set both facilities,
return to the Function Selection Menu and specify Function 32 again.
Note: These options are password protected unless your site has removed this
restriction.
Press Enter without options to resume execution of the breakpointed task ____
OR enter one or more of the following options:
To AUTO STEP, enter #n for COBOL verbs or PL/1 STMTS or n for instrucs:
with a n second WAIT between breakpoints:
to HALT at a CALL, enter X OR after n steps are reached:
Example
Press ENTER without options to resume execution of the breakpointed task _____
To MOVE this breakpoint enter ONE new location, OR enter X to DISABLE it:
COBOL paragraph, Assembler or PL/1 label: _______________________________
COBOL or PL/1 statement number: _____ Offset: _____
To AUTO STEP, enter #n for COBOL verbs or PL/1 STMTS or n for instrucs: #3___
with a n second WAIT between breakpoints:____
to HALT at a CALL, enter XOR after n steps are reached:____
The structured format gives field names and displays storage field-by-field, which makes
it easy to read and modify. The structured format displays a COBOL data structure in
DMAP sequence, an Assembler data structure in DSECT sequence, and common CICS
areas in DSECT sequence. You do not have to know or remember field lengths to
determine their contents. The basic format of the structured display is:
By contrast, the traditional dump format starts from a given point (which you specify)
and is a continuous stream of values. You have to remember field lengths to know
where one field stops and the next one starts.
■ Message line notifies you of: invalid storage values, the values of numeric data,
additional CORE requests queued for display, or if the requested storage area was
not found.
■ PF keys let you scroll, switch the format displayed, access help, and return to a
menu or breakpoint.
To obtain a structured display when using CORE commands at the bottom of a current
storage display, enter the command and press PF12 Structure.
Note: If you request a storage display and a structured format is not available, the dump
format and a message are displayed.
The following diagram shows the structured format for a COBOL data structure:
The structured format displays COBOL data in DMAP sequence. The structure of a PL/I
variable is presented similarly. Each field is discussed next.
Starting Address of the first item displayed. This is calculated from the contents of
the BL and BLL cell and displacement for the requested data name.
DMAP or SYM MAP data levels and names for the requested structure.
A 77-level item is displayed individually; other structured displays begin with the
requested data item and include any items below it in the same 01 level.
Hexadecimal display area gives the storage contents of each field named on the
left. Each byte is displayed as two hexadecimal digits, with spaces inserted after
every four bytes. Up to 12 bytes are displayed per line. Fields longer than 12 bytes
have multiple lines of hexadecimal display. This area is unprotected and you can
overtype it to dynamically modify the data values displayed.
Note: Data areas defined in the DMAP or SYM MAP with a length of zero (for
example, 0F or 0C13) will not display.
Character display area gives the character representation of each displayable byte
for the field on the left. Hexadecimal 40s display as spaces; non-displayable bytes
are indicated by periods. This area is unprotected and you can overtype it to
dynamically modify the data values displayed.
PF keys are listed below the storage display. Each is defined in Structured Displays
(see page 383) later in this chapter.
CORE command line displays the CORE command entered or generated from a
Source Listing Breakpoint storage request or a CORE menu. To request another
structured display, modify the CORE command and press PF12. To request a dump
format of a CORE display or to enter a CNTL command, modify the command and
press Enter.
Message line. Always check the message line on a CORE display. This message
states that the end of the requested data structure has been reached. (Page
backward to display the beginning of a data structure or page forward when you
are not at the end of the structure.) However, this message line also tells you if the
requested area could not be found (the display shows the last area pointed to by
CORE or the CSA), or if a COBOL field or PL/I variable displayed from a breakpoint
contains valid data. An error message indicates when a field is invalid.
To get a structured display when executing a CORE command from an existing CORE
display, type the command and press PF12 instead of Enter.
Note: If a structured format is not available for the requested area or data, the dump
format and a message display.
The following diagram gives the structured format for Assembler and CICS areas. The
fields are displayed in DSECT sequence.
Individual field names as defined in the DSECT.
CICS address of each field.
Displacement column is the field's relative hexadecimal displacement within the
DSECT.
Hexadecimal display area gives the storage contents of each field named on the
left. Each byte is displayed as two hexadecimal digits with spaces inserted after
every four bytes. Up to 16 bytes display per line. Fields longer than 16 bytes have
multiple lines of hexadecimal display. This area is unprotected and you can
overtype it to dynamically modify the data values displayed.
Character display area gives the character representation of each displayable byte
for the field on the left. Hexadecimal 40s display as spaces; non-displayable bytes
are indicated by periods. Overtype this area to dynamically modify the data values
displayed.
PF keys are listed below the storage display. Each is defined in Structured Displays
(see page 383) later in this chapter.
CORE command line displays the CORE command entered or generated from a
Source Listing Breakpoint storage request or a CORE menu. To request another
structured display, modify the CORE command and press PF12. To request a dump
format of a CORE display or to enter a CNTL command, modify the command and
press Enter.
Message line. Always check the message line on a CORE display. If the requested
area could not be found (the display shows the last area pointed to by CORE or the
CSA), a message on this line states this.
=USE=progname.dataname
or
=USE=*.dataname
progname
Specifies the name of the program that contains the structured information.
dataname
Specifies the name of the data item used as the starting point for the structured
display.
*
Specifies the program currently stopped at a breakpoint.
Examples
■ To display the first FWA area according to the data definition of RECORD1, which is
in the TESTMAST program, enter:
CORE=FWA=USE=TESTMAST.RECORD1
This command instructs CORE to use the named module instead of the program
stopped at a breakpoint when interpreting any symbolic names in the command.
Example
To get a structured display of the USER TCA, which is the DFHTCADS DSECT whose
address is in register 12 and is saved in the module TESTMAST, enter:
CORE='R12.DFHTCADS'=USE=TESTMAST
The common CICS areas that display in a structured format (Assembler DSECT layout)
depend on your CA InterTest for CICS installation. The default system areas available in a
structured format are listed in the following table:
Note: To add or subtract areas from the previous list, see the Installation Guide.
To get a structured display of system areas, use the System Areas menu or enter a CORE
command, and press PF12.
The following table shows the PF keys and their associated functions:
PK Key Function
PF1 Help Initiates the CA InterTest for CICS online help facility.
PF2 Unassigned
PF3 End Exits the current menu or CORE display. If at a
breakpoint, returns to the breakpoint display. Clear
performs the same function.
PF4 Return Returns to the Primary Option menu or exits to CICS.
PF5 Unassigned
PF6 This PF key lets the cursor be placed on a valid storage
pointer within the hexadecimal display area and the
storage pointed to by the pointer will be displayed
when this key is pressed. This is referred to as ‗point
and shoot‘ capability and allows for faster navigation
through storage without having to key storage
addresses on the CORE command line.
PF7 Backward Scrolls the current CORE display one page backward.
PK Key Function
PF8 Forward Scrolls the current CORE display one page forward.
PF9 Caps Off or Caps On Sets the mode of translation when changing data in
the character area of the display. When Caps Off
displays, all character data on the line is translated to
uppercase. When Caps On displays, all character data
is accepted as typed. To change from one mode to the
other, simply press PF9. Note: Translation to
uppercase will not occur if an existing lowercase
character on that line would be affected; a message is
issued instead.
PF10 Varies according to what displays.
PF11 Redisplay Redisplays the current screen with only the contents
of storage being refreshed.
PF12 Structure Displays requested fields in a structured format.
The dump format is similar to a transaction dump printout, with a hexadecimal display
area on the left and a character display area on the right. Obtain a dump format in the
following ways:
■ Use the Source Listing Breakpoint screen to display or modify a data item or area
without a structure such as object code.
■ Press Enter when completing a CORE menu or executing a CORE command.
The following display shows the dump format display of the CICS CSA (Common System
Area).
Offset gives the hexadecimal displacement of the first byte of data on that line
relative to the first byte of data on page number 0. Page number 0 is the first screen
of a CORE display.
Hexadecimal display area shows each byte of data as two hexadecimal digits. Data
is displayed 16 bytes per line, with spaces inserted after every four bytes (eight
hexadecimal digits). The maximum size of a single CORE display is 17 lines, or 272
(hexadecimal 110) bytes of data.
Character display area gives the character representation for each displayable byte.
Hexadecimal 40s display as spaces; non-displayable bytes are indicated by periods.
The columns of asterisks are not part of the data.
Address is the CICS hexadecimal address of the first byte of the line.
Task gives the task number of the breakpointed task for breakpoint-related storage
displays. For task-related storage displays, gives the task number specified. (The
default for task-related storage is also the task number of the breakpointed task.)
Page. Page numbers are relative to the initial screen display. Paging forward with
PF8 increases the page count; paging backward with PF7 decreases the page count.
The area below the display area includes the following items:
■ PF Key list.
■ The command line in the Dump Format of CICS CSA displays the last CORE
command entered or generated for the current display. To request a structured
format of the current CORE display, press PF12. To request another CORE
display or to enter a CNTL command, modify the command and press Enter (for
a dump format or a CNTL command) or PF12 (for a structured format).
■ The message line follows the command line and contains valuable information.
Always read the message line on a CORE display.
■ If CA InterTest for CICS could not locate a requested display area, the error
message indicates that the requested area was not found. When this occurs,
CA InterTest for CICS displays the dump format of the last or default CORE
pointer location. The default area is the CSA.
Some messages can help you troubleshoot problems in storage.
Example
Whenever you are stopped at a breakpoint and request a COBOL storage display,
CA InterTest for CICS automatically checks that the fields in the display contain valid
data (according to their definitions). An error message tells you which fields are
invalid and why.
The following table explains what each key on the Dump Display does.
PF Key Function
PF1 Help Initiates the CA InterTest for CICS online help facility.
PF2 Unassigned
PF3 End Terminates the current menu or CORE display. If at a
breakpoint, returns to the breakpoint display. Clear
performs the same function.
PF4 Return Returns to the Primary Option menu or exits to CICS.
PF5 Unassigned
PF6 Unassigned This PF key lets the cursor be placed on a
valid storage pointer within the hexadecimal display
area and the storage pointed to by the pointer will be
displayed when this key is pressed. This is referred to as
'point and shoot' capability and allows for faster
navigation through storage without having to key
storage addresses on the CORE command line.
PF7 Backward Scrolls the current CORE display one page backward.
PF8 Forward Scrolls the current CORE display one page forward.
PF9 Caps Off or Caps On Sets the mode of translation when changing data in the
character area of the display. When Caps Off displays,
all character data on the line is translated to uppercase.
When Caps On displays, all character data is accepted
as typed. To change from one mode to the other,
simply press PF9.
Note: Translation to uppercase will not occur if an
existing lowercase character on that line would be
affected; a message is issued instead.
PF10 Unassigned
PF11 Unassigned
PF12 Structure Displays requested fields in a structured format.
Note: Use PF13 to PF24 to perform the same functions as PF1 to PF12.
CA InterTest for CICS displays the Main Storage Menu. The submenus available from the
Main Storage Menu are shown next.
After completing a CORE menu, press Enter to get a structured display of main storage.
From a structured display, press Enter if you want the dump format. The two formats
are discussed in CORE Main Storage Displays (see page 376) earlier in this chapter.
The following table summarizes what you can do from each Main Storage menu.
Note: Use additional keywords to access other areas. See the help file (see page 543) for
an expanded list.
PF Key Function
PF1 Help Initiates the CA InterTest for CICS online help facility.
PF2 Unassigned
PF3 End * Exits the CORE menu or display. When stopped at a breakpoint,
use PF3 or Clear to restore the current breakpoint display. You
might need to use the key more than once.
PF4 Return Returns to the Primary Option menu.
PF5 Unassigned
PF6 Unassigned
PF7 Unassigned
PF8 Unassigned
PF9 Complex Data From the Breakpoint menu, displays the menu for viewing
qualified, indexed, and subscripted COBOL data; from the
System and Task menus, PF9 is unassigned.
PF10 Unassigned
PF11 Unassigned
PF12 Structure Displays requested fields in a structured format.
Note: PF13 to PF24 perform the same functions as PF1 to PF12, respectively.
CA InterTest for CICS responds by displaying one of three Breakpoint menus, depending
on whether your program is written in COBOL, Assembler, or PL/I. The COBOL menu is
shown following. Menus used for PL/I and Assembler programs are similar and are
described next.
All storage areas relate to your current task, which is indicated by the number in the
upper-right corner of the screen. Overtype the task number to access storage relating to
another task stopped at a breakpoint.
Display Storage
Use the COBOL name or Special element field to specify the starting location (the first
byte) of the area to display.
Note: To display qualified, indexed, or subscripted COBOL data names, do not enter a
COBOL name on this screen. Instead, press PF9 to access the CORE=Complex COBOL
Data Names screen.
COBOL Name
Specify a COBOL variable, a data item, or a paragraph name. If you enter a COBOL
paragraph name, CA InterTest for CICS displays the program code at that location.
Special Element
Specify one of the CORE keywords highlighted on the screen to display a special
element. Most special elements are familiar storage areas, such as the COMMAREA and
COBOL WORKING-STORAGE. The SSCR (Saved screen image) is a special CA InterTest for
CICS area that lets you view the last screen displayed by your program before it was
stopped at the current breakpoint.
After specifying a COBOL name or Special element, press Enter to obtain a structured
display in COBOL DMAP sequence. To get a dump display, press Enter a second time.
Examples
To display the contents of the data item TASKNUM in a structured format, specify the
following, and press PF12.
To display the COBOL Working-Storage area for the task currently stopped at a
breakpoint, specify the following, and press PF12 for a structured display.
To display the EXEC Interface Block (EIB) in a COBOL DMAP sequence, specify the
following, and press PF12.
Note: An alternative method of displaying complex data names is to use a d and the
cursor on the Source Listing Breakpoint display. This method saves you from having to
type long names. To get a Source Listing Breakpoint display, press PF4.
Field name in the top Data name field.
Group name in the OF Data name field.
Field name in the top Data name field.
Qualifying group name in the OF Data name field, if applicable.
Indexes or subscripts in the bottom three fields. Specify one index or subscript per
field. Subscripts are designated either numerically or as data names.
Note: You cannot mix indexes and subscripts.
Examples
These examples show how to complete the Complex COBOL Data Names menu.
■ To display the subscripted item LEVEL-NAME (SUB-1, SUB-2) where the value of
SUB-2 is 30, enter:
Data name: level-name
OF Data name:
Index or subscript1: sub-1
Index or subscript2: 30
Index or subscript3:
To modify storage, use the MOVE line on the Breakpoint-Related Areas menu.
The following example gives TASKNUM a value of zero through the entries shown in the
MOVE From and To fields.
Note: CA InterTest for CICS specifies the field‘s length and data type.
For COBOL programmers, using this menu is the easiest way to modify storage because
it requires no knowledge of data formats, hexadecimal values, or internal storage
representations.
Define Literals
The previous screen shows how to move a literal keyword into the To field.
■ Numeric literals are decimal strings of up to 18 digits, optionally preceded by a plus
or minus sign.
■ Non-numeric literals are any string of EBCDIC characters enclosed in single quotes.
■ The character string cannot contain a quotation mark.
To specify a keyword in the From field, use any of the keywords listed in the following
table.
ALL 'xx' or ALL nn fills the receiving field with a character string or a decimal digit.
Examples
■ To move the three-byte character string ABC into the DEPT field, enter:
From 'ABC' To DEPT
■ To fill the field INITIALS with the character string SF, enter:
From ALL 'SF' To INITIALS
■ Uppercase translation occurs when the PF9 key says Caps Off. No translation occurs
when it says Caps On. To change the mode, press the PF9 key before entering any
data.
■ If you enter commands together with changes, the changes are made before the
commands are executed.
Another way of changing storage is to specify the starting byte of the area you want to
change using the COBOL name or Special element field. Enter the new data in the New
data field. It is a good idea, though not required, to enter the current data in the Existing
data field. If you do, CORE verifies the field contents before making the data change. If
the verification fails, CA InterTest for CICS informs you, and the change is not made.
Specify existing and new data as follows: as a character string (C'...'), hexadecimal value
(X'...'), packed data (P'value'), a binary fullword (F'value'), or a binary halfword (H'value')
where the value is a decimal number optionally preceded by a plus (+) or minus (-) sign.
If no sign is specified, it defaults to +.
Example
1. The entries on the following screen show how to change the contents of the
CUST-NAME field from JIMMY to RONALD.
CA InterTest for CICS performs the requested change only if it verifies that the
current contents of CUST-NAME are JIMMY. If CA InterTest for CICS does not find
JIMMY in CUST-NAME, it will not perform the change and displays a message to
that effect.
2. To change the contents of CUST-NAME to RONALD regardless of its current
contents, enter nothing in the Existing data field, and in the New data field enter:
Existing Data:
New data: C'RONALD'
4. CA InterTest for CICS informs you whether the prescribed data was found in the
designated field.
5. Combine data formats in a single expression.
Example
To specify New data as the character string KEY-CODE followed by two bytes of binary
zeros, enter:
Existing data:
New data: C'KEY-CODE'X'0000'
3. Specify the maximum number of bytes of storage you want searched (in field ).
Specify it in hexadecimal format or as a decimal number followed by the letter T.
4. Search backward from the starting location, enter B in field . If you leave this field
blank, the default is to search forward.
Example
The previous screen is set up to search for the character string STEVE F, beginning at the
program location TABLE1, and searching for 1000 hexadecimal bytes at most.
Use the CORE=Bkpt Menu screen to display or change storage relating to the task
currently stopped at a breakpoint. All fields, except the numbered ones, operate the
same as for the CORE=Bkpt menu displayed for a COBOL program stopped at a
breakpoint.
To display the contents of a register, a program location, or a data location, perform the
following steps:
1. Make the appropriate entries in fields , , and as described next.
2. To display the program code at a particular location, enter its label in field .
3. To display the contents of a data field, specify its location by entering the name of
the base register in field , and its displacement (from the address in the base
register) in field .
4. To display the contents of register n (a decimal number from 0 to 15), enter the
desired register number in field .
5. To display an argument on your program's Argument List, enter a decimal number
from 0 to 99 in field .
Examples
To display the program code at SCANLOOP, enter:
To display the area at displacement TIOADBA from the address in the register equated
to TIOABAR, enter:
Register #: 8
Argument: 2
Use this screen to display or change storage relating to the task currently stopped at a
breakpoint. All fields operate the same as for the CORE=Bkpt menu displayed for a
COBOL program stopped at a breakpoint, except you enter a PL/I data name in the first
field instead of a COBOL data name. For a description of this screen, see
Breakpoint-Related Areas menu earlier in this chapter.
CICS AREA:
To get an entire area or table, specify any CORE key area, such as CSA.
ADDRESS:
To get a CICS address, specify one to eight hexadecimal digits.
PROGRAM:
To get a program load module, specify a program name.
PROGRAM and M:
To display a BMS MAP, specify the map name in the PROGRAM field, and
specify M in the field to the right.
■ After specifying the system areas for display, specify where to begin the display
using the Optional offset and/or Scan fields.
Optional offset:
Specify a hexadecimal offset or sequence of offsets.
Each offset must begin with either + (a positive hexadecimal
displacement), - (a negative hexadecimal displacement), @ (an indirect
address), or % (an indirect XA address). You can also calculate offsets. For
example: @32*4.
To display the program from other than the beginning after it is loaded, follow these
steps.
1. Specify an Optional Offset in field .
2. Press Enter for a structured display.
3. Press Enter a second time for a dump display.
The CORE Command Builder Task-Related Areas menu is used to view or modify areas
relating to a particular task. To view the menu, select Option 2 Task areas from the
Main Storage menu. The CORE Command Builder Task-Related Areas menu is shown
next. Use this menu to display, change, or scan storage relating to a specified task for a
task waiting at a breakpoint.
Task AREA: ________ DWE, JCA, LLA, STCA, TACB, TCA, TWA, USER, XMTXN, SMX
CLOT, RDIIN, SQLCA, SQLRCODE, PLCB, PTA, TASKENT
Task number: 00052
Experienced users often find that entering commands is faster than using the menu
screens. Enter CORE commands on a clear screen, or on the command line of a Detailed
or Source Listing Breakpoint display, or on any CORE display.
The CORE commands are explained in the following sections with some advanced
options that are intended only for experienced CA InterTest for CICS users. If you are an
inexperienced CORE user, skim the rest of this chapter and reread it when you are more
familiar with CORE. Find details on using CORE commands in online help.
CORE=location
CORE=location+displacement
CORE=location-displacement
To display main storage beginning at a displacement from the area currently displayed,
use either of the following commands:
CORE+displacement
CORE-displacement
displacement
Indicates offset of the first byte of the area to be viewed from the first byte of the
area currently displayed. The displacement number is hexadecimal, such as, 100, or
decimal, such as, 256T. A number followed by the letter T, for base ten, specifies a
decimal number.
Examples
The next examples show a number of CORE commands that are described in following
sections:
■ To display the COBOL Working-storage area, enter:
CORE=CWK
■ To display the data item EMPLOYEE-NUMBER enter the command shown next. The
data item is a variable or fixed length.
CORE='EMPLOYEE-NUMBER'
■ To display main storage beginning hexadecimal 10 bytes (or 16 bytes) after the data
location TABLE, enter:
CORE='TABLE'+10
■ To display main storage hexadecimal 100 bytes (or 256 bytes) after the start of the
area currently on display, enter:
CORE+100 or CORE+256T
■ To display the storage area that is hexadecimal 100 bytes (or 256 bytes) before the
area currently on display, enter:
CORE-100 or CORE-256T
■ To display (for Assembler programs) the area at displacement TIOATDL from the
address in the register equated to TIOABAR, enter:
CORE='TIOABAR.TIOATDL'
■ To display the ZIP-CODE in a specific CITY for a specific CUSTOMER enter the
command shown next.. Notice that each comma must be followed by a space.
CORE='ZIP-CODE(NAME-IDX, CITY-IDX, ZIP-IDX)'
The following table summarizes how you enter locations and displacements in CORE
commands. For details,CORE Commands for PL/1 Symbolic Programs (see page 406)
later in this chapter.
Any Language
Numeric Location 1- to 8-hexadecimal digits
1- to 8-decimal digits followed by the letter T
Numeric Displacement 1- to 6-hexadecimal digits
1- to 8-decimal digits followed by the letter T
(number1*number2) or (number1/number2)
CICS Areas CORE keyword or keyword. fieldname
There are many elements available to you that are described later in this chapter. In
addition, create new elements that apply only to your site.
Note: The Installation Guide provides instructions for defining new elements by coding
CORUCOM macros.
Storage Pointer
The CORE transaction maintains a storage pointer that is adjusted as CA InterTest for
CICS reads and interprets the CORE commands you enter. Before the first input
command is processed, this pointer is set to the address of the CICS Common System
Area (CSA).
After you enter a command and the first CORE display opens on your terminal, the
storage pointer is set to the address of the first displayed byte. This is the address of the
storage pointer that the CORE transaction recognizes when it examines the next
command you enter. For example, the following sequence of commands locates the
area named (symbolically) ACCOUNT-NUMBER in the COBOL program whose task is
presently waiting at breakpoint, and displays it. Then it adds five to the address of the
displayed area and produces another display that begins at the new address.
CORE='ACCOUNT-NUMBER'
CORE+5
CA InterTest for CICS adjusts the storage pointer for every element found in your
commands. CA InterTest for CICS reads each command from left to right and executes
the first executable element it finds.
Example
CORE='CHARGE-ITEMS'
CORE=SCAN404T,C'FRONT PANEL'
CORE=CHGC'REAR PANEL'
Both commands find the field named CHARGE-ITEMS in the program waiting at
breakpoint, scan that storage area (which is 404 bytes long) for the characters FRONT
PANEL, and change these bytes to contain the characters REAR PANEL instead. (This is
an example of using an equal sign to indicate the beginning of a new element.)
The CORE transaction protects itself against incorrect addresses and recovers from
abends caused by store- or fetch-protected addresses. It usually encounters these kinds
of addresses during the search for the specified storage area, or if you have made a
mistake in formulating the CORE command. If this type of error occurs, the message
STORAGE ACCESS ERROR displays.
=WHERE directive
The =WHERE directive is optionally specified after the storage pointer. When this
directive is specified, the CORE display identifies what CICS subpool, control block, or
program owns the storage.
Example:
CORE=1234567=WHERE
CORE=FWDnnn
CORE=BWDnnn
Example
The command CORE=FWD5 causes CORE to display the storage area five pages ahead of
the current area on display. Each page is the size of one CORE display, which is
hexadecimal 110 or decimal 272 bytes. So, the command CORE=FWD5 scrolls the display
forward 5 x 272 = 1360 bytes.
Indirect Addressing
The at sign (@) is used to signify indirect addressing in a CORE command. Indirect
addressing uses an address stored in a pointer field to locate a field for display. The
basic command formats used to perform indirect addressing follow.
To display main storage beginning with the address stored at the specified location,
enter:
CORE=location@0
To display main storage beginning with the address stored in the fullword located at the
given displacement from the specified location, enter:
CORE=loc@disp
Examples
INPUT-RECORD
Indicates the data structure addressed by the BLL cell named
INPUT-RECD-ADDR.
■ To display the first storage area on the task storage chain, enter:
CORE=STCA@4
STCA
Indicates CORE keyword for the System Task Control Area. CORE displays the
storage area whose address is stored in the low-order three bytes of the
fullword at STCA+4. The result is that CORE displays the first storage area on
the task storage chain, which is stored at STCA+4. Pressing Enter repeats the
CORE command, letting you run through the entire chain.
Notes:
■ If the same data name, such as CUSNAME, is defined more than once in a COBOL or
PL/I program, reference particular occurrences using the qualified data name.
■ CORE displays as many bytes as are defined by a symbolic name unless the name is
modified by a displacement.
Example
To get a full CORE display (272 bytes of storage) beginning with the data location called
CUSNAME, enter the command CORE='CUSNAME'+0, not just CORE='CUSNAME'.
■ If you have a data name defined in arrays, specify it like this:
CORE='NAME-1(X1, X2, X3)'
Examples
In each of the following examples, the symbolic program addresses relate to the
program currently stopped at a breakpoint. Using symbolic addresses for a program not
stopped at a breakpoint is described in Display Program Code for a Program Not at a
Breakpoint (see page 419) later in this chapter.
■ To display the data field CUSTNAME in the program (COBOL) that is currently
stopped at a breakpoint, enter:
CORE='CUSTNAME'
Example
A structure is finished when a data item's level number is equal to or less than the level
number of the first item in the structure.
■ To display the first executable instruction in the named COBOL paragraph of the
program currently stopped at a breakpoint, enter:
CORE='900-END-RTN'
■ To display the data field TASK_TEXT in the program (PL/I) that is currently stopped
at a breakpoint, enter:
CORE='TASK_TEXT'
■ To display the code for the first executable instruction in statement 313 of the
program currently stopped at a breakpoint, enter:
CORE=#313
■ To display the code for the second verb in statement 313 of the COBOL program
currently stopped at a breakpoint, enter:
CORE=#313.1
■ To display the code for a qualified program name currently stopped at a breakpoint,
enter:
CORE='ACME300N:WS-VARIABLE-FLD'
Example
CORE='TABLE(1, SUB-2)'
CORE='CUSTOMER-NUMBER OF CUSTOMER-FILE-C'
Location Format
data locations 'regname.label'
program locations 'label' (the label value must exceed 15)
registers 'regname' (where the equated value is less than 16)
Examples
Each format is shown in the following examples, where the symbolic program addresses
relate to the Assembler program currently stopped at a breakpoint.
■ To display the area at a displacement of TIOADBA from the address in the register
equated to TIOABAR, enter:
CORE='TIOABAR.TIOADBA'
Reference this module online by adding USE=xxxxxxxx to the CORE command. This
additional option tells CA InterTest for CICS to access the named module (xxxxxxxx)
instead of the program where CA InterTest for CICS is currently stopped.
■ The data area’s DSECT was not printed in the Assembler output listing
■ The requested DSECT is in an area preceded by a PRINT OFF instruction
Reference this module online by adding USE=xxxxxxxx to the CORE command. This
additional option tells CA InterTest for CICS to access the named module (xxxxxxxx)
instead of the program where CA InterTest for CICS is currently stopped.
Example
This command checks to see if the symbol is a label. If it is, the machine code at that
location is displayed. If it is not, the definition of the symbol in the most recently
activated procedure or block is used to display the current value of the symbol.
Note: The most recently activated block, containing a definition of the symbol, need
not be the currently executing block.
CORE='blockname:symbolname'
CORE='blockname:name1.name2.name3'
This command checks to see if the symbol is a label in the qualifying block. If the
named block is active, the definition of the symbol in that block is used to display
the current value of the symbol. If it is not, the blockname is checked to verify that
it is on the active block chain.
CORE='symbolname1 >symbolname2'
This command displays variables listed as based (*) in the PL/I Cross Reference,
where:
– symbolname1 is assumed to be a pointer that points to an area to be mapped
by symbolname2. If it is not a pointer, then the address of symbolname1 is
mapped by symbolname2.
– symbolname2 formats the data to be displayed. In the case of a structure,
symbolname2 is assumed to be the beginning of the area pointed to by
symbolname1.
CORE='name1.name2(name3,name4)'
Display array item indicated by the resolution of variables name1 and name2. Up to
15 levels of qualification and subscripting are supported.
■ Controlled variables (CTL) are not supported.
■ Symbolic CORE commands should not be used when a program is stopped at a
PROC or BEGIN statement. The DSA environment is not properly established by PL/I
until the first executable statement in a block is actually executed. As a result, CORE
provides unpredictable results if you refer to a symbol that has not been allocated
or freed (such as BASED variables that are allocated in the block).
Example
CORE='PROC1:FIELDB'
CORE='SUBPROC:FIELDB'
DCL Q PTR;
DCL R PTR;
DCL Z BASED(Q);
CORE='R >Z'
CORE=PGM=progname+symbolic name
Example
To display the code generated in the COBOL paragraph named EDIT DATA in the
resident program named ORDENTRY, which is not at a breakpoint, enter:
CORE=PGM=ORDENTRY+'EDIT DATA'
This command adds the displacement of EDIT DATA to the address of the first byte of
the program ORDENTRY and displays main storage starting at that address. If the
program is not resident, specify the following command to load the program into
storage:
CORE=LOAD=progname
Breakpoint Commands
Certain CORE commands are applicable only when a task is stopped at a breakpoint.
These commands let you do the following tasks:
■ Display storage areas whose contents are meaningful only when task execution
halts at a breakpoint
■ Display the screen as it existed before the breakpoint or restore the breakpoint
display
■ Dynamically acquire main storage
■ Change the values of program data items using COBOL like MOVE commands
CORE=SSCR
To return to the CORE command after displaying the screen image, press Clear.
CORE=GETM,L=len,CL=type,INIT=xx
L=len is mandatory. The value of len is the same as the one entered with the parameter
LENGTH(...) in a CICS GETMAIN command or would be entered with the keyword
NUMBYTE=... of a GETMAIN macro. It could be a hexadecimal value or a decimal
followed by the letter T.
CL=type is optional and specifies the type of storage to be acquired. CL=USER acquires
user class storage and CL=TERM acquires terminal class storage (TIOA). If this parameter
is omitted, CL=USER is assumed.
INIT=xx is optional. The hexadecimal digits xx specify the character used to initialize the
storage area. The default is binary zeroes.
When a CORE=GETM command executes, CA InterTest for CICS displays the acquired
area beginning with its eight byte Storage Accounting Area (SAA). The address of the
acquired area must be saved in a register where the program expects to find it.
The SET command is useful to load the address. Note that if the address is placed in a
COBOL BLL cell, the address must be adjusted up 8 bytes to point past the SAA. If a
COBOL program has loaded the contents of the BLL cell into a register, the register must
also be loaded.
Examples
CORE+8=SET=BLL1
CORE=SET=REG6
CORE=SET='SSA POINTER'
field 1
Names the sending area.
field 2
Names the receiving area. Both fields must be defined in the program. Do not
enclose either field name in quotes. Qualify, index, or subscript either field.
literal
Indicates a fixed point numeric value, a string of EBCDIC characters, or a keyword,
such as ZERO or SPACES.
fixed point literal
Indicates a string of up to 18 decimal digits with an optional leading plus, +, or
minus sign, . (No sign defaults to +.) Embedded decimal points are not allowed.
Specify any string of characters from one to 120 EBCDIC characters enclosed in quotes
as a literal. A quotation mark cannot be part of the character string defining the literal.
Note: Append the letter S to any of the previous keywords without changing its
meaning. For example, the command MOVE SPACES TO CUSTNAME is equivalent to
MOVE SPACE TO CUSTNAME.
To repetitively fill a field with a particular character string or decimal digit, precede the
literal with the keyword ALL followed by a space. For example, ALL 'XYZ' or ALL 9. The
literal following ALL is any valid EBCDIC character string enclosed in quotes. If the literal
following ALL is a numeric, it must be a single unsigned decimal digit.
The MOVE command handles only certain data types and makes any required
conversions from one data type to another. The conversions follow the examples
specified in the IBM Full American National Standard COBOL Reference Manual. The
fields are checked for numeric content, as needed.
A list of supported data types and the corresponding conversion rules follows:
CORE=Area Displayed
To specify the task number to be used by CORE in accessing task related areas, enter:
CORE(task no)
CORE(*)
Use this command if there is just one task currently at a breakpoint at the terminal.
Examples
These examples show how to display storage for non breakpointed tasks.
■ To display the top USER-class storage area for task 2145, enter:
CORE(2145)=USER
Subsequent task related commands refer to task 2145 until the task number is
changed in a CORE command or until a new breakpoint occurs.
■ To display the user portion of the TCA for the task currently at a breakpoint, enter:
CORE(*)=TCA
Examples
Commands that move data into a specified storage area are listed in the following table:
Command Function
MOVE Used when a COBOL or PL/I program is stopped at a breakpoint.
This command was described earlier in COBOL Like MOVE
Command at a Breakpoint.
CHG Used to specify that data be moved into main storage at the
current or specified main storage location.
Command Function
MOVEIN Used to move data from one location in storage to another.
SET Used to load an address into the low order three bytes of a
specified fullword.
■ To move data into main storage beginning at the specified location, enter:
CORE=loc=CHGdata
Specify the data in a CHG command using any of the following formats:
■ C'chardata' for character data
■ X'hexdata' for hexadecimal data
■ P'value' for packed decimal data
■ F'value' for a binary fullword
■ H'value' for a binary halfword preceded by a plus or minus sign
Replace 'value' with a decimal number, optionally preceded by a plus (+) or minus ( )
sign.
Examples
CORE=CHGC'123'
CORE=CHGX'F1F2F3'
To place the characters 123 in the first three bytes of the data field ACCT NUM defined
in the program currently stopped at a breakpoint, enter:
CORE='ACCT NUM'=CHGC'123'
To move the two byte packed decimal value of 100 into the first two bytes of the data
field QUANTITY, enter:
CORE='QUANTITY'=CHGP'100'
To move the name O'HARA into the data area CUSNAME, specify:
CORE='CUSNAME'=CHGC'O"HARA'
To change the value of RECKEY to the name SMITH followed by two bytes of binary
zeroes, specify:
CORE='RECKEY'=CHGC'SMITH'X'0000'
Bit Manipulation
Appending OC, NC, or XC after the data string lets you perform one of the following
logical operations to the contents of main storage:
■ OC to OR the data in the command to storage
■ NC to AND the data in the command to storage
■ XC to EXCLUSIVE OR the data in the command to storage
Examples
■ To set the high order bit of the first byte on the current CORE display to 0, enter:
CORE=CHGX'7F'NC
■ To reverse all the bits of the first byte on the current CORE display, enter:
CORE=CHGX'FF'XC
CORE=loc=VERdata
X'hexdata'—hexadecimal data
Example
Verify that the NAME field contains JIM before changing it to JAY. If JIM is not in the
NAME field, the change command is rejected, enter:
CORE='NAME'=VERC'JIM'=CHGC'JAY'
The length parameter, L=len, specifies the number of bytes to be moved. The maximum
value for len is decimal 256, specified as 256T.
Example
To move twenty (hexadecimal 14) bytes of data from NEWNAME into CUSTNUM, enter:
CORE='CUSTNUM'=MOVEIN,L=14,FROM='NEWNAME'
CORE=addr1=SET=addr2
The address specified by addr1 is placed into the three low order bytes of the fullword
whose address is given by addr2. The high order (left most) byte is filled with binary
zeroes.
Examples
■ To put the starting address of the program named PROGRM1 into the fullword that
is at a displacement of 2C from the beginning of the program named PROGRM2,
enter:
CORE=PGM=PROGRM1=SET=PGM=PROGRM2+2C
or
CORE=SCABrange,data
or
CORE=loc=SCABrange,data
The search terminates when the first occurrence of the specified data is found or the
number of bytes specified in the range have been scanned. Specify the range as a
hexadecimal number or a decimal number followed by the letter T.
Examples
These examples show how to search for and replace data in main storage.
■ To search for the string STEVE beginning at the location TABLE1, enter:
CORE='TABLE1'=SCAN1000T,C'STEVE'
The search for STEVE proceeds forward for a maximum of (decimal) 1000 bytes. If
STEVE is not found a message displays.
■ To search for STEVE starting at TABLE1, and to replace STEVE with the character
string CHRIS, enter:
CORE='TABLE1'=SCAN1000T,C'STEVE'=CHGC'CHRIS'
Note: This command only replaces the first occurrence of STEVE with CHRIS.
■ To inform CICS that the named program can be deleted or to decrease its current
use count by 1, enter:
CORE=DLTE=progname
If a program name contains any of the special characters, @, #, or $, you must enter the
program name as C’progname’. For example, to load the program named FIND#7 into
main storage, enter:
CORE=LOAD=C'FIND#7'
L=len
Specifies the size of the dump. Specify as a hexadecimal number or a decimal
number followed by a T. This parameter is optional and, if omitted, defaults to the
size of a CORE display.
ID=code
Specifies a dump code. If omitted, the default is CORE.
Following the dump ID, include an optional message in the DUMP command. A blank
must separate the message from the command. The entire DUMP command and any
messages are included in the dump.
Example
To produce a dump of the storage area that was on the CORE display screen at the time
the command was entered, enter:
The dump ID will be MY01, and the message BAD ACCT NUMBER displays in the dump.
CORE=command1=command2=...=commandn
CORE=command1
CORE=command2
CORE=commandn
Examples
Note: When using the CALC function, the letter T, for base ten, must follow decimal
numbers.
Examples
The following examples demonstrate how to display hexadecimal and decimal values of
specified numbers.
■ To display the hexadecimal value of 200 and the decimal value of 512 on the
bottom line of the screen, enter:
CALC=200
■ To display the decimal value of 512 and the hexadecimal value of 200 on the
bottom line of the screen, enter:
CALC=512T
■ To display the hexadecimal value of 202 and the decimal value of 514 on the
bottom line of the screen, enter:
CALC=0+(10*16T)+(16T*16T)+2
pgmname
Indicates the PPT ID of a PL/I program module. It must be followed by a semicolon
and a plus sign.
procname
Indicates the name of an internal PL/I procedure as listed in the Tables of Offsets.
offset
Indicates a hexadecimal offset for a statement as listed in the Tables of Offsets and
Statement Numbers.
This command accepts the offset for a statement as listed in the Tables of Offsets,
and returns the hexadecimal value of the offset of that statement as counted from
the beginning of the main control section. Use the returned value to set a
breakpoint or to request a CORE display of the program code at that location.
Examples
CORE=PGM=TESTPROG;+'EDIT INPUT'+10
The named program must reside in main storage. If it does not, use the following
command to load it:
CORE=LOAD=pgmname
When you are finished, use the following command to remove the program from main
storage:
CORE=DLTE=pgmname
CORE(NNNNN)=BMSG
Use the CORE(NNNNN)=BMSG command to view a breakpoint display that is currently
being displayed on another terminal. By replacing NNNNN with the task number of the
breakpointed task, you can view the breakpoint display already showing for that task,
and you will be able to display and modify storage related to that task as if your terminal
was the breakpoint terminal. You will not be able to resume execution or abend the task
at the breakpoint (this must be done from the actual breakpoint terminal). Use the
CNTL=DISC command from the command line to disconnect from the breakpoint
display.
The FILE transaction is very useful when you want to update records or create test data.
Use FILE at:
■ Any time, even when the rest of CA InterTest for CICS is inactive
■ A breakpoint to inspect and modify data values and generate more test data
The changes you make to a file or database are always permanent, rather than dynamic,
changes.
FILE Capabilities
Use FILE to perform the following functions. Each main function is an option on the
Auxiliary Storage Menu.
■ DL/I Databases
– Retrieve segments
– Add, update, and delete segments
■ Transient Data
– Retrieve a transient data record
– Add a transient data record
– an intrapartition data queue
■ Temporary Storage
– View or add a temporary storage record
– View or add a temporary storage queue record
– Search a temporary storage queue for data
– Purge a temporary storage queue
In addition to the previous listed functions, use FILE to perform tasks that would
otherwise require specially written programs.
Example
FILE performs these tasks because it retains retrieved record and segment data in its
own WORK AREA.
The CA InterTest for CICS FILE transaction is comprehensive. It enables you to perform
interactively any function that is supported by CICS File Control and DL/I, and most DB2
functions. FILE uses CICS services exclusively; it does not use the operating system's data
access methods directly.
■ Temporary storage queue names of all valid lengths. If you are running CTS Version
1.3, queue names are up to 16 bytes or 32-hexadecimal characters long.
Consider the following operations when working with the FILE work area:
■ A successful input operation overwrites data currently in the work area.
■ A successful output operation leaves all data in the work area intact. Reuse the
contents of the work area for any number of consecutive output operations without
having to reacquire the same data.
■ Changing data in the work area does not affect the contents of the accessed data
structure (file, database, temporary storage, transient data) until a successful
output operation is performed.
■ The contents of the work area can exceed the display capacity of the terminal
screen. Display any portion of the work area by entering the location in the LOC
field or using PF keys. For a complete description of the LOC field, see Dump Format
(see page 447) later in this chapter.
Note: In a list spanning multiple pages, use the command LOCATE filename to position
the display to the desired file.
For a list of the supported commands available from all CA InterTest for CICS Selection
List displays and the standard PF Key definitions.
MESSAGE=
RETNRCID= CHGELEN=
RCID=
The header area contains fields for specifying:
■ Type of data organization (DATATYPE)
■ Record or segment to be retrieved
■ Format in which the data is to be displayed (FORMAT)
The previous screen shows the default values for the DATATYPE field (FC - File
Control) and for the FORMAT field (D - Dump).
When FILE retrieves a record,it displays in this area.
When FILE retrieves a record, it displays information about the file or PCB
information for a DL/I database in this area. This area also displays the functions
that can be performed, such as READ, BROWSE, and UPDATE etc against the FILE.
Note: FILE uses different screens for accessing and displaying DB2 and SQL/DS
databases. For more information, see 2 later in this chapter.
3. If the display format is not suitable, press PF2 until the format you want is
displayed, or replace the value in the FORMAT field with one of the following:
D for Dump format
C for Character format
V for Vertical format
S for Structured format
Each of these formats is described in the sections that follow.
4. If you do not want the display to start at the beginning of the record, change the
value in the LOC field. Change this field at any time during the session.
Example
To view the data in the 150th byte of a record, specify 150 in the LOC field (95 for
FORMAT= D) so byte 150 is the first byte displayed.
Dump Format
The following screen shows a record displayed in dump format.
On this screen:
■ The left side of the record displays the hexadecimal representation of each byte
■ The right side is the character representation of each displayable byte;
non-displayable bytes are shown as periods
LOC Field
The LOC field determines where the display starts. For example, if the LOC field specifies
002F, the first byte of data displayed is the 48th byte of the record.
The line numbers under the LOC field and the scale to the right of the FORMAT field
help you determine the location of any byte of data. Each line number indicates the first
byte of data in that line.
Character Format
The following screen shows a record displayed in character format.
RETNRCID=0000000005 CHGELEN=
RCID=
In this screen, the record displays in horizontal lines containing up to 50 characters per
line and non-displayable bytes are represented by periods.
Example
If the LOC field specifies 0065, the first byte of data displayed is the 65th byte of the
record.
The line numbers under the LOC field and the vertically arranged scale to the right of the
FORMAT and LOC fields help you determine the position of any byte of data. Each line
number indicates the first byte of data in that line.
To locate a particular byte, first go down to the correct line number, and then go across
to the correct position.
Example
To locate the 65th byte of data in the record in the previous figure, go down to LOC line
00051, and then across to position 15. This byte contains a J.
Vertical Format
The following screen shows a record displayed in vertical format.
In vertical format, the data displays in groups of three lines similar to a DITTO output,
with a blank line separating each group. Each line is represented as follows:
■ Line 1 represents character format
■ Line 2 represents hexadecimal values of the zone (high order) half-bytes
■ Line 3 represents hexadecimal values of the digit (low order) half-bytes
Example
If the LOC field specifies 00020, the first byte of data displayed is the 20th byte of the
record.
The line numbers under the LOC field and the vertically arranged scale to the right of the
FORMAT and LOC fields help you determine the location of any byte of data. Each line
number indicates the first byte of data in that line.
To locate a particular byte, first go down to the correct line number, and then go across
to the correct position.
Example
To locate the 20th byte of data in the record in the previous figure, go down to LOC line
00001, and then across to position 20. This byte contains a '9' (X'F9').
Structured Format
FILE displays file, transient data, and temporary storage records or DL/I segments
field-by-field in structured format. COBOL and PL/I structures use 01 level data names;
Assembler structures use DSECT names.
To display a record or segment in structured format, you must identify the program
containing the structure. Symbolic information for this program must be saved in the CA
InterTest for CICS Symbolic File. Follow these steps to display a record or segment in
structured format:
1. If the FORMAT field does not contain S, press PF2 until FORMAT=S is displayed. The
USE= field now opens after the FORMAT field.
■ Both screens list the contents of each data name in both hexadecimal and character
format.
■ For Assembler DSECTs, the display also includes the displacement.
■ Non-displayable bytes are represented by periods.
Record/segment display—For Assembler, 16 bytes per line; for COBOL or PL/I, 12 bytes
per line in hexadecimal and character
The structure-name remains valid throughout the FILE session unless it is changed. This
lets you shift display formats or data types without re-entering the structure-name.
Special Features
Example
USE=*.payrec
CA InterTest for CICS uses the program named PAYROLL and the PAYREC structure.
The symbolic name for this program is referenced in the FSYMP installation name. The
default name is PROTFILE.
:
Note: For details, see the Installation Guide.
USE=structure-name
FIND=data-name
Example
FIND=A9 finds the field named A9-AREA, but not the field named AREA-A9.
The search begins with the data name after the starting point and continues until either
a match is found or the search has wrapped around to the original starting point. A
message signals a possible wraparound.
Universal Mode of Data Entry in the RCID, DATA, and SSA Fields
Use the universal mode of entering data in the RCID, DATA, and SSA fields when you are
entering information that contains both character and binary data (such as a VSAM key),
or when it is inconvenient to change the display format.
Example
C'O''ALLEY''
■ Hexadecimal Data. Specify X' (X and a single quote) before the data, and a ' (single
quote) after it. The data must be an even number of hexadecimal characters.
Example
X'001F'
You can also enter data that is both character and hexadecimal.
Example
C'1234'X'000F'
Note: CA InterTest for CICS password protection decisions were made by the person
who installed CA InterTest for CICS. For more information, consult that person or the
Installation Guide.
FUNC= LOG
FUNC= NLOG
When logging is in effect, the LOG field contains LOG= ON and the FUNC=COPY function
is disabled. When it is not in effect, the LOG field contains LOG= OFF.
Note: If the AUDIT installation option was set at installation time, you cannot terminate
logging.
PF Keys
When you are using FILE, the PF keys perform the functions listed in the following table.
PF Key Function
PF1 Help initiates the CA InterTest for CICS online Help facility.
PF2 Format C V D S changes the format displayed to Character, Vertical, Dump,
or Structured.
PF3 End or Clear terminates the FILE facility.
PF4 BEGB ENDB begins or ends a Browse for VSAM files specified for browse in
the FILEID field.
PF5 PREV NEXT displays the previous or next record in browse mode.
PF6 DataType changes the DATATYPE to the code displayed next to the PF6 key:
FC for File Control, DL for DL/I, TD for Transient Data, TS for Temporary
Storage, and DB for both DB2 and SQL/DS.
PF7 Page Bwd scrolls the current display one page backward.
PF8 Page Fwd scrolls the current display one page forward.
PF Key Function
PF9 Caps Off/Caps On sets the mode of translation when changing data in the
character area of the display. When Caps On displays, all character data is
accepted as typed. When Caps Off is displays, all character data on the line
is translated to uppercase. Press PF9 to change from one mode to the
other.
Note: Translation to uppercase will not occur if an existing lowercase
character would be affected; a message is issued instead.
PF10 Top scrolls the current display to the top of the work area.
PF11 Bottom scrolls the current display to the last page of the work area.
Important! To determine the location of any byte on the data display portion of the
screen, add the number on the left end of the line (the number under the LOC field) to
the number above the byte in the data display header (to the right of the FORMAT=
field).
4. Optionally enter one of the following values in the SRCHTYP or ARGTYP field:
5. Press ENTER to display the record data with the following fields filled in:
SIZE= the number of bytes in the record (the size of the work area)
ENTER N FOR NEXT PAGE, P FOR PRECEDING PAGE, F FOR FIRST PAGE, OR
Note: If you overtype the same data in hexadecimal and character display fields, the
hexadecimal change takes precedence.
You can also replace record data with fill characters, data from CORE, or data from the
saved WORK AREA.
Use a hexadecimal number for FORMAT=D and a decimal number for all other
FORMATs.
4. Press Enter. The MESSAGE= field displays the following message and the displayed
record shows the new data at the proper location.
xxx NUMBER OF BYTES CHANGED
Example
To change four bytes at location 20 to the literal TEST, fill in the fields as shown next,
and press Enter:
FUNC=CHGE
DATA=C'TEST'
LOC=00020 (or 0013 for FORMAT=D)
To fill part of the WORK AREA with a character string, specify the following fields, and
press Enter:
FUNC=CHGE
SUBFUNC=FILL
CHGELEN= length of area to be change
DATA= character string
DOC= starting position
Example
To move 30 spaces into locations 15 to 44, specify the following fields and press Enter:
FUNC=CHGE
SUBFUNC=FILL
CHGELEN=0030 (or 001E for FORMAT=D)
DATA=C' ' (or X'40')
LOC=00015 (or 000E for FORMAT=D)
To copy data from a main storage location into the WORK AREA, specify the following
and press Enter:
FUNC=CHGE
SUBFUNC=CORE
DATA= CORE command that determines the source address
CHGELEN= length of area to be changed
LOC= starting position
Examples
The following examples demonstrate how to copy data from main storage.
1. To copy 16 bytes from TWA+8 (at a CA InterTest for CICS breakpoint) into locations
48to 63 of the record, specify the following, and press Enter:
FUNC=CHGE
SUBFUNC=CORE
CHGELEN=0016 (or 0010 for FORMAT=D)
DATA=CORE=TWA+8
LOC=00048 (or 002F for FORMAT=D)
2. Suppose you are stopped at a breakpoint in a COBOL program. You want to copy
ten bytes of data from a field named SOC-SEC-NUMBER into locations 1 to 10 of the
record. To do this, specify the following and press Enter:
FUNC=CHGE
SUBFUNC=CORE
CHGELEN=0010 (or 000A for FORMAT=D)
DATA=CORE='SOC-SEC-NUMBER'
LOC=00001 (or 0000 for FORMAT=D)
To copy data from a saved work area into the current WORK AREA, specify the
following, and press Enter:
FUNC=CHGE
SUBFUNC=FROM
CHGELEN= length of the area to be changed
DATA=FROMLOC= location of the data in the saved WORK AREA
LOC= starting position
FUNC= SAVE
FUNC= DISS
FUNC= DISW
FUNC= DUMP
TODEST= a four character dump code
You can also enter an explanatory note in the MESSAGE field. The note displays in the
dump.
FUNC= COPY
TODEST= a transient data queue ID
You can also enter an explanatory note in the MESSAGE field. The note is written with
the work area.
Command Function
ADDN Acquires a new work area for record insertion.
ADDU Uses an existing work area for record insertion.
CHGE Changes data in the work area.
COPY Copies a work area to the transient data destination specified in the
TODEST field.
DISS Displays the saved work area.
DISW Displays the current work area.
DUMP Dumps the work area using the dump code entered in the TODEST
field.
END Ends the FILE session.
HELP Accesses Help for FILE.
LOG Logs all FILE transaction requests and responses.
NLOG Terminates logging.
SAVE Creates a copy of the current work area.
SRCH Searches for the data string specified in the DATA field (not valid for
DL/I or transient data).
VSAM Files
The FILE transaction performs any VSAM function allowed in your CICS system.
Note: You might want to consult the IBM CICS/VS Application Programmer's Reference
Manual for information on using VSAM files. This manual helps you formulate your FILE
requests correctly, and explains the meaning of many responses you will receive from
FILE.
To begin processing a VSAM file, first make sure you are viewing the correct screen. The
DATATYPE= field should be set to FC. If not, press PF6 or enter:
DATATYPE= FC
Then enter:
The other information you enter depends on the function you want to perform.
Occasionally, the last record identification for a file is needed as the first record
identification for another file. To prevent the RCID from being reset to nulls or to one,
enter LAST in the SUBFUNC field when you specify the new filename in the FILEID field.
The LAST subfunction works only when a file is requested for the first time.
Examples
Examples of the complete screen, see Dump Format (see page 447), Character Format
(see page 449), Vertical Format (see page 450) and Structured Format (see page 451)
earlier in this chapter.
DATA= SIZE=
FORMAT= D 00112233 44556677 8899AABB CCDDEEFF *0123456789ABCDEF*
LOC 0000 ........ ........ ........ ........ ................
Fields Function
DATATYPE Identifies the type of data organization. This must be FC.
FILEID Specifies the name of the VSAM file.
MODE Identifies the FILE operation such as browse, update, add, add in
mass insertion. This field is blank if you are just viewing a record.
LOG Specifies whether the FILE logging facility is on or off.
TODEST Identifies a transient data destination (when a work area is copied)
or a dump identification (when a work area is dumped).
PASSWORD Must contain a four-character password if the file is protected.
FUNC Specifies the FILE function. When this field contains a function code,
it is executed if you press Enter. In addition to common FILE
functions, enter the following commands: BEGB, DEL, ENDB, GET,
GETU, NEXT, PREV, PUT, REL.
SUBFUNC Modifies a FUNC specification.
RETMETH Identifies the RCID field (BDAM files only).
Fields Function
ARGTYP No longer required.
SRCHTYP Specifies how RCID information is processed (KSDS files only).
MESSAGE Contains FILE messages. Also specify messages here when
FUNC=COPY or FUNC=DUMP.
RETNRCID Contains the record key of the retrieved record.
CHGELEN Specifies the number of bytes changed in the work area when
FUNC=CHGE.
RCID Identifies the record to be processed.
DATA Contains data needed to perform certain FILE functions.
SIZE Specifies the record size or the number of records to be searched.
FORMAT Specifies the format in which the record is displayed.
USE Specifies the program and structure for structured format.
LOC Specifies a location within a record.
Some fields are used only for certain tasks. The discussion of each FILE function
indicates which fields must be specified.
When a record displays, its FILE information is in the lower-right portion of the screen.
This information includes the following:
■ DSORG(data organization)
■ RECFM(record format)
■ LRECL (record length)
■ BLKSIZE (blocksize)
■ KEYPOS (key position)
■ KEYLEN (key length)
■ STRNO (string number)
Beneath the FILE information is a list of the functions you can perform, such as READ,
ADD, UPDATE, BROWSE, DELETE.
To view a VSAM record, specify the READ operation on the FILE definition.
1. Enter the following required information for all VSAM files:
FUNC= GET
RCID= key
For a KSDS file, the key is a full or generic key, depending on the optional SRCHTYP
field. Specify the key in hexadecimal or character format or a combination of both.
For an ESDS file, the key is a four-byte hexadecimal number representing the
relative byte address (RBA).
For an RRDS file, the key is a four-byte hexadecimal number representing the
relative record number.
2. Enter the following optional information for a KSDS file:
SRCHTYP= FKEQ/FKGE/GKEQ/GKGE
■ If you specify SRCHTYP=FKEQ, enter the full key in the RCID field. FILE retrieves the
specified record. This is the default.
■ If you specify SRCHTYP=FKGE, enter the full key in the RCID field. FILE retrieves the
specified record or the record with the next higher key.
■ If you specify SRCHTYP=GKEQ, enter a generic (partial) key in the RCID field. FILE
retrieves the first record whose key matches the generic key.
■ If you specify SRCHTYP=GKGE, enter a generic (partial) key in the RCID field. FILE
retrieves the first record whose key matches the generic key or the next higher key.
■ Press Enter. FILE displays the requested record.
To browse a VSAM file, specify the BROWSE operation on the FILE definition.
1. Enter the following required information for all VSAM files (or press PF4):
FUNC= BEGB
Also specify a key in the RCID field to begin to browse from a specified record.
■ For a KSDS file, this key can be a full or generic key, depending on the SRCHTYP
field.
■ For an ESDS file, you must also specify ARGTYP= RBA or ARGTYP= XRBA.
2. Enter the following optional information for a KSDS file:
SRCHTYP= FKGE/FKEQ/GKGE/GKEQ
■ If you specify SRCHTYP=FKGE, enter the full key in the RCID field. The browse
starts at the record with that key or the next higher key. This is the default.
■ If you specify SRCHTYP=FKEQ, enter the full key in the RCID field. The browse
starts at this record.
■ If you specify SRCHTYP=GKGE, enter a generic (partial) key in the RCID field.
The browse starts at the first record whose key matches the generic key or the
next higher key.
■ If you specify SRCHTYP=GKEQ, enter a generic (partial) key in the RCID field.
The browse starts at the first record whose key matches the generic key.
3. Press Enter. FILE displays the first retrieved record. The FUNC field is preset to
NEXT.
■ To view the records in ascending sequence, press Enter.
■ To view the records in descending sequence, enter FUNC=PREV, and then
repeatedly press Enter to display the records in descending sequence. Use the
PREV function only if the browse is initiated with SRCHTYP=FKEQ.
■ Use both NEXT and PREV during the same browse operation. Use PF5 to change
descending and ascending sequence.
4. Terminate the browse by pressing PF4, specifying FUNC=ENDB, or specifying one of
these functions: GET, GETU, ADD, or ADDU.
Example
To view the record with the key 'REC001' and the next record, and then to terminate the
browse, follow these steps:
1. Specify the following (or press PF4):
FUNC= BEGB
RCID= C`REC001'
To search for a data string, specify the BROWSE operation on the FILE definition.
1. Specify the following required information:
FUNC= SRCH
RCID= id of record where search should begin
DATA= data string to be located
LOC a number or the keyword ANY
If a number is entered in the LOC field, FILE looks for the data string only at the
specified location. If ANY is entered, FILE searches the entire record for the
specified data string.
2. To search more than one record, enter the number of records that you want to
search in the SIZE field.
■ If you specify SRCHTYP=FKGE, enter the full key in the RCID field. The search
starts with the specified record or the record with the next higher key. This is
the default.
■ If you specify SRCHTYP=FKEQ, enter the full key in the RCID field. The search
starts with the specified record.
■ If you specify SRCHTYP=GKEQ, enter a generic (partial) key in the RCID field.
The search starts with the first record whose key matches the generic key.
■ If you specify SRCHTYP=GKGE, enter a generic (partial) key in the RCID field.
The search starts with the first record whose key matches the generic key or
the next higher key.
4. Press Enter. If FILE finds the requested data string, it displays the record in which it
is found, starting with the requested string. The RETNRCID field displays the ID of
the record and the LOC field displays the record position at which the data was
found.
If the data is not found, the message DATA NOT FOUND opens.
Example
To scan up to ten records in the file ACCTS looking for the data string TEST in record
positions 20-23, and to begin the search with the record whose ID is NEWREC001,
specify the following:
FILEID= ACCTS
FUNC= SRCH
RCID= C`NEWREC001'
DATA= C`TEST'
LOC 00020 (or 0013 for FORMAT=D)
SIZE= 0010 (or 000A for FORMAT=D)
2. Change any portion of the record, except a KSDS key. For details, see Change Data
in the Work Area.
3. After you have made all the changes, specify the following, and then press Enter:
FUNC= PUT
SIZE= new record size
Specify the SIZE field only when changing the size of a variable length record.
4. FILE rewrites the updated record.
or
FUNC=ADDU (to use the data in the current work area)
Press Enter to get the work area to be used for the new record. FILE displays the
maximum record length in the SIZE field and ADD in the MODE field.
2. Specify the following optional information:
FUNC=CHGE
SUBFUNC=FILL
DATA=data string
Press Enter.
■ For FUNC=ADDN, the data string fills the new work area.
■ For FUNC=ADDU, the data string fills the extended portion of the work area.
3. Change the data in the work area to meet your requirements. See Change Data in
the Work Area for details.
4. To write the updated record, enter the following required information:
FUNC= PUT
RCID= record id
SIZE= record length
For a KSDS file, the record ID overlays the key portion of the record.
Note: Specify the SIZE field only when adding a variable length record. Press Enter.
FILE redisplays the new record and displays the message RECORD ADDED.
5. If you decide not to add this record, specify FUNC= REL. FILE continues to display
the record and displays the message FWA HAS BEEN RELEASED.
Example
1. Specify the following, and then press Enter:
FILEID= ACCTS
FUNC= ADDN
SUBFUNC= MASS
To copy a record from one file to a second file, specify the READ function for the first file
and the ADD function for the second file.
1. To retrieve the record you want to copy, specify the following, and then press Enter
or browse the file:
FILEID= file ID of source file
FUNC= GET
RCID= key
2. After FILE displays the record, specify the following, and then press Enter:
FILEID= file ID of destination file
FUNC= ADDU
3. Make any necessary changes, then specify the following, and press Enter:
FUNC= PUT
RCID= key
SIZE= record length
Note: Specify the SIZE field only when adding a variable length record.
FILE redisplays the record and displays the message RECORD ADDED.
Repeat Steps 1 through 3 to copy additional records.
Note: If the LRECLs of the two files differ, the LRECL of the destination file
determines the size of the record. The record will either be truncated or padded
with binary zeros to meet that length.
Example
To copy a record with the key 'REC050' from the ACCTS file to the TEST file, follow these
steps:
1. Specify the following, and then press Enter to display the record:
FILEID= ACCTS
FUNC= GET RCID= C'REC050
2. Press Enter.
To delete all records having a generic (partial) key (KSDS files only), follow these steps:
1. Specify the following:
RCID= generic key
SRCHTYP= GKEQ
ARGTYP= KEY
2. Press Enter.
Notes:
■ FILE deletes all the records whose keys match the generic key unless BACKUPTYPE
DYNAMIC is specified for the FILE definition because CICS does not permit generic
key deletion for FILE defined with this option
■ If a single record is deleted, FILE displays it with the message RECORD DELETED.
■ If you specify SRCHTYP=GKEQ, FILE displays the first record deleted. The message
field specifies the number of deleted records xxx RECORDS DELETED.
Examples
1. To delete the record NEWREC001 from the ACCTS file, specify the following, and
then press Enter:
FILEID= ACCTS
FUNC= DEL
RCID= C`NEWREC001'
2. To delete all records whose keys start with the character string NEWREC from the
ACCTS file, specify the following, and then press Enter:
FILEID= ACCTS
FUNC= DEL
SRCHTYP= GKEQ
RCID= C`NEWREC'
ARGTYP= KEY
To delete a record whose key is larger than the RCID field, perform these steps:
2. Press Enter.
2. Press Enter.
FILE deletes the record and displays the message RECORD DELETED.
3. Then enter:
PSB= PSB name
DBD= DBD name
NO= DBD entry number
Other information you enter depends on the function you want to perform.
Note: For more information about using DL/I databases, see IBM's DL/I DOS/VS
Application Programming Reference Manual or the IMS/VS Application Programming for
CICS/VS Users Manual.
TODEST=
MESSAGE= CHGLEN=
DATA= SIZE= 0000
FORMAT= D 00112233 44556677 8899AABB CCDDEEFF *0123456789ABCDEF* LOG=ON
LOC 0000 ........ ........ ........ ........ ................
STAT=
NAME=
LEVL=
POPT=
CA InterTest for CICS r8.5 KFBL=
KEY FEEDBACK
Copyright (c) 2014 CA. All rights reserved.
* *
* *
* *
* *
* *
* *
-------------------------------------------------------------------------------
1 Help 2 Format C 3 End 4 BEGB 5 6 DataType FC
7 Page bwd 8 Page fwd 9 Caps Off 10 Top 11 Bottom 12
Field Function
DATATYPE Specifies the type of data organization. For DL/I databases, it is DL.
FUNC Specifies the FILE function. When this field contains a function code, it
is executed if you press Enter. In addition to common FILE functions,
enter the following commands: DLET, GHN, GHU, GN, GNHP, GNP,
GU, ISRT, REPL.
PSB Specifies the PSB name, which you can change any time using FILE.
DBD Specifies the DBD name, which you can change any time using FILE.
NO Specifies which DBD entry to use when there is more than one DBD
with the same name in the PSB. The default is 01.
SUBFUNC Modifies a FUNC specification.
PS If the DBD is password protected, enter a four-character password.
SSA Specifies required segment search arguments. See the section SSA
Formats.
Field Function
TODEST Identifies a transient data destination (when a work area is copied) or
a dump identification (when a work area is dumped).
MESSAGE Contains FILE messages. Also specify messages here when
FUNC=COPY or FUNC=DUMP.
CHGELEN Specifies the number of bytes changed in the work area when
FUNC=CHGE.
DATA Contains data needed to perform certain FILE functions.
SIZE Specifies the size of the segment.
FORMAT Specifies the format in which the segment is displayed.
USE Specifies the program and structure for structured format.
LOG Specifies whether FILE's logging facility is on or off.
LOC Specifies a location within a segment.
Some fields are applicable only to certain functions. The discussion of each FILE function
indicates which fields must be specified.
Use the SIZE field to specify a storage area large enough to contain the segment to be
retrieved or added. If this field is blank or contains zeros, FILE uses the default value
specified in the DL1SIZE option when CA InterTest for CICS was installed. To check the
default value:
1. On a clear screen, enter VRPT.
2. Select option 02.
3. The DL1SIZE option contains the default SIZE value.
If you need to change the default value, contact the systems programmer who
maintains CA InterTest for CICS.
SSA Formats
SSA specifications follow standard DL/I conventions. Information entered in the SSA
field must conform to the following format:
segname
Indicates the segment name, from one to eight characters long. If the segment
name is less than eight characters, it must be followed by a blank.
qual
Indicates a blank, left parenthesis, (, or asterisk, *.
■ Blanks specify an unqualified SSA.
■ A left parenthesis, (, specifies a qualified SSA. If used, right
parenthesis, ), must follow the keyarg data.
■ An asterisk, *, specifies that command codes are present. In this case, either a
blank (for an unqualified SSA) or a left parenthesis (for a qualified SSA) must
follow the last command code. FILE does not validate command codes. This is
handled by DL/I.
keyname
Indicates the key name, from one to eight characters long. If it is less than eight
characters long, it must be followed by one blank.
ro
Indicates a relational operator. It can be any of the standard relational operators
used in DL/I. It must be two bytes long and must immediately follow either the last
character in the keyname (if the keyname is eight characters long), or the blank
terminating the keyname (if the keyname is less than eight characters long).
If you use a one-character sign rather than two letters to specify the relational operator
(such as = instead of EQ), you must specify a blank before or after the sign.
keyarg
Indicates the argument for the key name. Enter the keyarg as either character or
hexadecimal data, or as a combination of both, in one of the following ways:
■ C'data' for character data
■ X'data' for hexadecimal data
■ data for treated as character data
Note: If your keyarg data contains any of these special characters,
), &, |, *, or + you must use the X'data' format to enter it.
■ Create compound conditions by using & or | signs to join multiple keyname ro
keyarg specifications.
Note: If you specify more than one SSA, you must insert a blank and SSA=
before each subsequent SSA.
Examples
The two blanks are necessary, because the segment name is less than eight
characters, and an unqualified SSA is indicated.
2. The following specifications indicate a qualified SSA:
SSA= EMPLOYEE(NAMEb=bSMITH)
SSA= EMPLOYEE(NAMEbEQSMITH)
3. The following specification indicates an unqualified SSA with the command code L:
SSA= CARSb*Lb
3. Press Enter. The returned PCB information is displayed in the lower-right portion of
the FILE screen. If the call is successful, the segment also displays.
Examples
1. To retrieve the first root segment, which is 975 bytes long, specify the following,
and then press Enter:
FUNC= GU
SIZE= 975 (or 3CF for FORMAT= D)
3. To retrieve an EMPLOYEE segment, which is 100 bytes long, specify the following,
and then press Enter. (Its key is ADAMS, and its parent is a SKILL segment with a key
of ARTIST.)
FUNC= GU
SIZE= 100 (or 64 for FORMAT= D)
SSA= SKILL (SKILCODE= ARTIST) SSA=EMPLOYEE(NAME = ADAMS)
3. Press Enter. The returned PCB information is displayed in the lower-right portion of
the FILE screen. If the call is successful, the segment is also displayed. The STAT field
indicates if the call is successful. Make your changes to the displayed segment. See
the section Change Data in the Work Area for details.
4. To rewrite the updated segment, specify the following:
FUNC= REPL
5. Press Enter.
The returned PCB information is displayed.
Example
To retrieve, change, and replace a SKILL segment whose key is ARTIST and whose length
is 100 bytes, follow these steps:
1. Specify the following, and then press Enter:
FUNC= GHU
SIZE= 100 (or 64 for FORMAT= D)
SSA= SKILL (SKILCODE= ARTIST)
4. Press Enter.
3. Press Enter to display the work area for the new segment. FILE displays the
message WORK AREA OBTAINED.
4. Change the displayed segment. For details, see Change Data in the Work Area
earlier in this chapter.
5. To write the new segment, enter the following required information, and then press
Enter:
FUNC= ISRT
SSA= SSAs necessary to insert segment into proper
position in database
The returned PCB information is displayed in the lower-right portion of the screen. The
segment is added if the call is successful.
Example
To add a new 100 byte SKILL segment whose key is ENGINEER, follow these steps:
1. Specify the following, and then press Enter:
FUNC= ADDN
SIZE= 100
4. Press Enter.
Example
To copy a SKILL segment whose key is ARTIST and whose length is 100 bytes from one
database to another, follow these steps:
Note: To avoid damage to the integrity of the database, take the same precautions that
you take when you program in DL/I.
1. Enter the following required information:
FUNC= GHU, GHN, or GHNP
SIZE= size of the DL/I segment
3. Press Enter. The returned PCB information is displayed in the lower-right area of
the FILE screen. If the call is successful, the segment is also displayed. The STAT field
indicates if the call is successful.
4. To delete the retrieved segment, enter:
5. FUNC= DLET
6. Press Enter. The returned PCB information is displayed.
Example
To delete the SKILL segment whose key is ARTIST, follow these steps:
1. Specify the following:
FUNC= GHU SSA= SKILL (SKILCODE= ARTIST)
2. Press Enter.
3. Specify the following:
FUNC= DLET
4. Press Enter.
Note: For more information, see IBM's DATABASE2 Application Programming Guide for
CICS/OS/VS Users or IBM's SQL/Data System Application Programming Guide.
EXEC SQL
---------------------------------------------------------
---------------------------------------------------------
_____________________________________________________________________________
1 Help 2 CMND list 3 END 4 Large CMND 5 Log On 6 DataType FC
7 8 9 10 11 12
SQL Commands
Enter Structured Query Language (SQL) commands to perform DB2 or SQL/DS functions.
FILE accepts the following SQL commands, subject to user authorization: SELECT,
UPDATE, DELETE, INSERT, CREATE, ALTER, DROP, LABEL ON, GRANT, REVOKE, and
COMMENT ON.
Note: For more information, see the IBM DATABASE2 Application Programming Guide
for CICS/OS/VS Users or SQL/Data System Application Programming Guide.
Command Rules
1-------2-------------3---------4----------------5----------6----------7------
EMPNO | FIRSTNME | MIDINIT | LASTNAME | WORKDEPT | *PHONENO | *HIRE
--------+-------------+---------+----------------+----------+----------+-----+
7 Page bwd 8 Page fwd 9 Page 1 10 Scrl. --> 11 Scrl. <-- 12 Structure
In the previous screen, the column headings (EMPNO, FIRSTNME, MIDINIT, and so on)
represent all fields in the table. A heading preceded by an asterisk indicates that the
field contains null characters (for example, *PHONENO).
The vertical rows represent the members in the table. In this example, each member
contains information for a different employee. If all the rows cannot display on one
screen, press PF8 to page down through the table. Press PF7 to page up again.
# Rows—specifies the total number of rows in the display. FILE displays this field only if
you page down to the end of the table.
If all the columns cannot display at one time, shift the display in one of the following
ways:
■ Tab to the line that separates the displayed columns and press Enter. The position
indicated by the cursor becomes the first position on your screen.
■ Place the cursor under any character in the column heading and press Enter. The
position indicated by the cursor becomes the first position on your screen.
■ Change the value in the Loc field by entering #nn (clear any remaining numbers),
and press Enter.
Example
If you enter #10 in the Loc field, the display starts with the first character in column 10.
■ Change the value in the Loc field and press Enter.E
Example
If you enter 50 in the Loc field, the display starts with the 50th character.
■ Press PF11 to shift the display 80 characters to the left. Pressing PF10 shifts the
display back 80 characters to the right.
Example
In the previous display, the Loc field indicates that the display begins with position 1; the
Max Loc field indicates that the entire table display is 141 characters wide. To see the
remaining columns, you must scroll the display. If you tab the cursor to the line
preceding HIREDATE and press Enter, FILE displays the following screen:
7------------8---------9---------10---11-----------12------
|*HIREDATE |*JOBCODE |*EDUCLVL |*SEX |*BRTHDATE |*SALARY |
+----------+---------+---------+-----+----------+----------+
| 19790411 | 52 | 17 | M | 19530223 | 18270.00 |
| 19680829 | 55 | 18 | F | 19480319 | 29840.00 |
| 19800930 | 56 | 16 | F | 19530526 | 36170.00 |
| 19661121 | 53 | 14 | M | 19350530 | 22180.00 |
| 19791205 | 55 | 17 | M | 19540331 | 28760.00 |
| 19691030 | 52 | 15 | M | 19391112 | 19180.00 |
| 19750911 | 52 | 16 | F | 19361005 | 17250.00 |
| 19800930 | 55 | 15 | F | 19530526 | 27380.00 |
| 19490817 | 58 | 16 | M | 19250915 | 40175.00 |
| 19700815 | 55 | 16 | F | 19410515 | 29750.00 |
| 19670324 | 54 | 17 | F | 19360328 | 26250.00 |
| 19800530 | 42 | 12 | M | 19460709 | 15340.00 |
| 19720619 | 48 | 14 | M | 19361027 | 17750.00 |
| 19640912 | 43 | 12 | F | 19310421 | 15900.00 |
_______________________________________________________________________________
7 Page bwd 8 Page fwd 9 Page 1 10 Scrl. --> 11 Scrl. <-- 12 Structure
Note: The Loc field now indicates that the display begins with position 75.
To see a structured display of the data table columns, press PF12. The structured display
lists each column from the Data Table display in left-to-right column order. The
following screen shows the structured display of the columns in the previous screen.
Each row of the Structured Display gives the following information about a column on
the Data Table display:
■ Relative (left-to-right) column number
■ Name
■ Data type (such as character and integer)
■ Length
■ Data type code
■ Whether the field contains null characters
Select the starting column before redisplaying the Data Table in one of the following
ways:
■ Change the value in the LOC field to indicate a starting display position. To do this,
enter nn, clear any remaining LOC field numbers, and press PF12.
Example
If you enter 22 in the LOC field, the display starts at position 22.
■ Change the value in the LOC field to indicate a starting column number. To do this,
enter #nn, clear any remaining LOC field numbers, and press PF12.
Example
If you enter #9 in the LOC field, the display starts with the first character in column 9.
PF Keys
The PF keys perform the functions shown in the following table when you are using SQL.
PF Key Function
PF1 Help initiates the CA InterTest for CICS online Help facility.
PF2 CMND List displays a list of the last six commands entered. You can
re-execute or modify these commands.
PF3 END or Clear terminates the FILE facility.
PF4 Large CMND extends the command input area.
PF5 Log On/Off toggles between logging on/logging off when the AUDIT option
is N.
PF Key Function
PF12 Structure toggles between structured column definitions and table data
displays.
The legends next to the PF keys show as needed. For example, if the table display
contains more rows and columns than are shown on one screen, the legends next to PF7
through PF11 display. If the table display is shown on one screen, the legends for these
PF keys do not display.
If you are on the first screen and page backward (PF7), the legend changes from Page
bwd to First Page and is highlighted. Similarly, if you try to page forward past the last
row, the legend for PF8 changes from Page fwd to a highlighted Last page.
You also might be able to perform other functions depending on your security
authorization.
Use the SELECT command to display one column, many columns, or all columns in a
table. The SELECT command also lets you set conditions to determine whether or not a
column is displayed.
Example
To view all columns in a table, specify the following, and then press Enter:
FILE
Displays all of the data in the table.
Update a Column
The UPDATE command lets you update a column. Set conditions to determine when the
update should be performed.
Example
To change the WORKDEPT column for an employee, specify the following, and then
press Enter:
This command instructs FILE to change the WORKDEPT column in table DSN8130.TEMPL
for the employee whose EMPNO is 000010.
Before performing the update, you are asked to confirm the change. For details, see
Confirm Changes (see page 497) later in this chapter.
Delete a Row
Use the DELETE command to delete a row or several rows of data. Set conditions to
determine when the deletion should be performed.
Example
To delete a department from a table, specify the following, and then press Enter:
This command instructs FILE to delete from table DSN8130.TEMPL all rows in which the
WORKDEPT is D11.
Before performing the deletion, FILE displays a second screen indicating how many rows
will be deleted and asking you to confirm the deletion. Enter C to confirm the deletion
or R to cancel it. If you enter C, FILE performs the deletion and informs you that the
command was successfully executed.
Insert a Row
The INSERT command lets you insert an entire row of data. First specify the column
names, and then specify the values to insert into each column. Set conditions to
determine when the insertion should be performed.
■ Insert only one row of data at a time.
■ You must specify data for each column in the table, except for columns that contain
nulls, which are identified by asterisks.
Example
To insert employee data into a table, specify the following, and then press Enter:
FILE inserts a row into table DSN8130.TEMPL. This row contains six columns of
information for employee James S. Newman.
Before performing the insertion, FILE displays a second screen asking you to confirm or
cancel the insertion. Enter C to confirm or R to cancel the insertion.
Confirm Changes
When you instruct FILE to update a column, or delete or insert a row, FILE displays the
following screen:
---------------------------------------------------------------
_ C =Commit R =Rollback
_______________________________________________________________________________
The display format is presented as if the RCT existed as a DB2 table. This display is
similar to the information provided by the IBM-supplied DSNC DISP STAT command, but
provides more complete and easily accessed information.
The following table summarizes the differences between the CA InterTest for CICS
DSNCRCT Display and the CICS DSNC Display.
To display the RCT, enter the keyword DSNCRCT in the DB2 command area. CA InterTest
for CICS redisplays the keyword as SELECT * FROM DSNCRCT for compatibility with
other DB2 data table displays; however, SELECT command clauses are not supported
with DSNCRCT.
The CA InterTest for CICS RCT display includes 15 columns of information, requiring
three panels for display. To scroll to the next or previous panel of columns, press PF11
or PF10. To see a Structured Display of the columns, press PF12.
The following screen shows the initial RCT display showing columns 1 to 8.
1---------2------------3------------4-------5-------6---------7--------8-------
DSNC | | | 0 | 0 | 0 | 0 | 0|
POOL | DSN8CC21 | | 0 | 0 | 0 | 0 | 0|
CNTL | FILE21 | INTRTST | 0 | 0 | 0 | 0 | 0|
CORE | FILE21 | INTRTST | 0 | 0 | 0 | 0 | 0|
DB2A | ASMSQL | DEVMPL | 0 | 0 | 0 | 0 | 0|
DB2C | COBSQL | DEVMPL | 0 | 0 | 0 | 0 | 0|
DB2P | PLISQL | DEVMPL | 0 | 0 | 0 | 0 | 0|
D8CS | DSN8CC21 | | 0 | 0 | 0 | 0 | 0|
D8PP | DSN8CQ21 | | 0 | 0 | 0 | 0 | 0|
D8PS | DSN8CP21 | | 0 | 0 | 0 | 0 | 0|
D8PT | DSN8CH21 | | 0 | 0 | 0 | 0 | 0|
D8PU | DSN8CH21 | | 0 | 0 | 0 | 0 | 0|
FILE | FILE21 | INTRTST | 0 | 0 | 0 | 0 | 0|
HELP | FILE21 | INTRTST | 0 | 0 | 0 | 0 | 0|
_______________________________________________________________________________
1 Help 2 CMND list 3 END 4 Large CMND 5 Log On 6 DataType FC
7 Page bwd 8 Page fwd 9 Page 1 10 Scrl. -> 11 Scrl. <- 12 Structure
Tran ID—Lists all CICS transactions that issue SQL calls. The first two entries are system
transactions; the rest are user transactions listed in alphabetical order. The system
transactions are defined next.
■ DSNC is the command processor transaction; it does not have an associated plan.
■ POOL defines threads that are shared by some or all of the CICS transactions. These
threads are allocated to transactions only for a CICS unit of work. Consider them
short-term threads. Any RCT entry that is specified to overflow to the pool can use
them.
Calls—Indicates the number of SQL calls issued by transactions associated with this
entry.
Commits—Indicates the number of sync points issued for transactions associated with
this entry.
Aborts—Indicates the number of sync point rollbacks and abends issued for transactions
associated with this entry.
Waits—Indicates the number of times that all available threads for this entry were busy
and the associated transactions had to either wait or be diverted to the pool.
The second panel shows all the DB2 thread statistics, which are kept in the RCT. The
following screen shows a sample display of the second panel of columns.
9------------10---------------11------------12---------------13---------------
| Max Thread | Max Act Thread | High Thread | Curr Thread Lvl | Thread Subtask|
+------------+----------------+-------------+-----------------+---------------+
| 1 | 1 | 0| 0 | 1|
| 3 | 3 | 0| 0 | 0|
| 0 | 0 | 0| 0 | 0|
| 0 | 0 | 0| 0 | 0|
| 2 | 2 | 0| 0 | 0|
| 2 | 2 | 0| 0 | 0|
| 2 | 2 | 0| 0 | 0|
| 1 | 1 | 0| 0 | 0|
| 1 | 1 | 0| 0 | 0|
| 1 | 1 | 0| 0 | 0|
| 1 | 1 | 0| 0 | 0|
| 1 | 1 | 0| 0 | 0|
| 0 | 0 | 0| 0 | 0|
| 0 | 0 | 0| 0 | 0|
_______________________________________________________________________________
1 Help 2 CMND list 3 END 4 Large CMND 5 Log On 6 DataType FC
7 Page bwd 8 Page fwd 9 Page 1 10 Scrl. --> 11 Scrl. <-- 12 Structure
Max Thread—Indicates the maximum number of threads the attachment facility should
be prepared to connect for this transaction group.
Max Act Thread—Indicates the maximum number of threads the attachment facility
should allow to be connected for this transaction, group, or pool before requests must
either wait or be diverted to the pool.
Curr Thread Lvl—Indicates the current number of threads associated with this entry at
this time.
The third panel contains two columns that deal with dynamic plan selection. The
following screen shows columns 14 and 15 of the RCT display.
14-------------15--------------
|*Exit Prog Id | Dym User Area |
+--------------+---------------+
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
| | **** |
_______________________________________________________________________________
1 Help 2 CMND list 3 END 4 Large CMND 5 Log On 6 DataType FC
7 Page bwd 8 Page fwd 9 Page 1 10 Scrl. --> 11 Scrl. <-- 12 Structure
Exit Prog ID—Indicates the name of the exit program, which dynamically allocates the
plan name for transactions associated with this entry.
Dym User Area—Displays the contents of the fullword in the RCT entry reserved for
dynamic exit program use.
Note: The RCT statistics are kept on an entry basis, not on a transaction basis. This
means that all transactions in a group (sharing the same Plan ID) will have the same
statistics.
BDAM Files
The FILE transaction performs any BDAM function allowed in your CICS system.
Note: You might want to consult the IBM CICS/VS Application Programmer's Reference
Manual for information on using BDAM files. This manual helps you formulate your
requests correctly and explains the meaning of many responses you receive from FILE.
To begin processing a BDAM file, first make sure you are viewing the correct screen.
From the Auxiliary Storage Menu, select option 1 Files.
The DATATYPE= field should be set to FC. If not, press PF6 or Enter:
DATATYPE=FC
Then enter:
The other information you enter depends on the function you want to perform.
MESSAGE=
RETNRCID= CHGELEN=
RCID=
DATA= SIZE=
Field Function
DATATYPE Identifies the type of data organization. This must be FC.
FILEID Specifies the name of the BDAM file.
MODE Identifies the FILE operation, such as browse, update, add, add in
mass insertion. This field is blank if you are viewing a record.
LOG Specifies whether FILE's logging facility is on or off.
TODEST Identifies a transient data destination (when a work area is copied)
or a dump identification (when a work area is dumped).
PASSWORD Must contain a four-character password if the file is password
protected.
FUNC Specifies the FILE function. When this field contains a function code,
it is executed if you press Enter. In addition to common FILE
functions, enter the following commands: BEGB, DEL, ENDB, GET,
GETU, NEXT, PREV, PUT, REL.
SUBFUNC Modifies a FUNC specification.
RETMETH Identifies the RCID field (BDAM files only).
ARGTYP Must contain RBA or XRBA when working with ESDS files.
SRCHTYP Specifies how RCID information is processed (KSDS files only).
MESSAGE Contains FILE messages. Also specify messages here when
FUNC=COPY or FUNC=DUMP.
Field Function
RETNRCID Contains the record key of the retrieved record.
CHGELEN Specifies the number of bytes changed in the work area when
FUNC=CHGE.
RCID Identifies the record to be processed.
DATA Contains data needed to perform certain FILE functions.
SIZE Specifies the record size or the number of records to be searched.
FORMAT Specifies the format in which the record is displayed.
USE Specifies the program and structure for structured format.
LOC Specifies a location within a record.
Some fields are used only for certain tasks. The discussion of each FILE function
indicates which fields must be specified.
When a record displays, its FILE information is on the lower-right portion of the screen.
This information includes the following:
■ DSORG (data organization)
■ RECFM (record format)
■ LRECL (record length)
■ BLKSIZE (blocksize)
■ KEYPOS (key position)
■ KEYLEN (key length)
■ STRNO (string number)
Beneath this information is a list of the functions you can perform, including READ, ADD,
UPDATE, BROWSE, DELETE.
Example
To view a BDAM record that is the sixth record on track 3 in the file BDAMFIL, follow this
procedure.
1. Enter:
FILEID=BDAMFIL
FUNC=GET
RCID=X'000306'
2. Press Enter.
2. Press Enter. The first record displays and the following information is on the FILE
screen:
■ The MESSAGE= field shows the message BROWSE BEGUN
■ The MODE= field indicates BROWSE
■ The FUNC= field contains the function NEXT
3. To view the records in ascending sequence, complete the FUNC= field as shown
following, and then press Enter:
FUNC=NEXT
The information on the FILE screen reflects the function you selected.
This function is valid only for files with the browse capability. Check the lower-right
corner of the FILE screen for the properties of the file before attempting to use this
function.
1. Complete the following fields as shown next:
FUNC= SRCH
RCID= record id of first record to be searched
DATA= search argument
LOC= position in the record to search
or
LOC=ANY
■ LOC= position instructs FILE to look for the search argument only at the
specified position.
■ LOC=ANY instructs FILE to look for the search argument in the entire record.
In addition, there is an optional field:
SIZE= number of records to be searched (default=1)
2. Press Enter. If a match is found, the record displays, and the following information
is on the FILE screen:
■ The MESSAGE= field shows the message DATA HAS BEEN LOCATED.
■ The RETNRCID= field contains the returned record's identification.
■ The LOC= field contains the location of the found data.
■ If no match is found, the MESSAGE= field shows the message DATA NOT
FOUND.
Note: You can update any record that was obtained by a GET, BEGB, NEXT, or PREV
function. If you already have a record, go to Step 3.
2. Press Enter, and the following information appears on the FILE screen:
■ The MESSAGE= field shows the message RECORD OBTAINED FOR UPDATE
■ The MODE= field indicates UPDATE
■ The RETNRCID= field contains the returned record's identification
■ The SIZE= field gives the size of the data in the record (the size of the work
area)
■ The data displays, beginning with the byte indicated in the LOC= field
3. Make any necessary changes to the displayed record's data. However, the record
will not change until you perform Step 4 and rewrite the updated record. To rewrite
the updated record, complete the following fields, and then press Enter:
FUNC=PUT
RCID= record identification
Note: Before reading this section, consult the BDAM Data Sets section of the File Control
Section in the IBM CICS/VS Application Programmer's Reference Manual.
1. Complete one of the following fields:
FUNC=ADDN (to obtain a new work area)
FUNC=ADDU (to use the data in the existing work area)
■ If you enter FUNC=ADDN, the characters you type in the DATA= field are those
that will fill the work area.
■ If you enter FUNC=ADDU, the characters you type in the DATA= field will fill the
newly obtained data space (the new work area might be larger than the
present one for a variable-length file).
2. Press Enter. The following information displays on the FILE screen:
■ The MESSAGE= field shows the message WORK AREA OBTAINED.
■ The MODE= field indicates ADD.
■ The SIZE= field gives the size of the work area (the size is the maximum
permitted for this particular file).
■ The obtained work area displays, beginning with the byte indicated in the LOC=
field.
3. Make any necessary changes to the newly obtained work area.
4. To write the newly added record, complete the following fields as follows:
FUNC=PUT
RCID= record identification
Temporary Storage
The FILE transaction performs any temporary storage function allowed in your CICS
system.
To begin processing temporary storage, first make sure you are viewing the correct
screen. From the Auxiliary Storage Menu, select option 5 TS Queues. The DATATYPE=
field should be set for TS. If not, press PF6 or enter:
DATATYPE=TS
The other information you enter depends on the function you want to perform.
RCID= CHGELEN=
DATA= SIZE=0000
-------------------------------------------------------------------------------
Field Function
DATATYPE Identifies the type of data organization. This must be TS.
LOG Specifies whether FILE's logging facility is on or off.
TODEST Identifies a transient data destination (when a work area is copied) or
a dump identification (when a work area is dumped).
FUNC Specifies the FILE function. When this field contains a function code, it
is executed if you press Enter. In addition to common FILE functions,
enter the following commands: GET, GETQ, PURG, PUT, PUTQ, REL.
SUBFUNC Modifies a FUNC specification.
STORFAC When writing a record (FUNC=PUT or PUTQ), specifies the type of
storage: AUX (auxiliary) or MAIN.
ENTRY Specifies the relative position of a record in a temporary storage
queue. Required for FUNC=GETQ, PUTQ, and SRCH.
MESSAGE Contains FILE messages. Also specify messages here when
FUNC=COPY or FUNC=DUMP.
Field Function
CHGELEN Specifies the number of bytes changed in the work area when
FUNC=CHGE.
RCID Identifies the record or queue to be processed.
DATA Contains data needed to perform certain FILE functions.
SIZE Specifies the record size or the number of records to be searched.
FORMAT Specifies the format in which the record is displayed.
USE Specifies the program and structure for structured format.
LOC Specifies a location within a record.
Some fields are used only for certain tasks. The discussion of each FILE function
indicates which fields must be specified.
2. Press Enter. The record's data is displayed on the FILE screen with the following
information:
■ The MESSAGE= field shows the message TS QUEUE RECORD RETRIEVED.
■ The SIZE= field gives the size of the retrieved record's data.
■ If you enter FUNC=ADDN, the characters you type in the DATA= field will fill the
work area.
■ If you enter FUNC=ADDU, the characters you type in the DATA= field will fill the
newly obtained data space (if the new work area is larger than the present
one).
2. Press Enter. The following information displays on the FILE screen:
■ The MESSAGE= field shows the message WORK AREA OBTAINED.
■ The SIZE= field gives the size of the work area (the size will be the maximum
permitted).
■ The obtained work area is displayed, beginning with the byte indicated in the
LOC= field.
3. Make any necessary changes to the newly obtained work area.
or
STORFAC=MAIN
■ Use STORFAC=AUX to place the record on a direct access storage device. This is
the default.
■ Use STORFAC=MAIN to place the record in main storage.
5. Press Enter. The following information displays on the FILE screen:
■ Without SUBFUNC=REPL, the MESSAGE= field shows the message TS QUEUE
RECORD WRITTEN.
■ With SUBFUNC=REPL, the MESSAGE= field shows the message TS QUEUE
RECORD WRITTEN AND REPLACED.
■ The SIZE= field gives the size of the work area.
■ The work area displays, beginning with the byte indicated in the LOC=field.
Examples
You want to add a new 100-byte record to a temporary storage queue called
TEMPSTO1, which resides in auxiliary storage. This record is to be the last record in the
queue.
FUNC=ADDN
RCID=C'TEMPSTO1'
SIZE= 100 or 64 (for FORMAT=D)
FUNC=PUTQ
RCID=C'TEMPSTO1'
FUNC=ADDU
FUNC=PUTQ
ENTRY=05
RCID=C'TEMPSTO2'
SUBFUNC=REPL
SIZE= 100 or 64 (for FORMAT=D)
STORFAC=MAIN
Follow this procedure to search a temporary storage queue for a data string.
1. Complete the following fields:
FUNC=SRCH
ENTRY= relative record position to start search
RCID= temporary storage queue identification
DATA= search argument
LOC= position in record to search for the data string
or
LOC=ANY (to search the entire record for the data string)
2. Press Enter. If a match is found, the record containing the data displays, starting at
the location where the data was found. The following information also appears on
the FILE screen:
■ The MESSAGE= field shows the message DATA HAS BEEN LOCATED.
■ If no match is found, the MESSAGE= field shows the message DATA NOT
FOUND.
■ The ENTRY= field contains the returned record's relative position in the queue.
■ The LOC= field contains the location of the found data.
Example
To scan ten records in the temporary storage queue named TEMPSTO1 starting at the
third record for the data string TEST, if that data is in location 20 in the record, specify
the following, and then press Enter:
FUNC=SRCH
ENTRY=03
RCID=C'TEMPSTO1'
DATA=C'TEST'
LOC=00020 OR 0013 (for FORMAT=D)
SIZE=0010 OR 000A (for FORMAT=D)
Transient Data
The FILE transaction performs any transient data function allowed in your CICS system.
To begin processing transient data, first make sure you are viewing the correct screen.
From the Auxiliary Storage Menu, select option 5 TD Queues. The DATATYPE= field
should be set at TD. If not, press PF6 or Enter:
DATATYPE=TD
The other information you enter depends on the function you want to perform.
MESSAGE= CHGELEN=
DATA= SIZE=0000
FORMAT= D 00112233 44556677 8899AABB CCDDEEFF *0123456789ABCDEF*
LOC 0000 ........ ........ ........ ........ ................
------------------------------------------------------------------------------
1 Help 2 Format C 3 End 4 5 6 DataType FC
7 Page bwd 8 Page fwd 9 Caps Off 10 Top 11 Bottom 12
Field Function
DATATYPE Identifies the type of data organization. This must be TD.
DESTID Specifies the name of the transient data, as defined in the DCT.
LOG Specifies whether FILE's logging facility is on or off.
TODEST Identifies a transient data destination (when a work area is copied)
or a dump identification (when a work area is dumped).
Field Function
FUNC Specifies the FILE function. When this field contains a function code,
it is executed if you press Enter. In addition to common FILE
functions, enter the following commands: GET, PUT.
SUBFUNC Modifies a FUNC specification.
MESSAGE Contains FILE messages. Also specify messages here when
FUNC=COPY or FUNC=DUMP.
CHGELEN Specifies the number of bytes changed in the work area when
FUNC=CHGE.
RCID Identifies the record or queue to be processed.
DATA Contains data needed to perform certain FILE functions.
SIZE Specifies the record size or the number of records to be searched.
FORMAT Specifies the format in which the record is displayed.
USE Specifies the program and structure for structured format.
LOC Specifies a location within a record.
Some fields are used only for certain tasks. The discussion of each FILE function
indicates which fields must be specified.
Note: If you are running CTS Version 1.3 and higher, 16-byte and 32-hexadecimal
character TS queue names are supported.
Note: When you retrieve a record from an intrapartition transient data destination, the
retrieved record disappears from that queue.
1. To retrieve a transient data record, complete the following fields:
FUNC=GET
DESTID= transient data destination
You are advised to enter the DESTID= field before entering the FUNC= field when
you begin working with a particular destination. If only the DESTID= is entered, the
properties of the transient data queue are shown for your verification. This can, for
example, help you avoid entering a FUNC=GET for an extrapartition destination that
is now open for output.
2. Press Enter. The record you are retrieving opens on the FILE screen. The following
information also displays:
■ The MESSAGE= field shows the message TD RECORD OBTAINED.
■ The SIZE= field gives the length of the data.
or
FUNC=ADDU (to use the data in the existing work area)
SIZE= size of the data area Note: The SIZE cannot be higher than permitted for
the destination.
■ If you enter FUNC=ADDN, the characters you type in the DATA= field will fill the
work area.
■ If you enter FUNC=ADDU, the characters you type in the DATA= field will fill the
newly obtained data space (if the new work area is larger than the present
one).
You are advised to enter the DESTID= field before entering the FUNC= field when
you begin working with a particular destination. If only the DESTID= is entered, the
properties of the transient data queue are shown for your verification. This can, for
example, help you avoid entering a FUNC=ADDU for an extrapartition destination
that is now open for input.
4. Press Enter.
The MESSAGE= field on the FILE screen shows the message TD RECORD WRITTEN.
Examples
To add a new 100-byte record (with most of its fields blank) to the transient data
destination CSSL:
FUNC=ADDN
DESTID=CSSL
DATA=C' '
SIZE= 100 or 64 (for FORMAT=D)
FUNC=PUT
DESTID=CSSL
To add another new record to the transient data destination in Example 1, using the
work area from Example 1:
FUNC=ADDU
FUNC=PUT
DESTID=CSSL
You are advised to enter the DESTID= field before entering the FUNC= field when
you begin working with a particular destination. If only the DESTID= is entered, the
properties of the transient data queue are shown for your verification. This can, for
example, help you avoid entering a FUNC=PURG for an extrapartition destination.
2. Press Enter. This purges the data. The MESSAGE= field on the FILE screen displays
the message DESTINATION PURGED.
Preliminary Steps
Before you can monitor a DB2 or SQL/DS program, make sure that the following tasks
have been completed:
1. CA InterTest for CICS was installed with DB2 or SQL/DS support.
2. The application program was compiled or assembled with symbolic support.
3. The CICS/DB2 attach facility (z/OS) or SQL/DS Resource Adapter is active.
To ensure that DB2 or SQL/DS support was installed, follow these steps:
1. Access the Request Breakpoint Selection menu. This menu is displayed when you
select the Request option from a Monitoring program, such as Monitoring Programs
(2.1), Monitoring Transactions (2.2), or Monitoring Terminals (2.3). The chapter
"Using Breakpoints" describes how to access this menu.
Chapter 12: Using CA InterTest for CICS with DB2 and SQL/DS Programs 523
Preliminary Steps
2. Inspect the first input line on the menu. If it contains either of the following, DB2 or
SQL/DS support was installed. If the DB2 or SQL/DS field is missing, support is not
installed.DB2 or SQL/DS support was installed. If the DB2 or SQL/DS field is missing,
support is not installed.
_ ALL commands _ All macros _ DL/I _ DB2 _ CALLS
_ ALL commands _ All macros _ DL/I _ SQL/DS _ CALLS
If you monitor DB2 or SQL/DS programs without the appropriate CA InterTest for
CICS support, your programs are halted at an automatic breakpoint each time the
program issues a DB2 or SQL/DS call. If necessary, contact your system programmer
and request DB2 or SQL/DS support.
Note: The Installation Guide explains how to install this support.
If the attach facility is active, CA InterTest for CICS displays the following message:
CAIN1701
If the attach facility is not active, CA InterTest for CICS displays the following message:
CAIN1712
ARI0401I
If the Resource Adapter is not active when SQL/DS is in multipartition mode, the
following messages display:
ARI0418A
SQL/DS IS NOT READY. RETRY THE ENABLE TRANSACTION CIRB AFTER SQL/DS STARTS.
ARI0413I
If the Resource Adapter is active in the non-CICS partition but not yet active in the CICS
partition, the following messages display:
ARI407E
ARI407E
ARI413I
Chapter 12: Using CA InterTest for CICS with DB2 and SQL/DS Programs 525
Halt Programs Before and After Each SQL Request
If the attach facility or Resource Adapter is not active and you execute a DB2 or SQL/DS
program, the transaction fails with an AEY9 abend code. If you are monitoring the
program with CA InterTest for CICS and you do not have a Handle Condition for this
error, your program is halted at an automatic breakpoint at a call to DB2 (CALL 'DSHNLI')
or SQL/DS (CALL 'ARIPRDI'). In this case, follow these steps:
1. Call your system programmer or console operator and request that the CICS/DB2
attach facility or SQL/DS Resource Adapter be started.
2. Continue program execution by re-executing the call. In COBOL, this means paging
back to the statement prior to the call:
PERFORM SQL-INITIAL UNTIL SQL-INIT-DONE
This instructs CA InterTest for CICS to set a breakpoint prior to each application call to
DB2 or SQL/DS.
■ For DB2, this occurs at the call to DSNHLI.
■ For SQL/DS, this occurs at the call to ARIPRDI.
When the program halts at the request breakpoint, you can inspect the values of fields.
For details, see Inspect Host Variables (see page 527) later in this chapter.
When the program is halted after the call, you can inspect the values of fields again and
analyze the SQL return codes.
EXEC SQL
SELECT column names
INTO host variables
FROM table name
WHERE column names/host variables
END-EXEC
Example:
■ The INTO clause of the SELECT statement specifies host variables.
■ The WHERE clause of the SELECT statement uses host variables to qualify the
request for data.
Chapter 12: Using CA InterTest for CICS with DB2 and SQL/DS Programs 527
SQL Return Codes
Notes:
■ When your program is halted at a breakpoint before an SQL request, check the null
indicators and host variables used in the WHERE clause
■ When your program is halted after an SQL request, check the host variables
specified in the INTO clause
01 DCLEMP | |
02 EMPNO | F0F0F0F0 F1F0 | 000010
02 FIRSTNME | |
03 FIRSTNMELEN | 0009 | ..
03 FIRSTNMETEXT | C3C8D9C9 E2E3C9D5 C5000000 | CHRISTINE..
02 MIDINIT | C1 | A
02 LASTNAME | |
03 LASTNAMELEN | 0004 | ..
03 LASTNAMETEXT | C8C1C1E2 00000000 00000000 | HAAS.......
| 000000 | ...
02 WORKDEPT | C1F0F0 | A00
02 PHONENO | F3F9F7F8 | 3978
02 HIREDATE | F1F9F6F5 60F0F160 F0F1 | 19650101
02 JOB | D7D9C5E2 40404040 | PRES
02 EDLEVEL | 0012 | ..
02 SEX | C6 | F
If you use the DCLGEN function to generate DB2 table declarations, the COBOL 01-level
field name is a concatenation of the characters DCL and the table name, as shown in the
previous example.
Note:The IBM manual DB2 Application Programmer Guide provides information on the
SQLCA.
When DB2 or SQL/DS processes an SQL statement, it places a return code in the
SQLCODE field of the SQLCA that indicates the success or failure of the SQL request:
■ If the return code is zero, the SQL request was processed. DB2 or SQL/DS did not
detect an error or an exceptional condition.
■ If the return code is a negative number, DB2 or SQL/DS detected an error.
■ If the return code is a positive number, DB2 or SQL/DS detected an exceptional but
valid condition.
Note: Sometimes a zero return code does not indicate a successful execution. You
should always check the SQLWARN field to ensure that it is blank, which indicates
successful execution. If the field is not blank, a warning condition exists. Check the other
warning indicators to determine the specific condition.
Example
If a value was truncated the SQLCODE will be zero, but the SQLWARN1 field indicates
truncation.
Because the SQLCA contains valuable diagnostic information, it is a good idea to check
its contents after each SQL request.
Checking the SQLCODE immediately tells you which request produced the error so you
can create an error message reflecting that request. However, this method might not be
efficient if you have many similar routines throughout your program—one for each SQL
request. Moreover, if you discover a logic error in such an error handling routine, you
must correct the error in all the routines throughout the program.
Users who want to check the SQLCODE field in the SQLCA after each SQL request should
set unconditional breakpoints at each occurrence of SQLCODE. The chapter "Using
Breakpoints" explains how to set breakpoints at each occurrence of a data field. Your
program must be compiled or assembled symbolically with the option to produce a
Cross-Reference listing.
Chapter 12: Using CA InterTest for CICS with DB2 and SQL/DS Programs 529
SQL Return Codes
Users who branch to a common error handling routine should set request breakpoints
at all DB2 or SQL/DS calls and then single-step through the breakpoint, as described in
the section Halt Programs Before and After Each SQL Request. This technique does not
require that programs be compiled or assembled symbolically.
In either case, keep SQLCODE in the Keep window so its value can be checked easily. The
Keep window is described in the chapter "Breakpoint Activities."
Once your program halts at a breakpoint, the Keep window displays the hexadecimal
contents of SQLCODE. To display the SQL return code in decimal format, follow these
steps:
1. Type D to the left of SQLCODE in the Keep window.
2. Press Enter.
If you have not kept SQLCODE in the Keep window, follow these steps:
1. Type D to the left of the statement where you are stopped.
2. Position the cursor under the data field SQLCODE.
3. Press Enter.
CA InterTest for CICS displays a CORE structured display of SQLCODE and the following
message:
nnn
Indicates the SQL return code.
DB2 and SQL/DS return codes can have many meanings and subcodes. The DB2
Messages and Codes manual explains the return codes.
z/OS users can convert this value into a text message by overkeying the
CORE='SQLCODE' command at the bottom of the SQLCODE display with the following
command and pressing Enter:
CORE=SQLRCODE
z/OS users can access the SQLCODE text message display from the breakpoint screen by
entering CORE=SQLRCODE on the command line, if the command line displays.
CA InterTest for CICS converts the decimal value to a text message. In addition, if there
are any warning codes in the SQLCA, CA InterTest for CICS displays each of them along
with its meaning. The following is a sample SQLRCODE display.
-------------------------------------------------------------------------
DB2 messages often contain tokens that are replaced at execution time. The message in
the previous example the token name is replaced by the actual name that is
undefined—in this case, ADM.DEPT.
Without CA InterTest for CICS, tokens are often hard to interpret. They are returned in
the SQLERRM field of the SQLCA, and if there are multiple tokens, appear sequentially in
the order in which they appear in the message text, separated by X'FF'. CA InterTest for
CICS inserts tokens in the correct places in the message text, as shown in the previous
figure, which makes the DB2 messages much easier to understand.
To view all the fields in the SQLCA after an SQL request, overtype the CORE command at
the bottom of the display with one of the following, and press PF12:
n
Indicates the register used to reference the SQLCA.
Chapter 12: Using CA InterTest for CICS with DB2 and SQL/DS Programs 531
Advanced Debugging Techniques
CA InterTest for CICS displays all the fields in the SQLCA in structured format as defined
in the program.
For z/OS, another method for viewing the SQLCA fields is to type the following
command and press PF12:
CORE=SQLCA
CA InterTest for CICS displays the SQLCA fields using Assembler language field names.
Both methods should produce the same results, but the second method is available for
programs not compiled or assembled symbolically.
To halt a program before selected DB2 or SQL/DS calls, use the CA InterTest for CICS
request breakpoint capability, and follow these steps:
1. Access the Request Breakpoint Selection menu, as explained in the chapter "Using
Breakpoints."
2. Enter X to the left of the CALLs field at the top of the menu. Press Enter.
CA InterTest for CICS displays the Request Breakpoint Selection menu for calls.
For DB2 this menu contains three relevant entries, as shown in the previous panel:
DSNHLI—The call generated for all SQL application requests. To halt the program at
these calls, set request breakpoints at all DB2 calls on the first Request Breakpoint
Selection menu as described in Halt Programs Before and After Each SQL Request (see
page 526) earlier in this chapter.
DSNHADDR—The call made to the SQL-INITIAL routine that is inserted by the DB2
preprocessor in the COBOL Procedure Division to initialize the parameter lists needed
for an SQL call.
Chapter 12: Using CA InterTest for CICS with DB2 and SQL/DS Programs 533
DSNC Abends (z/OS Only)
DSNTIAR—The call made to the IBM-provided DB2 subroutine that converts an SQL
return code to a text message. The subroutine is approximately 32 KB in size and must
be statically linked with your program. According to IBM, calling DSNTIAR dynamically
from a CICS application program causes problems because of the GETMAINs issued by
DSNTIAR.
Unless your application program needs the SQL return code text message, there is no
need to set breakpoints at DSNTIAR calls. Instead, use the SQLRCODE command
explained in the Handle SQL Return Codes section earlier in this chapter.
In the first case described previously, you cannot handle the DSNC abend in your
program's EXEC HANDLE ABEND routine because control does not come back to it. EDF
captures the DSNC abend, but its halt screen provides little useful information.
CA InterTest for CICS intercepts a DSNC transaction abend and produces an automatic
breakpoint, as follows.
01414*****ENDEXEC.
01415 PERFORM SQLINITIAL UNTIL SQLINITDONE
A ==> CALL 'DSNHLI' USING SQLPLIST6.
==>
==> CICS abend intercepted. Abend code = DSNC, after an external CALL.
==>
==> Press PF1 for a detailed description.
==>
01417
01418
_ 01419 IF SQLCODE = 530
_ 01420 MOVE 'INVALID WORK DEPARTMENT ' TO ERRMSGO
_ 01421 MOVE 1 TO WDEPTL
_ 01422 MOVE DFHBMBRY TO WDEPTA
_ 01423 GO TO SENDRTN.
01424
If CICS terminated the transaction, you cannot continue processing it because the
registers were destroyed.
CA InterTest for CICS provides several CORE commands to help you determine the cause
of the problem online without waiting for the DB2 SNAP dump.
To display the CLOT, type the following command and press PF12:
CORE=CLOT
Next, the DB2 Problem Determination Guide recommends that you inspect the
CLOTCFLG field. You can page forward to display this field or type the following
command and press PF12:
CORE=CLOT.CLOTCFLG
Chapter 12: Using CA InterTest for CICS with DB2 and SQL/DS Programs 535
DSNC Abends (z/OS Only)
X'00ccxxxx'
X'00'
Specifies the high-order byte
X'cc'
Specifies the hexadecimal sub-component identifier
X'xxxx'
Specifies the hexadecimal reason code
To display this information on a single diagnostic screen, type the following command
and press Enter:
CORE=SQLRCODE
Refer to the IBM DATABASE 2 Messages and Codes, Part 4. Reason Codes,
for detailed information.
-----------------------------------------------------------------------
PFKEYS 1 Help 2 3 End 4 Return 5 6
7 8 9 10 11 12
CORE=SQLRCODE
Note: For an explanation of the codes, see the DB2 Messages and Codes manual.
CORE=RDIIN
Note: For more information about DSNCRCT, see the CICS Resource Definition Guide.
The RCT or DB2 attachment facility contains the information required for CICS to
establish its connection to DB2. The FILE transaction's DB2 facility lets you view
information and statistics on each entry in the active RCT. The display format is
presented as if the RCT existed as a DB2 table. This display is similar to the information
provided by the IBM-supplied DSNC DISP STAT command, providing complete and easily
accessed information.
To display the RCT, type the keyword DSNCRCT in the DB2 command area.
Versions and releases of CICS from the CICS transaction server for OS/390, Version 1
Release 3 onwards do not support running the CICS DB2 attachment facility using the
RCT. Therefore, CA InterTest for CICS no longer supports the CORE=RCT command and
produces the following message:
CAIN0479
Chapter 12: Using CA InterTest for CICS with DB2 and SQL/DS Programs 537
Chapter 13: Analyzing Dumps Symbolically:
CA SymDump for CICS Option
Ideally, you might use CA InterTest for CICS to monitor every program and catch every
error. However, in real world situations, that is not possible, due to the overhead
involved or because you may not want to monitor security programs or programs using
non-standard code.
Consequently, although CA InterTest for CICS greatly reduces the number of dumps,
dumps will still occur, especially in production. Even a thoroughly debugged program
can abend because of bad data, scheduling errors, invalid parameters, and many other
factors beyond programmer control.
CA SymDump for CICS Option, which stands for symbolic dump facility, is a powerful
online tool designed to handle dumps. It lets you do the following tasks:
■ Analyze dumps symbolically, this is especially valuable for shooting bugs in your
production system where you might not want CA InterTest for CICS breakpoint
displays
■ Manage your dump data set so you can selectively retain, view, and print the
dumps you need, and discard the ones you do not need
Chapter 13: Analyzing Dumps Symbolically: CA SymDump for CICS Option 539
Manage Dumps
You can use CA SymDump Option in any region—regardless of where the abend
occurred. For example, you can debug a production dump in your test region.
Consequently, it is not necessary to run CA InterTest for CICS in production to take
advantage of CA SymDump Option. You can even debug a dump produced in a remote
data center at another site.
You can instruct CA SymDump Option to refer to the symbolics you want, if multiple
symbolic versions of the program exist. This is especially helpful if there are many
versions of a particular program. Even if CA InterTest for CICS does not have symbolic
information for the program, CA SymDump Option still provides a formatted display of
the CICS system areas, with hexadecimal and character representations of each field so
you can debug with or without symbolics.
Manage Dumps
CA SymDump Option also lets you control which CICS dumps to save, discard, and print.
It has its own dump data set, which is separate from the CICS dump data set. You can
even route dumps to both data sets. It is easy to manage the CA SymDump Option data
set because you can do the following tasks:
■ List all dumps. You will know immediately when each dump was created and which
transaction and program produced it. You can quickly select the dumps you want to
view online.
■ Delete specific dumps. You can delete the dumps you do not want and keep the
ones you need. As a result, you avoid those situations where CICS stops writing
dumps because the dump data set is filled.
■ Hold specific dumps. You can specify which dumps you want to retain for future
use.
■ Print specific dumps. It is no longer necessary to print the entire dump data set to
get printouts of selected dumps. You can even print an index of all the dumps in the
dump data set.
How CA SymDump Option Works with Your CICS Dump Data Set
CA SymDump Option contains only application dumps; system dumps are still written to
your CICS dump data set. When the CA SymDump Option is installed, your system
programmers can specify which dumps they do not want written to either the CA
SymDump Option or the CICS dump data set to save DASD space. For example, they can
exclude all AKCT abends.
CA InterTest for CICS automatically deletes old dumps from the CA SymDump Option
data set when space is needed for new ones. However, you determine how frequently
dumps are deleted. You can also specify that certain dumps be held so they are not
deleted. If the CA SymDump Option data set becomes full (that is, full of dumps that
cannot be deleted), new dumps are written to your CICS dump data set instead of to the
CA SymDump Option data set.
Note: For detailed instructions on how to use CA SymDump Option, use the Help facility
or the CA SymDump Option User Guide.
Chapter 13: Analyzing Dumps Symbolically: CA SymDump for CICS Option 541
Appendix A: Printing the Help File
The CA InterTest for CICS Help file contains extensive tutorial information that is
available to you online by entering HELP or pressing PF1 from any CA InterTest for CICS
screen. It has a browse capability from any point of access.
//PRINHELP JOB....
//STEP1 EXEC PGM=IN25PRIH,REGION=256K
//STEPLIB DD DSN=YOUR.INTRTST.LOADLIB,DISP=SHR
//PROTHLF DD DSN=INTRTSTV.PROTHLF,DISP=SHR
//OUTPUT DD SYSOUT=A
//
Unconditional Breakpoint
The following panel shows a sample non-symbolic breakpoint screen for an
unconditional breakpoint:
CNTL=GO,TASK=00063,C at +00BB0 pgm=COBDEMO ,addr=24510BD0
UBP: F=U056,T=U056 Unconditional breakpoint.
Mon.as COBDEMO Pgm COBDEMO Trx DEMC Fac U056 Trm in.....out
Task 00063 at +00BB0 TIOA none +00A90 +00B16
DSA 23708B88 TGT 23709D60 CWK 2370A058 +00B06 +00B16
BLLS: 0 001000D0 1 00000000 2 00001000 3 00002000 00002 times
4 00003000 5 00004000 6 00000000 7 00000000 +00B06 +00B24
8 00000000 9 00000000 +00B36 +00BA4
+00BA8 curr.
NEXT MVC X'B0'(4,R8),8(R7) AT +00BB0
PREV OI X'84'(RD),X'01' AT +00BAC
Press ENTER to execute the default command on line 1,
OVERTYPE it, or use any of the following PF KEYS:
1 Help 2 3 Source 4 5 Resume 6 Menu
7 8 9 1 Inst 10 11 Backtrace 12 Status
Addr and content of relevant area:
23708C0C 21 †
Default CNTL command and location information. For an automatic breakpoint, the
default command abends the task. For all other breakpoints, the default is to
continue task execution. The command can be modified or overtyped with any
other CA InterTest for CICS command.
Displacement of the instruction about to be executed follows the command on the
top line.
Name of the program that was stopped by CA InterTest for CICS follows the
displacement.
Address of the instruction that triggered the breakpoint.
Note: CA InterTest for CICS stopped the program before this instruction was
executed.
Type of breakpoint: automatic (ABP), unconditional (UBP), conditional (CBP),
request (RBP), or single-stepping (SBP). In most cases, there is a one or two line
message explaining exactly why the breakpoint occurred.
Name of the monitoring table entry.
Program name (Pgm), transaction code (Trx), and CICS facility (Fac) associated with
the task; in this case, terminal (Trm) U056.
Task number and displacement of the instruction about to be executed.
Address of the first TIOA on the chain of such areas allocated to the task. To display
the area, issue the command CORE=TIOA.
Addresses of the areas containing the copy of COBOL DSA, TGT, Working-Storage,
and Local-Storage for this task. If the program does not contain a DSA or
Local-Storage, the fields are left blank. To display the area, issue the appropriate
CORE command (for example, CORE=CWK).
COBOL BLL cells or general registers 0-15 for Assembler or PL/I programs.
Backtrace of the starting (IN) and ending (OUT) displacements or addresses of the
most recently executed pieces of code. Every break in the sequential execution of
the program results in a new entry. A loop counter tells how many times the piece
of code above it was executed. The entry curr. stands for current location.
Machine code and offset (or absolute address) of the instruction that triggered the
breakpoint.
Machine code and offset (or absolute address) of the last instruction executed.
Program function keys for immediate access to CA InterTest for CICS facilities.
Address and representation (in both character and hexadecimal form) of the area of
main storage that would have been modified by the next instruction.
Automatic Breakpoint
The following panel shows a non-symbolic breakpoint screen for an automatic
breakpoint:
Mon.as PL1DEMO Pgm PL1DEMO Trx DEMP Fac U056 Trm in.....out
Default CNTL command and location information. For an automatic breakpoint, the
default command abends the task. For all other breakpoints, the default is to
continue task execution. The command can be modified or overtyped with any
other CA InterTest for CICS command.
Displacement of the instruction about to be executed follows the command on the
top line.
Name of the program that was stopped by CA InterTest for CICS follows the
displacement.
Address of the instruction that triggered the breakpoint.
Note: CA InterTest for CICS stopped the program before this instruction was
executed.
Type of breakpoint: automatic (ABP), unconditional (UBP), conditional (CBP),
request (RBP), or single-stepping (SBP). In most cases, there is a one or two line
message explaining exactly why the breakpoint occurred.
Name of the monitoring table entry that caused the current monitoring to be in
effect.
Task number and displacement of the instruction about to be executed.
Program name (Pgm), transaction code (Trx), and CICS facility (Fac) associated with
the task; in this case, terminal (Trm) U056.
COBOL BLL cells or general registers 0-15 for Assembler or PL/I programs.
Condition Code. The value of the condition code is the value that was saved when
the breakpoint occurred.
Next and previous instructions. This line indicates the next instruction to execute
and the instruction that was executed previously.
Address and representation (in both character and hexadecimal form) of the area of
main storage that would have been modified by the next instruction.
Backtrace. Each pair of entries describes the boundaries of a piece of the program
that executed sequentially.
CNTL=GO,TASK=00077,A
You can enter any appropriate CA InterTest for CICS command in this field. To modify
this command, overtype it.
Location Information
In the previous screen, the following location information is displayed:
This tells you that a program named PL1DEMO is stopped at displacement 7A4. This is
the displacement of the instruction that is about to be executed (check the program's
listing to identify the instruction).
■ The letters ABP indicate automatic breakpoint, and the number 37 is the error
code.
■ The remainder of the line explains what the error code means. In this case, a data
exception interrupt was set in motion by the monitored program. Ordinarily, this
would cause a CICS abend with the code ASRA, but CA InterTest for CICS averted
the abend with this breakpoint.
Examples
The following message indicates that an unconditional breakpoint (UBP) with the
identification 02 occurred because the user requested it at the COBOL paragraph named
999-Abend.
The following message indicates that an unconditional breakpoint with the identification
07 was requested by the user at the second verb of COBOL statement number 374. The
following is another version of the previous message:
F=.ANY
Means that the user requested an unconditional breakpoint to occur on any
terminal (or for a task that has no terminal). The parameter T=V015 means that the
breakpoint display will be sent to terminal V015.
If the user set a request breakpoint (RBP), a message similar to the following one
appears:
If the user requests a programmed breakpoint (PBP), the following message appears:
Mon.as PL1DEMO
This tells you that the program is being monitored under (MONitored AS) the entry
declared explicitly for the program named PL1DEMO. It is important to know the
Monitoring Table entry because the available online options are attached to that entry.
Note: As the tested task continues execution, part of it might be monitored under one
Monitoring Table entry and part under another entry, depending on how you
formulated the request.
Examples
If you were to request that this program be monitored only when it is run from a
particular terminal, or if the online TON= option were declared, the following message
would appear:
In this case, monitoring only takes place when the program named PL1DEMO is
executed from the terminal named U056.
If the program was declared for monitoring under a transaction name (implicitly) rather
than its program name, the following message would appear, indicating that the entry
in the Monitoring Table is transaction (TRX), DEMP.
If the program was declared for monitoring under a terminal name (implicitly), the
following message would appear, indicating that the entry in the Monitoring Table is
terminal (TRM), U056.
■ This tells you that the name of the program being monitored is PL1DEMO, that the
transaction (Trx) is executing a program named DEMP, and that the CICS facility
that generated this task is the terminal (Trm) named U056.
■ For tasks created automatically by the trigger-level facility of a transient data, the
FAC field names the Destination Control Table (DCT) entry.
Example
■ The parameter 00077 indicates the number of the task that was put into the
breakpoint state by CA InterTest for CICS.
■ The parameter at +007A4 repeats the address of the instruction that is about to be
executed.
■ The parameter TIOA None gives the address of the first terminal Storage Area (the
Terminal Input/Output Area) on the chain of areas allocated for the task at
breakpoint. You can display the first TIOA by issuing the command CORE=TIOA.
The monitored program might be using a different number of BLL cells, but all can be
displayed by issuing the proper CORE command. This can best be done using the
symbolic names of the BLL cells.
Example
The BLL cell with the relative number 1, which in command level programs contains the
address of the DFHCOMMAREA, shows the null value.
General Registers
For Assembler or PL/I programs, this area displays the contents of registers 0 to 15. The
following example shows the 16 consecutive fullwords that CA InterTest for CICS used to
save registers 0 to 15 at the time of the breakpoint.
Example
Register 0 contains the value of -3856, and registers 11 and 15 contain the null value.
Condition Code
The condition code appears to the right of the last line of the REGS: display, and is
identified by the letters CC. The value of the condition code is the value that was saved
at the time of breakpoint. For an interpretation of the condition code, consult the IBM
System/370 Reference Card. In the previous example, the condition code is 0.
■ In the field marked Next, the Assembler instruction that was scheduled to be
executed next when the breakpoint occurred is displayed. In this example, the
instruction is a ZAP. The first operand is located at displacement A28 from the value
in register D for a length of 4, while the second operand is located at displacement
2F1 from the value in register D for a length of 3.
Following the instruction, on the same line, at +007A4 gives the displacement of the
instruction in the program (7A4). If the instruction resides outside the program, the
address of the instruction is given instead, expressed as eight-hexadecimal digits.
■ In the field marked Prev, the Assembler instruction that was executed just before
the breakpoint occurred is displayed. In this example, the instruction is a STH. The
first operand value is in register 0, while the second operand location is at
displacement 0 from the value in register 1
To the right of the instruction, on the same line, at +007A0 is the displacement of
the instruction in the program (7A0). If the instruction resides outside the program,
the address of the instruction is given instead, expressed as eight hexadecimal
digits.
23704968 00000000
This example shows only four bytes. However, when a larger data field is involved, the
portion of the display can occupy the entire lower left corner of the breakpoint screen.
The format of the data display area is similar to the CORE transaction screen. Each line
presents up to 16 bytes in both hexadecimal and character format. On each line, the
address of the first byte in that line is shown (for example, 23704968), followed by the
same contents in character format between asterisks, where non-displayable values are
shown as periods.
Backtrace Display
The backtrace display has two vertical columns under the heading in.....out on the right
side of the breakpoint screen. Each pair of entries describes the boundaries of a piece of
the program that executed sequentially. That is, they were executed in the same order
as the machine instructions that reside in the main memory.
The backtrace display is dynamic. The most recently executed piece of code appears as
the bottom line of the backtrace display, and the oldest piece of code executed is the
top line. As the execution of the program progresses, new lines are added at the bottom
and dropped from the top.
The following screen repeats the backtrace display shown in the previous example.
in..... out
+00000 +00000
+00022 +00038
+00014 +00020
+0003C +00358
+003CA +00478
+00480 +004B0
+004B8 +004C6
+004CE +00584
+051B8 +00584
+00586 +005D4
+051B8 +005D4
+005D6 +005E4
+005EC +00662
+051B8 +00662
+00586 +005D4
+051B8 +005D4
+005D6 +005E4
+005EC +00662
+051B8 +00662
+00664 +00692
+00586 +005D4
+051B8 +00692
+00694 +00694
+00794 curr.
The backtrace display reveals a number of facts about the way the monitored program
behaved:
■ The bottom line, for example, shows that from +00794 to curr (+007A4) the
program executed sequentially.
■ Before this happened—as the fourth line from the bottom shows—the program
executed its instructions sequentially (from +00664 to +00692), but then +00692
passed control to the +051B8, which returned control back to +00692. Most likely,
this means that at +00692 the program issued a CICS command.
In this manner, you can trace, with great precision, the execution of the program from
any point in its logic all the way up to the breakpoint.
Notes:
■ If one of the pieces of code executed a loop, the number of times the loop was
executed appears as a decimal number under the appropriate line in the backtrace
display.
■ If the ,GO= element of the CA InterTest for CICS dispatch command was requested,
the change in the logic flow is shown in the backtrace display just as if the program
executed a branch or a GO TO command.
■ At the beginning of the execution of a COBOL program, a number of lines of the
backtrace display only indicate the execution of the COBOL initialization routines.
The first statement number shown is the one from which the first branch
instruction was executed. This limitation should not pose a problem, since the
execution of the Procedure Division began from the first coded statement.
CORE—Is the same as the transaction code of the CORE transaction at your site. It
means that the CORE transaction intercepted a CICS abend that makes it impossible to
continue the transaction.
INTP—Indicates that a PLI LE program was linked without CEESTART as its first CSECT
and CA InterTest abends the task with an INTP abend code.
KERN—Indicates that the task at a breakpoint could not recover from an abend. If you
know the reason (for example, you abended the task), ignore this code; otherwise,
contact CA InterTest for CICS technical support.
NATI—indicates that a breakpoint display is being directed to a terminal that does not
have the Automatic Task Initiation (ATI) capability. If the status of the terminal is either
transceive or receive (preferably, transceive), the terminal has the ATI capability. You
can adjust the status by the CEMT service transaction.
Diagnostic Area
CA InterTest for CICS obtains the CA InterTest for CICS Diagnostic Area when it begins
monitoring a program. CA InterTest for CICS keeps the area until the program finishes its
execution in that task.
There is one such area per logical level of a monitored program, per task. This means
that in most cases there is only one area. However, if you have a situation in which
program A links to program B, which then links to program A again, the second use of
program A necessitates a second CA InterTest for CICS Diagnostic Area for the same
program.
The CA InterTest for CICS Diagnostic Area is in a User class of storage, on the task's
storage chain; therefore, it is printed in the CICS transaction dump. In the dump, you
can identify the CA InterTest for CICS Diagnostic Area by the characters InterTest for
CICS at displacement 8 in the User Class storage area (hexadecimal 8C at displacement
0).
You should first look for a CA InterTest for CICS Diagnostic Area in any transaction dump
and make sure that the area was obtained for the program in question. Whatever the
reason for the dump, the only place you can find the registers and the most recent
instruction is in that area. If more than one area exists for the program, the one with the
highest value in the WKACLOCK field (displacement 0260, hexadecimal) is the most
recent one.
Code Description
01 Assembler only; an EX machine instruction issued upon an EX instruction.
02 An invalid machine instruction code. Note no override by OVR option.
03 This machine instruction not permitted under CICS; for example, an SVC.
04 A privileged machine instruction, illegal under CICS.
05 An operating system GETMAIN request, as opposed to a CICS GETMAIN.
06 The storage area about to be affected is, entirely or in part, outside of the
storage that is legally available to this CICS application.
07 The storage area about to be affected resides outside of the CICS region.
08 The named program module cannot be found in the program table (PPT), its
PPT entry is disabled, or it is unavailable to this CICS application.
09 The program module about to be deleted already has a zero current use
count.
0A The Transient Data or Temporary Storage area is incorrectly specified.
0B This Terminal Control request incorrectly specifies the TIOA address.
0C The storage area specified for this CICS request does not belong to this task or
is not a CICS storage area.
0D CA InterTest for CICS logic error; call CA Technical Support for assistance.
Code Description
0E This FREEMAIN request is illegal or specifies a wrong storage area address.
0F With this task about to terminate, one or more RELOAD=YES program
modules still do not have their main storage areas FREEMAINed.
10 Possible incorrect length of a temporary storage or transient data record.
11 A wild branch or direct machine instruction branch outside of the program
module was detected. If not a mistake, apply the FOL option and continue.
12 Macro level coding only; this CICS macro specifies incorrect storage area.
13 A GETMAIN request with FLENGTH for more than 65504 bytes can be issued
only when the program is in AMODE=31.
14 An attempt to modify this load module, which is considered reentrant, either
explicitly (RNT=ON option) or as PL/I or COBOL II.
16 A GETMAIN for 0 bytes of storage has been detected.
17 Macro level coding only; incorrect length field in a variable-length record.
18 Macro level coding only; the DFHFC macro does not specify an FWA.
19 Macro level coding only; the DFHFC macro does not specify the storage area
of CLASS=FILE.
21 CA InterTest for CICS ordered to continue a task from a breakpoint at an
incorrect location.
23 The total number of CICS requests this program issued while monitored in this
task exceeded the value specified in the MXR option.
24 The total size of main storage this task is using just exceeded the value
specified in the MXS option.
25 CICS abend intercepted, but not immediately after the last CICS request
(either macro or command) or another outside CALL recognized by CA
InterTest for CICS.
26 CICS abend intercepted while a CICS macro was in progress.
27 CICS abend intercepted while an EXEC CICS command in progress.
28 CICS abend intercepted while a CALL outside the program, such as a Database
request, recognized by CA InterTest for CICS, was in progress.
29 EXEC CICS RETURN with TRANSID issued from other than the task's top logical
level.
2C. An abend occurred while processing an IN25UEXI routine.
2D. A program check occurred in IN25PGM2.
34 A protection exception program check caused an ASRA abend intercept.
Code Description
35 An addressing exception program check caused an ASRA abend intercept.
36 A specification exception program check caused an ASRA abend intercept.
37 A data exception (invalid packed numeric data format) caused an ASRA abend
intercept.
38 A fixed point overflow program check caused an ASRA abend intercept.
39 A fixed point divide program check caused an ASRA abend intercept.
3A A decimal overflow program check caused an ASRA abend intercept.
3B A decimal divide program check caused an ASRA abend intercept.
3C An exponent overflow program check caused an ASRA abend intercept.
3D An exponent underflow program check caused an ASRA abend intercept.
3E A significance program check caused an ASRA abend intercept.
3F A floating point divide program check caused an ASRA abend intercept.
CC The storage area about to be affected by this EXEC CICS command resides, all
or in part, outside the CICS main storage legally available to this application
program. The area could have been specified as INTO ( ), SET ( ) or one of the
LENGTHs.
This information is on the breakpoint display as the backtrace. See the appendix,
"Breakpoint Displays for Non-Symbolic Programs" for a description of the breakpoint
display and an explanation of the backtrace. Whenever possible, CA InterTest for CICS
converts COBOL program displacements into COBOL statement and verb numbers
before the display is shown.
There is one Extents Table per CA InterTest for CICS Diagnostic Area, pointed to by the
address at displacement X'244' for Releases 4.x, and displacement X'0290' for Releases
5.x. The field name is XTENTABA. The table is a user-class storage area. It can also be
identified by the characters BKTR near the beginning of the storage area.
The table consists of six-byte entries. You can find the oldest entry at the four-byte
address that immediately follows the BKTR identifier. Each entry contains three
halfwords, described as follows:
■ The first halfword contains the displacement of the first instruction in the extent.
■ The second halfword contains the displacement of the last instruction in the extent
of the token branch.
■ The third halfword contains the binary number of times the extent was executed in
a loop.
If the lower-order bit (X'0001') is on in either of the first two halfwords, the table entry
does not describe an Execution Extent. If execution is being traced outside the
monitored program, or if the displacement s= is greater than or equal to 64 KB, the
displacement is invalid.
Special Entries
CA InterTest for CICS writes special entries into the CICS Trace Table to assist you in your
analysis efforts. These entries appear in the Trace Table when it is found in a dump, and
when it is displayed with a CORE=STRA command (at a breakpoint) or the CORE=TRT
command.
In the CICS formatted dump, these special entries are identified as follows:
USER 195.
Unlike the regular CICS-written entries, the CA InterTest for CICS entries provide
displacements, which are the same displacements you can find in the listing of the
program. CA InterTest for CICS writes these entries into the Trace Table, in addition to
those issued by the monitored program and the CICS software, when the monitored
program is about to:
■ Issue a CICS request (command).
■ Issue a CICS request (macro).
The entries issued for these cases consist of two fields, which are described next.
■ Field A contains the displacement of the request (or the breakpoint) from the
beginning of the program, expressed as four hexadecimal digits. If the request was
made outside the program, this field contains the address instead.
■ Field B contains the following bytes:
– At a CICS command, bytes 0 to 3 contain four hexadecimal digits that specify
the command code (such as, 0204 for a handle condition).
– At a CICS macro, bytes 0 to 1 contain two characters that describe the service
type (SC = storage control, FC = file control, and so on) and bytes 2 to 3 contain
the request field in the TCA.
– At a breakpoint, bytes 0 to 2 contain the code indicating the type of breakpoint
(ABP = automatic breakpoint, UBP = unconditional breakpoint, and so on) and
byte 3 contains either a B (for Before the breakpoint) or an A (for After the
breakpoint).
– At each override condition, bytes 0 to 2 contain the characters OVR and byte 3
contains the hexadecimal error rode. (The OVR option cancels the Automatic
Breakpoint display.)
– At a DL/I request, bytes 0 to 1 contain the characters DL.
– At an NUP-affected request, bytes 0 to 2 contain the characters NUP (the
online NUP= option prevents updates to files).
– At a call to CA InterTest for CICS-recognized software, bytes 0 to 1 contain the
characters US and bytes 2 to 3 contain the numeric identifier from the
IN25UEXI table.
CA InterTest for CICS also writes four entries into the Extents Trace Table when the
monitored program is about to pass control directly to another program (by a branch
instruction and not by a CICS command or macro) and the online FOL= option is in
effect. These entries are as follows:
■ In field A, the first entry contains the displacement that passes control. In field B, it
contains the characters FROM.
■ In fields A and B, the second entry contains the name of the program that passes
control.
■ In field A, the third entry contains the displacement that obtains control. In field B,
it contains the characters INTO.
■ In fields A and B, the fourth entry contains the name of the program that obtains
control.
InternalProcessing Entries
CICS trace table entries for CA InterTest for CICS internal processing do not appear
unless you request them. Normally, you do not want them when you are analyzing your
application's processing; the CA InterTest for CICS program entries might conceal your
application program entries.
To place the CA InterTest for CICS program entries on the CICS Trace Table, issue the
command:
CNTL=ITTRACE,ON
CNTL=ITTRACE,OFF
To place the CA Intertest for CICS common user interface entries on the CICS trace table
and log the TCP/IP message packets to the MSGUSR DD issue the following command:
ICDB TRACE_ON
ICDB TRACE_OFF
The chapter "CNTL: Commands and Menus" explains how to set and remove the FOL=
option. This appendix provides additional background information on how the FOL=
option is actually used by the CA InterTest for CICS system.
CA InterTest for CICS does this by trying to find the CICS Program Table (PPT) entry
belonging to the program that is about to receive control. If CA InterTest for CICS can
locate this entry, it is possible for CA InterTest for CICS to use displacements that apply
to the beginning of the new program rather than displacements that apply to the old
program.
If the PPT entry is found, CA InterTest for CICS does the following:
■ CA InterTest for CICS makes four special entries in the CICS Trace Table to indicate
which program passed control and from where it passed control, and which
program received control and from where.
■ CA InterTest for CICS begins to show data pertaining to the new program in the
breakpoint display. For example, any displacements in the backtrace portion of the
breakpoint screen are calculated relative to the program that just received control.
You also see a short message in the backtrace display to indicate which program
passed control directly to the current one.
The PPT entry is only found if the target program is located, or if it resides in main
storage. If the program is not permanently resident, it is considered only if its current
use count is at least one. In addition, CA InterTest for CICS will not be able to find the
PPT entry if control is being passed to a piece of code that does not reside in a storage
area of the CICS Program Storage Class.
If found, the new Monitoring Table entry is assumed to be together with all the options
associated with this entry. However, CA InterTest for CICS carries the FOL= option over
such a Monitoring Table switch so that the FOL= option remains active for the
remainder of the monitoring effort, even though the Monitoring Table entry that is now
in control might not have a FOL= option declared. This means that any options, such as
breakpoints, that you want to see applied to the program that is receiving control can
be declared for the Monitoring Table entry associated with the program.
Moreover, you can declare these options in the most convenient way; for example,
breakpoints can be declared by displacements, and the UBP= and BYP= options can be
declared for displacements and for addresses. The addresses ensure that if CA InterTest
for CICS cannot find the PPT and Monitoring Table entries, it continues monitoring
under the Monitoring Table entry of the program that passed control.
Important! CA InterTest for CICS disregards the Exclusion Table during the search for the
new Monitoring Table entry because monitoring cannot be interrupted at the place of
the wild branch. Before CA InterTest for CICS can interrupt monitoring, it has to know
where control is returned so that later it can resume monitoring. However, the location
to which control is returned depends on the design of the monitored program, and CA
InterTest for CICS cannot predict that. This is why monitoring cannot be interrupted on a
wild branch.
If a program is eligible for monitoring by CA InterTest for CICS, monitoring can begin
only if one of the following conditions is satisfied:
■ The program to be monitored is the first program to participate in a transaction. In
other words, the program was named in the CICS Transaction Resource definition.
■ The program to be monitored received control from another program through an
EXEC CICS LINK or EXEC CICS XCTL.
■ The program to be monitored received control from another program through a
direct branch instruction. In addition, the program that passed control must be
monitored by CA InterTest for CICS, and must have the online FOL=option active.
For more information, see the chapter "CNTL Commands and Menus."
■ The program to be monitored received control from another COBOL program using
a dynamic call.
■ The program to be monitored received control as the abend exit routine. In other
words, the program (or part of it), was named in an EXEC CICS HANDLE ABEND
command, executed prior to the abend.
Execution Restrictions
As CA InterTest for CICS executes the instructions of the monitored program, it must be
able to recognize the following requests:
■ Any CICS service requests. This is to prevent CA InterTest for CICS from monitoring
the CICS software.
■ Any other means the monitored program could use to pass control to other parts of
the application.
CA InterTest for CICS recognizes CICS service requests if the commands are coded into
the monitored program. However, it might not recognize calls to the system if the
statements that prepare the service request are coded and arranged differently than as
generated by the CICS command translator.
Special Circumstances
You should be aware of the following special circumstances:
■ CA InterTest for CICS will not monitor a program whose name begins with the
characters DFH or IN25 unless that program is specifically declared for monitoring
by its program name. Such a program cannot be monitored by declaring a
transaction or terminal for monitoring, or even by declaring the entire application
system: CA InterTest for CICS automatically assumes this program belongs to the
CICS system software.
■ You must prevent CA InterTest for CICS from monitoring certain programs that run
under CICS, such as TRUE's, GLUE's, and any user replaceable system components
(such as DFHPEP). Use the CNTL=EXCL command to exempt these programs from
monitoring. You can identify the program, transactions, and terminals to be
exempted by giving their full identifications or by using generic identifications.
However, it is best to follow the procedure CA recommends and always explicitly
declare programs for monitoring by using a CNTL=ON, PROG=... command or by
specifying specific programs in the menu system.
■ CA InterTest for CICS automatically suppresses breakpoints between an EXEC CICS
POST and EXEC CICS WAIT EVENT, WAIT EXTERNAL, WAIT CONVID, or WAITCICS.
When the EXEC CICS WAIT is encountered, breakpoint processing resumes. Starting
the CA InterTest for CICS internal VTAT transaction, when a breakpoint is
encountered, would freemain the ECB set by the EXEC CICS POST causing the EXEC
CICS WAIT to hang waiting on the ECB. Therefore, CA InterTest for CICS suppresses
any type of breakpoint set between POST and WAIT allowing the application
program to continue normally.
Index 575
activities • 27 overview • 539
CORE commands • 412, 413 CAIN8000, error resolution • 94
CORE menus • 390, 391, 392, 397, 398, 399, 401 CAIN8001, error resolution • 94
Assembler • 399 CAIN8002, error resolution • 94
COBOL • 390, 391, 392, 397, 398 CAIN8003, error resolution • 94
PL/I • 401 CAIN8004, error resolution • 94
data, working with • 146 CAIN8005, error resolution • 94
definition • 24 CBP option • 316
disabling • 372 changing the From Terminal ID • 84
instructions, bypassing • 249, 361 changing the terminal ID • 84
moving • 304, 372 Checkpoint facility • 309, 371
non-symbolic • 549, 550, 552, 555, 556 CHGE function • 461
non-terminal tasks • 272, 273 CICS • 125, 252, 355, 363, 379, 401, 405
purging tasks • 309, 371 areas • 379, 401, 405
resetting after recompiling • 226 displaying (CORE menus) • 401, 405
scrolling to next • 226 structured storage display • 379
setting • 27 commands, halting program before • 125, 355
setting unconditional using Breakpoint Locations limiting requests • 252, 363
screen • 109 macros, halting program before • 125, 355
setting, when, where and why • 103 CICS Life of Task • 535
terminals, disconnecting at • 263 CKPT keyword • 309, 371
transferring with New Program Copy • 105 CLOT keyword • 535
BTRACE command • 167 CNTL • 295, 333, 334, 335, 340
BWD command • 41, 57 capabilities • 295, 333
description • 41 functions • 335
on Source Listing display • 57 HELP • 334
BYP option • 249, 361 menus and screens • 335
Bypass of automatic breakpoint • 145 PF keys • 340
CNTL commands • 57, 68, 70, 71, 72, 148, 184, 185,
C 295, 297, 299, 300, 301, 302, 303, 304, 305, 307,
CA InterTest for CICS • 23, 24, 30, 33, 47, 48, 68, 70, 308, 309, 311, 313
71, 72, 148, 184, 185, 301, 308, 309, 370, 371 abending tasks • 307
definition of • 23 generic specification • 299
global logging • 309, 371 hierarchy rules • 300
initializing • 47, 68, 70, 71, 72, 148, 184, 185, 301 initializing ?CA InterTest for CICS • 184
monitor • 24 initializing CA InterTest for CICS • 68, 70, 71, 72,
reports • 308, 370 148, 185, 301
starting • 47 modules of • 311
Symbolic file • 308, 370 monitoring • 302, 304, 309
tables • 308, 370 excluding • 304
terminating • 301 removing • 302
transaction IDs • 48 resetting • 309
transactions • 33 setting • 302
usage methods • 30 on Source Listing display • 57
CA SymDump for CICS • 539, 541 options • 302, 303, 311, 313
access from CA InterTest for CICS • 541 removing • 302, 313
analyzing dumps • 539 setting • 302, 303, 313
managing dump data sets • 539 summary of • 311
syntax • 313
Index 577
columns, selecting • 490, 494 DM option Statement Trace options • 357
command list • 498 DM option • 357
confirming changes • 497 DOWN command • 41
deleting • 495 DSNC abends • 534
FILE functions • 494 DSNCRCT keyword • 498
FILE screen • 488 dump analysis • 539
FILE, accessing • 488 dumps • 539, 540, 541, 559, 560, 565, 566, 568
rows, selecting • 496 analyzing • 539
scrolling • 489 CICS data set • 541
SQL commands, entering • 489 examining • 559, 560, 565, 566, 568
updating • 495 managing • 540
DB2 programs • 524, 526, 527, 528, 532, 534 symbolic display • 539
advanced debugging • 532 duplicate subprograms, composite support • 98
attach facility • 524 dynamically called programs • 571
calls, types of • 532 monitoring • 571
DSNC abends • 534
host variables, inspecting • 527 E
SQL requests, breakpoints for • 526 EDF • 291
SQL return codes • 528 END command • 41, 57
demo Sessions, available in Primers • 47 ISPF commands • 41
detailed breakpoint • 176, 178, 181, 182, 183, 186 on Source Listing display • 57
additional displays • 176 END keyword • 301
backtrace • 178 ending FILE session • 457
CNTL commands, defaults • 183 errors • 25, 324
execution, continuing • 182 detection and prevention • 25
PF keys • 178, 181 overriding • 324
reading a backtrace • 181 EXCL keyword • 304
restoring the breakpoint • 186 Execution Extents Table • 565
source code view options • 186 execution path, tracing • 167
switching to Source Listing • 186 EXPAND command • 41
using • 178
DFLTUSER, viewing value online • 232 F
diagnostic area, CA InterTest for CICS • 560
FEP option • 318
diagnostic information • 26
FEPI, Front-End Programming Interface • 290
display • 77
FILE • 161, 162, 441, 443, 445, 455, 456, 457, 458,
registers • 77
460, 461, 462, 464, 465, 466, 477, 487, 503, 505,
titles • 77
506, 507, 508, 509, 511, 512, 515, 519
DL/I databases • 125, 355, 477, 480, 483, 484, 485,
BDAM files • 503, 505, 506, 507, 508, 509
487
breakpoint usage • 162
FILE functions • 480
capabilities • 441
FILE screen • 477
changes, and main storage • 162
halting program before calls to • 125, 355
common functions • 465
segment • 483, 484, 485, 487
DB2 databases • 487
adding • 484
DL/I databases • 477
copying • 485
ending FILE session • 457
deleting • 487
HELP • 460
updating • 483
initiating • 161, 443
SSA formats • 480
LAST sub-function • 466
DM option • 318
Index 579
viewing online • 232 instructions that read • 318
instruction counter • 319 keeping, in a Keep window • 148
interactive testing • 24 limiting • 252, 323, 363
ITST command, on Source Listing display • 57 loading program modules • 404
ITST transaction, accessing Primary Option Menu • modifying • 29, 249, 321, 361
36 modifying at breakpoint • 399, 401
modifying system-related areas • 405
J modifying task-related areas • 405
JUMP command, on Source Listing display • 57 modifying, example of • 397
modifying, from Source Listing Breakpoint screen
K • 152
MOVE command, preformatted • 156
Keep window functions • 148, 149, 151
overview • 375
KEP option • 320
protecting • 249, 325, 361
L searching for data • 398, 405
structured display • 377, 379
LAST sub-function • 466 Assembler and CICS • 379
LE/370 condition handlers • 268 COBOL and PL/I • 377
ABI=OFF option • 268 viewing in keep window • 148
segmented monitoring • 268 Main Storage facility • 375
LET option • 249, 321, 361 access • 375
Linkage section • 73 capabilities • 375
LIST keyword • 308 Margin field • 75
load module, modifying • 249, 321, 361 MENU command • 37, 57
LOC field • 458 on Source Listing display • 57
LOG field, temporary storage • 511 to display breakpoint menu • 37
menus and displays • 35, 38, 39, 40, 41
M breakpoint menus and submenus • 40
main storage • 29, 148, 152, 156, 178, 249, 252, 318, commands for Option field • 41
320, 321, 323, 325, 361, 363, 375, 376, 377, 379, getting help • 38
385, 391, 392, 397, 398, 399, 401, 404, 405, 407, option selection • 38
411, 412, 413 overview • 35
contents • 178 structure and navigation • 39
deleting program modules • 404 menusanddisplays • 38
display formats • 376 PFkeydefinition • 38
displaying • 407 modify registers • 77
displaying at breakpoint • 399, 401 modules (CNTL commands), executing • 311
displaying at breakpoint (COBOL and PL/I) • 412, MON option • 278, 322
413 description • 322
displaying at breakpoint (COBOL) • 391, 392 setting and removing, alternate methods • 278
displaying complex COBOL data names • 392 MONITOR command • 50, 57
displaying in a Keep window • 320 on Source Listing display • 57
displaying system-related areas • 401 on Source Listing screen • 50
displaying task-related areas • 405
displaying, from Source Listing Breakpoint screen
• 152
dump format • 385
examining • 29
indirect addressing • 411
Index 581
NOM option • 323 on Source Listing display • 57
Non-symbolic Breakpoint screen • 549, 550, 552, program execution • 174, 213, 215, 218
555, 556 jump to another location • 215
NRB option • 324 navigating • 174
NUP option • 252, 324, 363 options, at a breakpoint • 213
resume menu • 218
O Program Monitoring menu • 108, 244
OFF keyword • 302 new copy option • 244
Offset location • 73 setting an unconditional breakpoint • 108
ON keyword • 302 program names • 245, 327, 359
Option field, ITST menus, commands supported • 41 replacing • 245, 327, 359
override automatic breakpoint • 145 programmed breakpoints • 288, 290
OVR option • 324 PL/I programs • 288
removing • 290
P programs • 49, 75, 223, 225, 238, 299, 308, 338, 370,
545
passwords, files and databases • 456
adjusting the margins • 75
PBP facility • 288, 290
generic specification • 238, 299, 338
PF keys • 38, 66, 142, 171, 173, 181, 230, 340, 387,
non-symbolic • 545
389, 457, 493
recompiling after testing • 225
CNTL • 340
status after testing • 223
CORE (menus) • 389
Symbolic file, listing of • 308, 370
CORE (structured display) • 387, 389
viewing online • 49
detailed breakpoint • 181
protection options • 248, 251, 361, 362
FILE • 457
removing • 248, 251, 361, 362
menus • 38
setting • 251, 361, 362
Monitoring menu • 230
PURGE keyword • 309, 371
Source Backtrace Summary • 171
Source Listing Backtrace • 173 Q
Source Listing Breakpoint • 142
Source listing display • 66 qualified data names • 392, 414
SQL records in FILE • 493 displaying CORE command • 414
Plus signs • 167 displaying CORE menu • 392
post-processor programs, recompiling with • 225 qualified name, COBOL nested programs • 91
Primary Option Menu • 36, 37, 38, 163
access from Breakpoint menu • 163
R
accessing • 36 RBP option • 325, 327
accessing from a breakpoint • 37 RCT - See Resource Control Table • 537
PF key definitions • 38 RCT keyword • 537
PRO option • 249, 325, 361 RDIIN keyword • 537
production system • 28, 269, 270, 271 read buffer, preventing • 324
automatic breakpoints • 269, 270 reentrancy check • 252, 327, 363
CICS • 28 registers • 77
limiting monitoring • 270 Amode field • 77
monitoring • 269, 271 Condition Code field • 77
monitoring at one terminal • 270 display • 77
monitoring for a single user • 270 ExecKey field • 77
PROFILE command • 57, 76 modify • 77
accessing • 76 TransIsolate field • 77
Index 583
Command line usage • 57 return codes • 528
commands supported • 57 SQL/DS programs • 526, 527, 528, 532
field definitions • 54 advanced debugging • 532
Option # field • 56 host variables, inspecting • 527
PF key definitions • 66 SQL requests, breakpoints for • 526
scrolling function • 73 SQL return codes • 528
using the Search field • 66 SQLCA keyword • 531
Source Listing facility • 32, 47, 49, 51, 73, 89, 90, SQLCA, displaying • 531
101, 105, 113, 125 SQLRCODE keyword • 530, 536
access to • 32 SSA formats • 480
exiting • 51, 101 START keyword • 68, 70, 71, 72, 301
initiating • 49, 73 Statement Trace facility • 158
monitoring multiple programs • 90 enabling tracing and data monitoring • 158
overview • 47 overview • 158
preparing your programs • 47 Statement Trace options • 242, 243, 244, 357, 359
profile options • 73 removing • 244, 357, 359
program execution • 101 setting • 357
setting breakpoints • 49, 51 specifying • 243
setting conditional breakpoints • 113 TRC • 357
setting monitoring • 49 when to use • 242
setting monitoring monitoring • 89 Statement Trace Options screen • 243
SLB option • 89 statement tracing • 100
setting request breakpoints • 125 STATUS ALL command, on Source Listing display • 57
setting unconditionabreakpoints • 105 STATUS command, on Source Listing display • 57
Source Listing Profile • 73, 76, 77, 80, 81, 82, 83, 84, Status display • 41, 131, 241, 300, 308, 339, 340,
86 341, 346, 367, 368
auto-stepping • 82 at source listing breakpoint • 131
BKPT terminal ID • 84 commands supported • 41
default settings • 76 determine status • 367
display registers • 77 example • 368
display titles • 77 hierarchy rules • 339
From terminal ID • 84 monitored entries • 300
options • 76 monitoring report • 308
PF7/8 Amount field • 73 remove monitoring • 341
scroll amount • 80 remove unconditional breakpoint • 346
set the User ID • 86 removing monitoring • 241
setting scroll amount • 73 set/remove monitoring • 340
source list BKPT • 83 Status/Maintenance menu, displaying global options
step amount • 81 • 232
Source menu • 51 step amount, setting • 81
Source Selection List • 51 stepping, automatic • 82
accessing • 51 storage pointer • 409, 410
using Masking characters • 51 storage protection • 249, 332, 361
special options • 252, 363 bypassing • 249, 361
removing • 252, 363 removing from shared areas • 332
setting • 252, 363 Structured Query Language (SQL) • 488
User ID • 252 subscripted data names • 392, 414
SQL • 526, 528 displaying CORE command • 414
requests • 526 displaying CORE menu • 392
Index 585
utility functions, usage • 370
V
variable length data, displaying CORE command •
414
variable-change breakpoints • 118, 349
setting • 349
setting from menus • 118
VSAM files • 442, 465, 467, 469, 470, 471, 472, 473,
474, 475, 476, 477
browsing • 470
FILE functions for • 469
FILE screen • 467
mass insertion • 474
record • 465, 469, 472, 473, 475, 476, 477
adding • 473
copying • 475
deleting • 476
deleting large-key • 477
identifying • 465
updating • 472
viewing • 469
remote files and temporary storage support •
442
searching for data string • 471
W
What's new (8), on Primary Option Menu • 37
wild branch • 252, 319, 363
Working-storage • 73
Wrong results • 101