CA Optimizer /II Optimizer II r8 5-ENU/Bookshelf... · User Guide r8.5 CA Optimizer®/II . ... 180...
Transcript of CA Optimizer /II Optimizer II r8 5-ENU/Bookshelf... · User Guide r8.5 CA Optimizer®/II . ... 180...
User Guide
r8.5
CA Optimizer®/II
This documentation and any related computer software help programs (hereinafter referred to as the
"Documentation") are for your informational purposes only and are subject to change or withdrawal by CA at any time.
This Documentation may not be copied, transferred, reproduced, disclosed, modified or duplicated, in whole or in part,
without the prior written consent of CA. This Documentation is confidential and proprietary information of CA and may
not be used or disclosed by you except as may be permitted in a separate confidentiality agreement between you and
CA.
Notwithstanding the foregoing, if you are a licensed user of the software product(s) addressed in the Documentation,
you may print 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 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 THE END USER
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
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 © 2010 CA. All rights reserved. All trademarks, trade names, service marks, and logos referenced herein
belong to their respective companies.
CA Product References
This document references the following CA products:
■ CA IDMS®/DB Database
■ CA Roscoe® Interactive Environment
■ CA InterTest® Batch
■ CA InterTest® for CICS
■ CA Librarian®
■ CA Panexec®
■ CA Panvalet®
■ CA SymDump® Batch
■ CA Endevor® Software Change Manager
■ CA Common Services for z/OS
■ CA CICSORT™
■ Unicenter® Network and Systems Management
Contact CA
Contact Technical Support
For your convenience, CA provides one site where you can access the
information you need for your Home Office, Small Business, and Enterprise CA
products. At http://ca.com/support, you can access the following:
■ 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
Provide Feedback
If you have comments or questions about CA product documentation, you can
send a message to [email protected].
If you would like to provide feedback about CA product documentation, complete
our short customer survey, which is also available on the CA Support website,
found at http://ca.com/docs.
Contents 5
Contents
Chapter 1: Introduction 13
Components ........................................................................... 13
Benefits ............................................................................... 14
Chapter 2: Using Optimizer 17
Optimizer Options ...................................................................... 18 Compile-time Options................................................................ 18
Commonly Used Optimizer Options .................................................... 19
JCL ................................................................................... 20 Usage Considerations ................................................................... 21
SYM Option Considerations ........................................................... 22
Integrated CICS Translator Considerations.............................................. 23 Optimizer Reports ...................................................................... 23
Options Page ....................................................................... 24
Merged Cross-Reference (MXREF) ..................................................... 26 Merged Data Map (MMAP) ............................................................ 31
Merged OFFSET (MOFFSET) .......................................................... 35
Optimizer Condensed Cross-Reference Dictionary (CXREF) ................................ 37 Program Global Table Memory Map (PGT) .............................................. 38
Program Global Table (PGT) .......................................................... 39
Task Global Table Memory Map (TGT) .................................................. 40 Dynamic Save Area Memory Map (DSA) ................................................ 41
PERFORM Range Table and ALTERed GO TO Table ....................................... 42
Special Usage Note for CICS Programs ................................................. 47 COBOL Diagnostic Messages and Compiler Statistics Report ............................... 49
Statistics Report .................................................................... 50
SYM Report ........................................................................ 52 Compiler Source Listing .............................................................. 52
Merged Data Map (MMAP) ............................................................ 53
Compiler Data Map (MAP) ............................................................ 53 Condensed Listing of the Optimized Object Code (OFFSET) ................................ 54
Optimizer Procedure Map Object Listing (LIST) .......................................... 55
Optimizer Selected Procedure Map (SELECT) ............................................ 57
Chapter 3: Using Detector 59
Symbolic Support ...................................................................... 59
6 User Guide
Detector Options ....................................................................... 60
JCL ................................................................................... 63 Compile-time ....................................................................... 63
Execution-time ..................................................................... 64
Detector Reports ....................................................................... 66 Abend Report .......................................................................... 68
The Offending Instruction ............................................................ 71
Module Call Sequence ............................................................... 72 COBOL Reports ..................................................................... 73
PL/I Reports........................................................................ 83
Assembler Reports .................................................................. 89 LE Heap Storage Report.............................................................. 95
Open Files Report ................................................................... 96
Save Area Trace Report .............................................................. 97 IMS Report......................................................................... 99
DB2 Reports ......................................................................107
CA IDMS/DB Report ................................................................115 Intercepts Report......................................................................121
Snap Report ..........................................................................124
CAIOPTS File Processing Report .........................................................125 Execution Monitor Summary ............................................................126
Detector Facilities .....................................................................128
Merged Versus Dumped Data Displays ................................................128 Production-time Enabling of Debugging Facilities (DBGSLEEP/DBGAWAKE) .................134
Subscript Range Checking (SUBRNGCK) ...............................................135
Detection of Uninitialized Working-Storage (WSINIT) ....................................136 Detection of Invalid Record Area References (FDCHECK) .................................136
Parameter List Validity Checking (PARMCHK)...........................................137
Paragraph Flow Analysis (PFLOW) ....................................................138 SNAP.............................................................................138
INTERCEPTS ......................................................................139
Usage Considerations ..................................................................139 Detector with IMS ..................................................................139
Dynamic Allocation .................................................................139
Hierarchy of Information ............................................................141 Restrictions .......................................................................142
Chapter 4: Using Extended Detector 143
Extended Detector Options .............................................................143
JCL Requirements .....................................................................145 Suppressing Extended Detector Reports ..................................................146
Extended Detector Reports .............................................................146
Contents 7
Hierarchy of Information ...............................................................148
Extended Detector with Language Environment (LE) ........................................148 Usage Considerations/Restrictions .......................................................149
Chapter 5: Using the CAIPRINT Repository Viewer 151
Start the Viewer.......................................................................151
The Report Index ......................................................................152 Select a Repository.................................................................153
Report Index Fields.................................................................153
Primary Commands ................................................................155 Line Commands ...................................................................156
Delete a Report ....................................................................157
Locking and Unlocking Reports .......................................................158 Use the Electronic Notepad ..........................................................158
Modify Formatting Options ..........................................................158
Print a Report .....................................................................162 Select a Report for Viewing ..........................................................164
The Report Tree .......................................................................164
Report Tree Fields..................................................................165 Primary Commands ................................................................166
Line Commands ...................................................................167
Expand and Collapse the Tree View ...................................................167 View a Report .........................................................................168
Report View Fields .................................................................169
Primary Commands ................................................................169 Advanced Techniques ..................................................................170
Set PF Keys .......................................................................170
Use the Keep Window ..............................................................172 Use the Electronic Notepad ..........................................................173
Use TAG and LOCATE ...............................................................175
Symbolic Utilities ......................................................................177 List the Contents of a Symbolic File ...................................................178
Delete a Member from a Symbolic File ................................................180
Print a Program Listing from a Symbolic File ...........................................181 View a Program Listing from a Symbolic File ...........................................183
Add a Listing to a PROTSYM File ......................................................184
List Globally Defined Symbolic Files ...................................................187 List Supplemental Symbolic Files .....................................................187
Repository Viewer Commands ...........................................................188
FIND .............................................................................189 HELP .............................................................................190
KEEP .............................................................................191
8 User Guide
LOCATE ..........................................................................192
NOTES ...........................................................................192 OPTIONS .........................................................................193
PRINT ............................................................................194
PROFILE ..........................................................................196 REFRESH .........................................................................197
RFIND ............................................................................198
SETINDEX ........................................................................198 SORT.............................................................................199
SYM..............................................................................200
TAG ..............................................................................201 VIEW.............................................................................202
Chapter 6: Using Analyzer 203
Overview .............................................................................203
Counts ...............................................................................205 Timings ..............................................................................205
Analyzer Options ......................................................................206
Report-time Considerations..........................................................207 JCL ..............................................................................208
Compile-time ......................................................................208
Execution-time ....................................................................209 Analyzer Reporter Job Step ..........................................................210
Example ..........................................................................211
Analyzer Reports ......................................................................211 CAIOPTS File Processing Report ......................................................212
Execution Monitor Summary Report...................................................212
Run Summary Report...............................................................215 Module Summary Report ............................................................217
Source Listing Count and Timing Report (SOURCEMAP) ..................................220
Change Summary Report ...........................................................222 Report of Unexecuted Paragraphs ....................................................224
Paragraph Execution-time Summary ..................................................225
Execution Count Cross-Reference Report (CNTXREF) ....................................226 Instruction Detail Report (INSTRMAP) .................................................228
Usage Considerations ..................................................................231
Analyzer with IMS ..................................................................231 Analysis of Counts Results...........................................................231
Interpretation of Timings ............................................................232
Automatic Invocation of Analyzer Reporter.............................................234 The Relationship Between XTIME and DBGSLEEP/DBGAWAKE ............................235
Place tag on a Source Statement for the Change Summary Report ........................235
Contents 9
Restrictions .......................................................................236
Chapter 7: Using Extended Optimization Support for CICS 237
EOS Execution-time Options ............................................................237 JCL Requirements .....................................................................237
Execution-time Messages ...............................................................238
Execution-time Abends .................................................................239 Usage Considerations ..................................................................240
Inter-language Communication Between COBOL and C ..................................240
Mixing of EOS and Non-EOS COBOL Programs ..........................................240 EOS in CICS Region ................................................................241
System Requirements ..................................................................241
Chapter 8: TSO Support and Help Facilities 243
TSO Support ..........................................................................243 Primary Option Menu ..................................................................243
Invocation Panel ...................................................................245
Output File Information Panel ........................................................246 Defaulted Options Panel.............................................................247
Browse CA-Optimizer/II Output Panel .................................................248
Browse CA-Optimizer/II Errors Panel..................................................249 Print CA-Optimizer/II Listing Panel ...................................................250
Delete CA-Optimizer/II Listing Data Sets Panel .........................................251
Execute Optimized Program Panel ....................................................252 Invoke Management Reporting System Panel ..........................................253
Product HELP Facility ...............................................................253
COBOL Language HELP .............................................................256 Repository Viewer ..................................................................260
Chapter 9: Utilities 261
Management Reporting System (MRS)....................................................262
JCL ..............................................................................262 Reports ...........................................................................262
Usage Considerations ...............................................................266
Statistics Report.......................................................................267 JCL ..............................................................................268
Report............................................................................269
Initialization Summary Report ...........................................................270 JCL ..............................................................................271
Report............................................................................272
Options Summary Report ...............................................................273
10 User Guide
JCL ..............................................................................273
Report............................................................................274 CSL Summary Report ..................................................................275
JCL ..............................................................................275
Report............................................................................276 CAIPRINT Repository Utility .............................................................277
JCL ..............................................................................277
Commands........................................................................278 Usage Considerations ...............................................................281
Chapter 10: Dynamic Symbolic Support 283
Activate Dynamic Symbolic Support ......................................................283
Dynamic Symbolic Support Return Codes ..............................................284 C1DEFLTS Consideration ............................................................284
Chapter 11: Using Options 285
Compile-time .........................................................................285
Coding Options ....................................................................286 Using Synonyms and Abbreviations ...................................................286
Overriding Defaults.................................................................287
Order of Precedence in Establishing Option Values ......................................287 Usage Considerations ...............................................................288
Execution, Report, and View-time ........................................................289
Coding Options ....................................................................289 Overriding Defaults.................................................................289
Optimizer Options ..................................................................290
Execution Time Options .............................................................290 Detector Options ......................................................................291
Specifying Detector Compile-time Options .............................................292
Indicating Detector Execution-time and View-time Options ...............................292 Extended Detector Options .............................................................292
Specifying Extended Detector Compile-time Options ....................................293
Indicating Extended Detector Execution-time and View-time Options ......................294 Analyzer Options ......................................................................294
Compile-time Options...............................................................294
Execution-time Options .............................................................295 Report-time Options ................................................................295
Options Listing ........................................................................297
Appendix A: Data Sets and Block Sizes 317
Compile-time DDs .....................................................................317
Contents 11
Execution-time DD ....................................................................317
Appendix B: Troubleshooting 319
Collect Diagnostic Data .................................................................319 All Problems (except EOS)...........................................................319
Compile-/Optimize- time problems ...................................................320
EOS Problems .....................................................................320 Execution-time problems (excluding EOS) .............................................321
Formatting problems ...............................................................321
Symbolic Postprocessors ............................................................322 Interpret Diagnostic Data ...............................................................322
Print a Symbolic File Member for Diagnostic Purposes .......................................323
Use the Viewer ....................................................................323 Use the Batch Utilities ..............................................................323
Copy Repository Data for Diagnostic Purposes .............................................323
Create a Temporary VSAM Repository .................................................324 Copy a Report to a Temporary VSAM Repository ........................................324
Create a Sequential Data Set from a VSAM Repository...................................324
Print the TIMSV File for Diagnostic Purposes ...............................................325
Glossary 327
Index 333
Chapter 1: Introduction 13
Chapter 1: Introduction
CA Optimizer/II is a programmer productivity product for the z/OS environment.
CA Optimizer/II automatically optimizes COBOL programs and assists
programmers in creating, testing, debugging, fine-tuning, and maintaining their
applications.
This section contains the following topics:
Components (see page 13)
Benefits (see page 14)
Components
CA Optimizer/II consists of the following components:
Optimizer
Increases program efficiency by optimizing COBOL object code and
enhances the COBOL source listing to simplify debugging and testing.
Analyzer
Assists in quality assurance and fine-tuning for COBOL programs by
identifying unexecuted paragraphs, untested statements, and performance
bottlenecks.
Detector
Provides abend reporting for test environments, and assists in the debugging
of COBOL programs by providing paragraph flow analysis, parameter
validation, subscript range checking, and much more.
Extended Detector
Provides automatic abend reporting for production and test environments,
with symbolic support for COBOL, PL/I, and Assembler programs.
CAIPRINT Repository Viewer
Allows programmers to view, print, customize, and maintain their abend
reports in a central VSAM repository.
COBOL Language and Product Help
Assists you in finding quick answers to questions about the COBOL language,
product features and options.
Benefits
14 User Guide
Utilities
Allow programmers to:
■ Generate load library analysis reports which identify and describe
COBOL programs in detail.
■ Generate reports detailing optimization results.
■ List, print, or maintain the contents of symbolic files.
■ List, print, or maintain the contents of the CAIPRINT Repository.
■ Generate reports detailing installation defaults.
The use of each of these utilities is discussed later in this guide.
Important! Throughout this publication, the term CA Optimizer/II refers to
the entire product including all of its components, while the term Optimizer
refers only to the COBOL optimization component.
Benefits
To maximize programming productivity, CA Optimizer/II:
■ Expands programming capacity
CA Optimizer/II assists in the development and maintenance of more
efficient and reliable programs so that programmers can concentrate on
programming.
■ Reduces program development time
CA Optimizer/II eliminates the guess work in programming by helping
programmers create or modify programs, and by showing them exactly what
their programs do (or do not do) right on the program source listing.
■ Speeds program debugging
CA Optimizer/II provides COBOL oriented diagnostic information that helps
programmers resolve problems quickly.
To provide better programming techniques, CA Optimizer/II:
■ Teaches programmers better programming practices
CA Optimizer/II helps programmers minimize time-consuming,
nonprogramming procedures by providing a thorough debugging and testing
facility enabling them to easily identify programming errors. Thus, the
opportunity to concentrate on developing better techniques, such as
structured and team programming, is provided.
■ Improves program efficiency
CA Optimizer/II checks subscript calculations, data conversion, register
usage, redundant instructions, verb usage, data addresses, and PERFORM
ranges.
Benefits
Chapter 1: Introduction 15
To improve program reliability, CA Optimizer/II:
■ Ensures adequate testing
CA Optimizer/II reports provide clear documentation of what has been
tested and pinpoints each unexecuted verb to aid programmers in
determining what additional test data is needed.
■ Highlights hidden logic problems
CA Optimizer/II reports show overall logic flow, help spot hidden
performance problems, and pinpoint untested logic.
■ Reduces production errors and missed production schedules
With CA Optimizer/II, programmers get more production runs with fewer
failures, scheduling problems, and reruns. Thus, programmers can use
system time, otherwise lost due to failures or reruns, more productively.
To enhance program performance, CA Optimizer/II:
■ Identifies performance bottlenecks
CA Optimizer/II improves COBOL program performance by identifying
time-consuming statements and eliminating bottlenecks before the program
goes into production.
■ Reduces test time
The analytical capabilities of CA Optimizer/II help programmers get the most
from each compile and test run by allowing them to locate multiple logic and
performance problems in a single compile or execution.
Chapter 2: Using Optimizer 17
Chapter 2: Using Optimizer
Optimizer works on the compiler-produced source listing and object code of a
program. It greatly enhances the source listing while reducing the
execution-time. This is accomplished by optimizing the object code. Optimizer
often eliminates 30% or more of the machine instructions. In addition, Optimizer
optionally "instruments" the object code in a variety of ways. Thus, you are
provided with, not only testing and quality assurance tools, but production time
diagnostic facilities as well.
Optimizer does not change the processing performed by the program or alter
user-defined data areas. An optimized program does the same job, but does it
faster. However, an optimized program may require additional CA Optimizer/II
modules at execution-time, depending upon the options selected at
compile/optimize time. The following is a partial list of the object code
optimization techniques:
■ Optimizing
– Register usage
– Addressing for Data and Procedure Division references
– Subscript and index calculations
■ Eliminating
– Redundant instructions
– Repetitive calculations
■ Consolidating
– MOVEs whenever possible
– Repeated logic with global analysis
■ Removing unreferenced code
■ Reducing PERFORM linkage to as little as one instruction
■ Taking code out of loops
■ Simplifying IF logic
The following is a partial list of the enhanced source listing report features:
■ Full merged cross-reference (MXREF)
■ Merged data map (MMAP)
■ Merged condensed procedure listing (MOFFSET)
■ Summary of unconditionally true or false code and nonexecutable code
Optimizer Options
18 User Guide
■ PERFORM Range Summary with identification of PERFORM ranges violating
structured programming techniques
■ Compiler error messages "folded" for viewing on an 80-character width
screen
■ Complete Memory Map display (TGT/PGT) with one line for each possible
area (for example, BLFs), even if the area is of zero length in the program
■ An optimization results report which includes object code optimization
results
This section contains the following topics:
Optimizer Options (see page 18)
JCL (see page 20)
Usage Considerations (see page 21)
Optimizer Reports (see page 23)
Optimizer Options
Using Optimizer together with the COBOL compiler is similar to using the
compiler alone. The compiler and optimizer are executed in a single job step
using a control routine, Director, which links first to the compiler and then to the
Optimizer component. The option defaults are set up so that your program is
always optimized. Specify the NOCOPT option at compile-time when you do not
want optimization to take place.
Compile-time Options
The following table is a summary of all CA Optimizer/II options available to you
at compile/optimize time.
Compile-time Options
To invoke Optimizer: COPT
Environmental options: CICS IDMSDC TPMON ICICS
Output producing
options:
CXREF
DCRDISP
LIST
MAP
MMAP
MOFFSET
MXREF
OFFSET
PRTCOPY
SELECT
SOURCE
TITLE
XMMAP
XREF
Analyzer features: XCOUNT XTIME
Optimizer Options
Chapter 2: Using Optimizer 19
Compile-time Options
Detector features: DBGSLEEP
DTECT
FDCHECK
PARMCHK
PFLOW
SUBRNGCK
WSINIT
Other options: COBCC
DECK
EXIT
INTERTST
LINECOUNT
LOWER
OBJECT
OPTRC
SPM
STATS
SYM
XDATA
You should be aware that some options, when included in your PARM statement,
have the ability to turn ON or OFF CA Optimizer/II components and other
options. The "Using Options" chapter provides a comprehensive description of all
CA Optimizer/II options (including any other options or facilities that they
affect), listed in alphabetical order. You should also familiarize yourself with Of
Precedence In Establishing Option Values, which contains information
concerning the sequence of option processing, and options that are either forced
ON or OFF by other options that are encountered during processing. The
compile-time features listed on the previous table for the Detector and Analyzer
facilities of CA Optimizer/II are also discussed in their respective chapters of this
guide.
Commonly Used Optimizer Options
The following table illustrates usage of the most frequently specified Optimizer
compile-time options. These options allow you to control the Optimizer source
listing and object code output.
To Specify
Determine
■ If any statements have been flagged as
nonexecutable or unconditional (provides the
Optimizer return code)
OPTRC=rc
Produce
■ Compiler data map
■ Compiler data map merged with source
■ Relative decimal byte displacement (on the data
map or merged data map listing)
■ An optimized program for execution under CICS
■ Condensed procedure map
■ Condensed procedure map merged with source
MAP or DMAP*
MMAP or MDMAP*
DCRDISP
CICS
OFFSET or CLIST*
MOFFSET or MLIST*
LIST or PMAP*
JCL
20 User Guide
To Specify
■ Object code for entire program
■ Object code for specified statements
SELECT
Produce a cross-reference
■ Not condensed
■ Condensed
■ Merged onto your source listing for both the Data
and Procedure Divisions
XREF
CXREF
MXREF
Produce
■ The optimized object module on SYSPUNCH
■ The object text written to SYSLIN
DECK
OBJECT
Suppress
■ Optimizer
■ Source listings
NOCOPT
NOSOURCE
Note: The options marked with an asterisk (*) are upwardly compatible with
CA Optimizer for the OS/VS COBOL compiler. Only options listed without an
asterisk are referred to in the rest of this manual.
JCL
To execute the Optimizer component, refer to a copy of your installation's
cataloged procedures for a compile/optimize and link (or compile/optimize, link,
and go).
The standard CA procedure is a compile/optimize and link and is called CAIOPTII.
This is an example of how to invoke the procedure and specify Optimizer
component options:
//STEP1 EXEC CAIOPTII,
// COBOPT='MOFFSET,MMAP,MXREF'
where COBOPT is a symbolic option defined in the CAIOPTII procedure.
Note: You can combine Optimizer options with compiler options in any order. If
the procedure at your installation does not have a symbolic option for the PARM
options, you can pass Optimizer options the same way you specify compiler
options:
//STEP1 EXEC CAIOPTII,
// PARM.COB='MXREF,MOFFSET,MMAP'
Usage Considerations
Chapter 2: Using Optimizer 21
When your program is link-edited, an CA Optimizer/II program initialization
module is automatically linked with your program. The routine is reentrant so
there is never more than one copy in a load module. With one exception*, no
other CA Optimizer/II runtime modules are linked with your program. Additional
CA Optimizer/II runtime modules are dynamically loaded, as needed, dependent
upon the Detector or Analyzer facilities requested at compile-time.
* If you have inserted a CALL in a program to the SNAP routine (CAODSNAP),
and NODYN was specified at compile/optimize time, CAODSNAP is link-edited
with the program.
Usage Considerations
CA Optimizer/II optimizes programs that have up to 2048 reference segments.
There is a segment for each: 4 KB of record description in each FD, 4 KB of
Working-Storage, 4 KB of Local Storage, 4 KB of Linkage Section, and 8 KB to 12
KB of Procedure Division code. Only the segments whose base locators are
actually used are counted as referenced. For example, a 16 MB table that is
addressed only by non-literal subscripting or indexing has only one referenced
segment in an optimized program. Therefore, although CA Optimizer/II can
optimize a program containing 2048 reference segments of 4 KB each, it is
unlikely that all of these segments are referenced. This increases the effective
upper limit on the size of an optimized program to greater than 8 MB (2048 times
4 KB). The theoretical maximum is 32767 segments with no more than 2048 of
them being referenced; this gives CA Optimizer/II a theoretical maximum of
approximately 128 MB.
The following features are not supported by CA Optimizer/II:
■ Object oriented COBOL
■ Source language debugging and debugging declaratives
■ Control output listing (*CONTROL/*CBL)
■ RNDMP command
■ CMS
■ OPT option of COBOL
Usage Considerations
22 User Guide
Analyzer and Detector are not supported under CICS. CA InterTest supports
interactive debugging of COBOL programs under CICS.
The following COBOL options/facilities are also not supported:
■ COBTEST
■ FDUMP
■ LANGUAGE (JA)
■ SSRANGE
■ TEST
There are no other restrictions on COBOL source language use. Any valid COBOL
program can be optimized. You do not have to make any changes, additions, or
modifications to any COBOL program in order to use Optimizer.
SYM Option Considerations
When the SYM option is selected at compile time, the optimized listing is passed
directly to the COBOL listing postprocessor program IN25COB2 at the end of the
code generation phase of optimization. The postprocessor uses the information
in the optimized listing to update the PROTSYM file with symbolic information for
your program.
The postprocessor has a specific set of required report options that must be
provided to successfully update the PROTSYM file. These options, which include
XREF, MAP, and MOFFSET, are automatically passed to IN25COB2 even if you
have not requested them. The optimized listing written to SYSPRINT during
optimization always reflects the options that you have selected. However,
depending on which options you requested, it is possible that your optimized
listing will be stored in your PROTSYM file with slightly different reporting
options.
Optimizer Reports
Chapter 2: Using Optimizer 23
Integrated CICS Translator Considerations
The integrated CICS translator of Enterprise COBOL for z/OS allows programs
containing EXEC CICS statements to be compiled without needing a separate
precompile step. Usually, the integrated translator would be enabled using the
compiler's CICS option, as described in IBM's Enterprise COBOL for z/OS
Programming Guide. However, CA Optimizer/II already has a CICS option to
indicate that a program is being optimized to execute in a CICS environment. For
this reason, the ICICS option has been provided as a synonym to the compiler's
CICS option.
When the ICICS option is specified on the parameter list, CA Optimizer/II will
pass the equivalent CICS option to the COBOL compiler. As with the compiler's
CICS option, option overrides for the CICS translator may be passed as a
suboption string of the ICICS option. The suboption string must be delimited by
quotes or apostrophes.
The ICICS option should only be used with the Enterprise COBOL for z/OS
compiler to compile programs that contain EXEC CICS statements and which
have not been processed by a separate CICS translator step. If it is specified with
earlier versions of the COBOL compiler, it will produce a compiler error message
(RC=8). Additionally, ICICS may only be specified on the JCL parameter list and
will not be recognized if specified on the PROCESS(CBL) statement.
The ICICS option will force the CA Optimizer/II CICS option on.
Optimizer Reports
Optimizer provides an optimized object module which can be submitted directly
to the linkage editor. Optimizer also produces an Enhanced Source Listing with
an accompanying report that reflects the optimization results. The Enhanced
Source Listing with MMAP, MOFFSET, and MXREF contains the following reports.
They are listed in the order that Optimizer generates them.
Source listing control options permit you to exclude the Merged Data Map
(MMAP) or the Merged OFFSET (MOFFSET) and to print the Compilers Data Map
(MAP), Condensed Listing (OFFSET), and the Procedure Map (LIST). You can also
choose to print selected portions of the Procedure Map Object Listing by using
the SELECT option.
Optimizer Reports
24 User Guide
Options Page
This section shows the first page of the Optimizer Enhanced Source Listing.
Optimizer Reports
Chapter 2: Using Optimizer 25
CA CAO2DEMO Page
1
ACA Optimizer/II r8.5 1005AOX00 B PP 5655-G53 IBM Enterprise COBOL for z/OS 3.3.1 C 14 Jun,2005 13.18.42
Invocation parameters:
APOST,DYN,RENT
PROCESS(CBL) statements:
CBL NOCMPR2, DYN, RENT, APOST, NUMPROC(PFD), NONAME
*** COBOL FOR Z/OS OPTIONS *** *** OPTIMIZER/II OPTIONS ***
D NOADATA E NOCICS
ADV NOCXREF APOST NODBGSLEEP
ARITH(COMPAT) NODCRDISP
NOAWO NODECK BUFSIZE(27998) DTECT
CODEPAGE(1140) EXIT(NOPRTEXIT)
NOCOMPILE(S) FDCHECK NOCURRENCY NOICICS
DATA(31) NOIDMSDC
NODATEPROC NOLIST DBCS NOMAP
NODIAGTRUNC MMAP
NODLL MOFFSET NODUMP MXREF
DYNAM OBJECT
EXIT(NOLIBEXIT,NOINEXIT) NOOFFSET NOEXPORTALL OPTRC(0)
NOFASTSRT PARMCHK
FLAG(I,I) NOPFLOW
NOFLAGSTD PRTCOPY
INTDATE(ANSI) NOSELECT
LANGUAGE(EN) SLINBLK(11680)
NOLIB SOURCE
LINECOUNT(60) SPCHBLK(11680)
NONAME NOSPM
NSYMBOL(NATIONAL) SPRTBLK(11704)
NONUMBER STATS
NUMPROC(PFD) SUBRNGCK OUTDD(SYSOUT) SYM
PGMNAME(COMPAT) NOTPMON
RENT WSINIT RMODE(AUTO) XCOUNT
SEQUENCE NOXMMAP
SIZE(MAX) NOXREF SPACE(1) XTIME
NOSQL
NOTERM NOTHREAD
TRUNC(STD)
NOVBREF NOWORD
YEARWINDOW(1900)
ZWB
F Legend for merged cross reference (MXREF):
A letter preceding an entry in the merged cross reference indicates the context in which the procedure-name (pname) or data-name (dname) was used:
A = ALTER (pname) P = PERFORM (pname)
D = GO TO (pname) DEPENDING ON R = (dname) was referenced E = End of PERFORM range thru (pname) T = ALTER TO PROCEED TO (pname)
G = GO TO (pname) U = USE FOR DEBUGGING (pname)
M = (dname) was modified blank = (dname or pname) defined line number
G Data Definition Attribute codes (rightmost column) have the following meanings:
D = Object of OCCURS DEPENDING G = GLOBAL S = Spanned file
E = EXTERNAL O = Has OCCURS clause U = Undefined format file
F = Fixed-length file L = Group has own length definition V = Variable-length file
FB= Fixed-length blocked file R = REDEFINES VB= Variable-length blocked file
Optimizer Reports
26 User Guide
A
Shows the customer name and identifies the CA Optimizer/II version
number.
B
Identifies the compiler version and release.
C
Shows the compilation date and the time of optimization.
D
Lists the COBOL options in effect.
E
Lists the Optimizer options in effect.
F
Displays this legend when the MXREF option is specified. This legend may
appear on the next listing page if there is not enough room on this page.
G
Displays this legend when the MMAP option is specified. This legend may
appear on the next listing page if there is not enough room on this page.
Note: If an option is common to both COBOL and Optimizer, it is listed with the
Optimizer options in effect.
Merged Cross-Reference (MXREF)
The Merged Cross-Reference (MXREF) merges the compiler's cross-reference
onto the program's Data and Procedure Divisions' source statements. MXREF is
■ Compatible with both MMAP and MOFFSET
■ Allowed with either XREF or CXREF
Optimizer Reports
Chapter 2: Using Optimizer 27
Reading the MXREF
On a source statement line that defines a data or procedure name, MXREF lists
the source statement numbers where the data or procedure name is referenced.
On a source statement line where a data or procedure name is referenced,
MXREF lists the source statement number where the data or procedure name is
defined.
Source lines that have definitions and references have MXREF line numbers for
both; the references appear first. For example, the MXREF for the following
statement first lists all the references to PARA-A, then lists the line number on
which SUB-COUNTER is defined:
PARA-A. MOVE 1 TO SUB-COUNTER.
Identifying MXREF Line Numbers
Each MXREF line number is preceded by a one-character code or a blank. If
MXREF has been specified, the Options page will contain a legend defining the
MXREF codes. An MXREF number preceded by a blank denotes the line number
on which the referenced data or procedure name is defined. For easy reference,
here are the one-character codes of the MXREF legend:
A = ALTER (PNAME)
D = GO TO (PNAME) DEPENDING ON
E = END OF PERFORM RANGE THRU (PNAME)
G = GO TO (PNAME)
M = (DNAME) WAS MODIFIED
P = PERFORM (PNAME)
R = (DNAME) WAS REFERENCED
T = ALTER TO PROCEED TO (PNAME)
U = USE FOR DEBUGGING (PNAME)
BLANK = (DNAME OR PNAME) DEFINED LINE NUMBER
Optimizer Reports
28 User Guide
The MXREF line numbers for a source line start on that line, continuing to
additional lines when necessary. Read the numbers from left to right and top to
bottom.
MXREF line numbers, on a source statement that defines a data or procedure
name, are in ascending sequence. For example, if DNMA is referenced on lines
950, 1175, and 2247, the MXREF for the definition of DNMA will be:
77 DNMA PIC XX VALUE SPACES. R0950
M1175 R2247
MXREF line numbers, on a source statement that references multiple data and/or
procedure names, are in the same order as in the source statement. For
example, if DNMA is defined on line 1000, and DNMB is defined on line 500, the
MXREF in the following statement would be:
MOVE DNMA TO DNMB 1000 500
Optimizer Reports
Chapter 2: Using Optimizer 29
The following two samples display:
■ A MXREF for a Data Division that also has a MMAP.
■ A MXREF for a Procedure Division that also has a MOFFSET.
CA CAO2DEMO Page 6
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77 LineID PL SL ----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|
000118 DATA DIVISION. MXREF Base Displ Str Disp Definition
000119 ****************************************************************** 000120 ** D A T A D I V I S I O N **
000121 ******************************************************************
000122
000123 ******************************************************************
000124 FILE SECTION.
000125 FD REPORT-OUT R0115 000 QSAM FB
R0530 R1103
000126 BLOCK CONTAINS 1 RECORDS
000127 LABEL RECORDS ARE STANDARD
000128 DATA RECORD IS LINE-OUT.
000129 01 LINE-OUT. M1119 F=000 000000 0CL120
M1225 000130 03 FILLER PIC X(120). F=000 000000 000 000 120C
000131 01 LINE-OUT1 PIC X(120). M0590 F=000 000000 120C
000132 ****************************************************************** 000133
000134
000135 WORKING-STORAGE SECTION. 000136 77 FILLER PIC X(80) VALUE 'THIS PROGRAM IS PROPRIETARY PROPERTY W=000 000000 80C
000137 - 'OF CA INTERNATIONAL, INC.'.
000138 * 000139 77 FILLER PIC X(80) VALUE ' COPYRIGHT (C) 1986-1999 BY COMPUTER W=000 000050 80C
000140 - 'ASSOCIATES INTERNATIONAL, INC.'.
000141 * 000142 77 ERROR-FLAG PIC X(1) VALUE '0'. M0888 W=000 0000A0 1C
M0938 M0943 R0947 M1145 M1151
M1157 M1165 M1173 M1181 M1189 000143 77 DATA-PICX10 PIC X(10). M0591 W=000 0000A8 10C
000144 77 ROW-3D PIC 99 COMP VALUE 1. R0653 W=000 0000B8 2C
000145 77 COLUMN-3D PIC 99 COMP VALUE 1. R0653 W=000 0000C0 2C 000146 77 RANGE-3D PIC 99 COMP VALUE 1. R0653 W=000 0000C8 2C
000147 *
000148 01 PARAMETER-ONE. R0515 W=000 0000D0 0CL12
R0516
000149 03 FILLER PIC X(12) VALUE 'PARAMETERONE'. W=000 0000D0 000 000 12C
000150 *
000151 01 PARMCHK-DATA EXTERNAL. M0515 X=000 000000 0CL12 E
000152 03 FILLER PIC X(12). X=000 000000 000 000 12C E
000153 *
000154 01 PARM-PASSED-BY-JCL GLOBAL. W=000 0000E0 0CL19 G
000155 03 PARM-MSG PIC X(8). R0545 W=000 0000E0 000 000 8C G
M1448 M1454 M1460 M1466 M1472 M1478 M1483
000156 03 PARM-FLAG PIC X(8). R1104 W=000 0000E8 000 008 8C G
M1447 M1453 M1459 M1465 M1471 M1477 M1482
000157 03 PARM-MODE PIC X(3). R0514 W=000 0000F0 000 010 3C G
R0543 R1368 R1413 M1449 M1455
Optimizer Reports
30 User Guide
CA CAO2DEMO A Page 16
CA Optimizer/II r7 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
LineID PL SL ----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|
MXREF MOFFSET
000477 PROCEDURE DIVISION USING PARMS. 0473 001438
000478 ******************************************************************
000479 ** P R O C E D U R E D I V I S I O N **
000480 ****************************************************************** 000481
000482 ******************************************************************
000483 MAIN-PROGRAM-LOGIC SECTION. 001640 000484
000485 PERFORM PRE-INIT. 0524 001646
000486 PERFORM INITIALIZE-DEMO. 0556 001654 000487
000488 MAIN-REPEAT-LOOP SECTION. G0510 00166C
000489 IF COUNT-TIMES LESS THAN 1 GO TO COMPLETE-DEMO. 0251 0512 00167A GO 001690
000490 SUBTRACT 1 FROM COUNT-TIMES. 0251 00169E
000491 000492 PERFORM SECTION-A. 0598 0016BA
000493 PERFORM SECTION-B. 0613 0016BE
000494 PERFORM SECTION-C. 0635 0016CC 000495 PERFORM SECTION-D. 0661 0016DA
000496 PERFORM SECTION-E. 0703 0016E8
000497 PERFORM SECTION-F. 0721 0016F6 000498 PERFORM SECTION-G. 0737 001704
000499 PERFORM SECTION-H. 0762 001712
000500 PERFORM SECTION-I. 0777 001720
000501 PERFORM SECTION-J. 0790 00172E
000502 PERFORM SECTION-K. 0799 00173C
000503 PERFORM SECTION-L. 0824 00174A
000504 PERFORM SECTION-M. 0845 001758
000505 PERFORM SECTION-N. 0855 001766
000506 PERFORM SECTION-O. 0870 001774
000507 PERFORM MAIN-MLT-PARAGRAPH 0958 001782
000508 THRU MAIN-MLT-PARAGRAPH-EXIT. 0966
000509 000510 GO TO MAIN-REPEAT-LOOP. 0488 001790
000511
000512 COMPLETE-DEMO. G0489 00179E 000513 PERFORM CHECK-RESULTS. 0883 0017B4
000514 IF PARM-MODE = 'DTE' 0157 0017D2
000515 1 MOVE PARAMETER-ONE TO PARMCHK-DATA 0148 0151 0017E6 000516 1 CALL 'CAO2PCHK' USING PARAMETER-ONE. 0148 0017F6
000517 PERFORM PERFORM-RANGE-TABLE. 1019 001834
000518 PERFORM PARAMETER-FORCED-ABEND. 1091 00185A 000519 DISPLAY ' CAO2DEMO EXECUTION END'. 00186C
000520 GOBACK. 001886
000521 ******************************************************************
A
If the first line on the report is part of a nested program, the nested program
name will appear within parenthesis next to the main program-ID,
CAO2DEMO.
Optimizer Reports
Chapter 2: Using Optimizer 31
Merged Data Map (MMAP)
The MMAP option that you specify at compile-time prints the data map
information produced by the compiler beside the Data Division on the source
listing. The first 88 print positions of the source statements appear just as the
compiler generates them. Optimizer uses print columns 89 through 132 to add
the data map information next to its associated source statements.
The listing for the merged data map is much shorter than the listings for the
combined source and MAP and contains the same information. The Detector
feature of CA Optimizer/II provides reports which match these same base and
displacement addresses.
Optimizer Reports
32 User Guide
The following is a partial source listing showing the MMAP option's output.
CA CAO2DEMO Page 6
CA Optimizer/II r7 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
LineID PL SL ----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|
000118 DATA DIVISION. A MXREF Base Displ Str Disp Definition
000119 ******************************************************************** 000120 ** D A T A D I V I S I O N **
000121 ********************************************************************
000122 000123 ********************************************************************
000124 FILE SECTION. B C D E F
000125 FD REPORT-OUT R0115 000 QSAM FB R0530 R1103
000126 BLOCK CONTAINS 1 RECORDS
000127 LABEL RECORDS ARE STANDARD 000128 DATA RECORD IS LINE-OUT.
000129 01 LINE-OUT. M1119 F=000 000000 0CL 120
M1225 000130 03 FILLER PIC X(120). F=000 000000 000 000 120C
000131 01 LINE-OUT1 PIC X(120). M0590 F=000 000000 120C
000132 ******************************************************************** 000133
000134
000135 WORKING-STORAGE SECTION. 000136 77 FILLER PIC X(80) VALUE 'THIS PROGRAM IS PROPRIETARY PROPERTY W=000 000000 80C
000137 - 'OF COMPUTER ASSOCIATES INTERNATIONAL, INC.'.
000138 *
000139 77 FILLER PIC X(80) VALUE ' COPYRIGHT (C) 1986-1999 BY COMPUTER W=000 000050 80C
000140 - 'ASSOCIATES INTERNATIONAL, INC.'.
000141 *
000142 77 ERROR-FLAG PIC X(1) VALUE '0'. M0888 W=000 0000A0 1C
M0938 M0943 R0947 M1145 M1151
M1157 M1165 M1173 M1181 M1189
000143 77 DATA-PICX10 PIC X(10). M0591 W=000 0000A8 10C
000144 77 ROW-3D PIC 99 COMP VALUE 1. R0653 W=000 0000B8 2C
000145 77 COLUMN-3D PIC 99 COMP VALUE 1. R0653 W=000 0000C0 2C 000146 77 RANGE-3D PIC 99 COMP VALUE 1. R0653 W=000 0000C8 2C
000147 *
000148 01 PARAMETER-ONE. R0515 W=000 0000D0 0CL12 R0516
000149 03 FILLER PIC X(12) VALUE 'PARAMETERONE'. W=000 0000D0 000 000 12C
000150 * 000151 01 PARMCHK-DATA EXTERNAL. M0515 X=000 000000 0CL12 E
000152 03 FILLER PIC X(12). X=000 000000 000 000 12C E
000153 * 000154 01 PARM-PASSED-BY-JCL GLOBAL. W=000 0000E0 0CL19 G
000155 03 PARM-MSG PIC X(8). R0545 W=000 0000E0 000 000 8C G
M1448 M1454 M1460 M1466 M1472 M1478 M1483
000156 03 PARM-FLAG PIC X(8). R1104 W=000 0000E8 000 008 8C G
M1447 M1453 M1459 M1465 M1471 M1477 M1482
000157 03 PARM-MODE PIC X(3). R0514 W=000 0000F0 000 010 3C G
R0543 R1368 R1413 M1449 M1455
Optimizer Reports
Chapter 2: Using Optimizer 33
The contents of the Merged Data Map include:
A
The Data Division source line contains the column headers for the merged
data map.
B
The base locator numbers of the BLF, BLL, BLK, BLV, BLW and BLX cell in the
TGT, represented as F=, L=, K=, V=, W=, or X= for COBOL II and above,
contains the base address of the data field. As part of its optimization
scheme, Optimizer removes any unreferenced base locator cells. Therefore,
the existing base locators may cover areas in excess of 4 KB.
C
The displacement to be added and the base address for locating the data
item in a dump.
D
DCRDISP is optional. It provides the relative byte displacement in decimal of
the data field. IF NODCRDISP was specified, the field appears as a structure
displacement (STR DISP) in hexadecimal.
E
The definition field in terms of its length in bytes.
F
A usage code defining:
D
Object of OCCURS DEPENDING ON clauses
E
EXTERNAL
F
Format of the records of a file as FIXED LENGTH
FB
FIXED LENGTH BLOCKED FILE
Optimizer Reports
34 User Guide
G
GLOBAL
O
OCCURS clauses
OG
GROUP HAS OWN LENGTH DEFINITION
R
REDEFINES statements
S
SPANNED FILE
U
UNDEFINED FORMAT FILE
V
VARIABLE LENGTH FILE
VB
VARIABLE LENGTH BLOCKED FILE
Note: For examples of how to use the information contained on the Data Map,
see the chapter ―Using Detector.‖
If you use COPY with the SUPPRESS option, the data map information relating to
the suppressed data name will appear following the source listing. It is in the
same location and format as the original compiler data map. If the XMMAP option
is specified, any data names defined from a COPY ... SUPPRESS statement will
not appear.
Optimizer Reports
Chapter 2: Using Optimizer 35
Merged OFFSET (MOFFSET)
When you request a MOFFSET at compile-time, the address of each verb prints
alongside the Procedure Division statement on the source listing. An address
also prints for each referenced paragraph name.
CA CAO2DEMO Page 16 CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
LineID PL SL ----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--| A
MXREF MOFFSET 000477 PROCEDURE DIVISION USING PARMS. 0473 001438
000478 ******************************************************************
000479 ** P R O C E D U R E D I V I S I O N ** 000480 ******************************************************************
000481
000482 ****************************************************************** 000745
000746 PARAGRAPH-4600. G0752 G0755 00275C
000747 COMPUTE RESULT-L-5 (SUB1) = RESULT-L-5 (SUB1) 0326 0246 0326 002766 5132
000748 + LIST-1 (SUB1) * (A + B) 0316 0246 0240
0241
000749 - LIST-1 (SUB2) * (A + B) 0316 0247 0240
0241
000750 + LIST-1 (SUB3) * (A + B). 0316 0248 0240
0241 B
000751 ADD 1 TO SUB3 IF SUB3 NOT GREATER THAN SUB-MAX 0248 0248 0250 002828
IF 002840 000752 1 GO TO PARAGRAPH-4600. 0746 002850
000753 MOVE 1 TO SUB3. 0248 00285E
000754 ADD 1 TO SUB2 IF SUB2 NOT GREATER THAN SUB-MAX 0247 0247 0250 002876 IF 00288A
000755 1 GO TO PARAGRAPH-4600. 0746 002896
000756 MOVE 1 TO SUB2. 0247 0028A4 000757 ADD 1 TO SUB1 IF SUB1 NOT GREATER THAN SUB-MAX 0246 0246 0250 0028B8
IFE 0028CC
000758 1 GO TO PARAGRAPH-4500. 0743 0028D8 ***EXIT FROM PERFORMED PARAGRAPH(S).D 002902
000759
000760 ****************************************************************** 000791 C
000792 IF VALUE2 NOT EQUAL 4 OR 6 GO TO SECTION-J-RETURN. 0237 0794-UNCOND
GO 002B28
The contents of the Merged OFFSET include:
A
Before the Procedure Division source line is the column header for the
merged OFFSET.
B
The Merged Condensed Procedure Division Listing corresponds to the verb or
procedure name mentioned on the source statement. This identifies the
hexadecimal location at which the statement begins.
Optimizer Reports
36 User Guide
C
When Optimizer detects statements that cannot be reached for execution, or
conditional statements that are unconditionally true or false, Optimizer
prints UNEXEC or UNCOND on the source listing in place of the hexadecimal
locations for any such verb, and also removes the object code for all or part
of those statements. Optimizer also flags as UNCOND, a compound
conditional where any one of the tests are found to be unconditional. The
appropriate warning messages print on the last page of the source listing
along with the statement numbers of the source lines that are UNEXEC or
UNCOND.
In conjunction with this report, the OPTRC option forces Optimizer to
generate a particular return code if it identifies UNEXEC or UNCOND
statements. Because of the way the compiler generates code for the WHEN
verb, Optimizer cannot identify where its code begins. Therefore, a MOFFSET
address of UNCOND or UNEXEC will never be given for a WHEN verb.
Instead, the verb prior to the WHEN shows the MOFFSET information for
both itself and the WHEN.
D
Optimizer flags any statement which represents a PERFORM range exit by
printing the message ***EXIT FROM PERFORMED PARAGRAPH(S) on the
Source Listing following the source statement. Use these messages with the
information in the PERFORM Range Table to verify that the PERFORM
statements were coded correctly.
E
If more than one verb appears on a source line, the subsequent verbs are
displayed to the right of the source. The MOFFSET of subsequent verbs is
also listed on the line.
If Optimizer detects nonexecutable or unconditional statements in the COBOL
program, the following message is printed at the end of the report:
WARNING:
THE FOLLOWING STATEMENTS IN THIS PROGRAM HAVE BEEN FLAGGED AS
UNEXECUTABLE. THEIR STATEMENT NUMBERS ARE: nnnnnn, etc.
Note: Under certain circumstances, the compiler generates code that tests the
same condition twice on some READ, WRITE and REWRITE verbs. When this
happens, Optimizer deletes the second test as it is redundant and marks the verb
as UNCOND.
Optimizer Reports
Chapter 2: Using Optimizer 37
Optimizer Condensed Cross-Reference Dictionary (CXREF)
The Condensed Cross-Reference (CXREF) is the standard compiler cross
reference, with all unreferenced data items removed. Unreferenced paragraph
names are not removed. You produce this report by specifying the CXREF option
at compile-time.
CA CAO2DEMO Page 49
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
An "M" preceding a data-name reference indicates that the data-name is modified by this reference.
Defined Cross-reference of data names References
240 A. . . . . . . . . . . . . . . 619 620 709 710 711 713 728 729 730 731 748 749 750 923 925 927 1405 1406 1407
1408 1417
410 ACCTUAL-LT1-FIELD1 . . . . . . M976 399 ADDER. . . . . . . . . . . . . 630 631 632 M1044 M1057 1061 M1064 1065 M1069 M1075 M1081
455 ARY-CHECK-HDR. . . . . . . . . 1202
463 ARY-CHECK-LINE . . . . . . . . M1205 1219 231 ARY-CK . . . . . . . . . . . . M884 M1161 M1169 M1177 M1185 M1193 1201
461 ARY-CK-OUT . . . . . . . . . . M1201
229 ARY-COM. . . . . . . . . . . . M1208 M1209 M1210 M1211 M1212 M1213 M1214 1215 467 ARY-ELEM . . . . . . . . . . . M1215
457 ARY-LBL. . . . . . . . . . . . M1148 M1154 M1160 M1168 M1176 M1184 M1192
230 ARY-SUM. . . . . . . . . . . . M884 M1162 M1170 M1178 M1186 M1194 1200 459 ARY-SUM-OUT. . . . . . . . . . M1200
241 B. . . . . . . . . . . . . . . 619 620 709 710 711 713 728 729 730 731 748 749 750 923 925 927 1405 1406 1407
1408 254 BINARY-CNTR. . . . . . . . . . M1375
255 BINARY-CNTR-SAVE . . . . . . . M1404 1418
252 BINARY-1 . . . . . . . . . . . 551 552 M1370 1410 1417 253 BINARY-2 . . . . . . . . . . . M1372
242 C. . . . . . . . . . . . . . . 619 620 709 710 711 713 728 729 730 731 923 925 1408
307 CHECK1 . . . . . . . . . . . . 1416 311 CHECK5 . . . . . . . . . . . . 1416
145 COLUMN-3D. . . . . . . . . . . 653
251 COUNT-TIMES. . . . . . . . . . 489 M490 M548
249 C1 . . . . . . . . . . . . . . 620 710 711 729 730 922
CA CAO2DEMO Page 54 CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
Context usage is indicated by the letter preceding a procedure-name reference.
These letters and their meanings are: A = ALTER (procedure-name)
D = GO TO (procedure-name) DEPENDING ON
E = End of range of (PERFORM) through (procedure-name) G = GO TO (procedure-name)
P = PERFORM (procedure-name)
T = (ALTER) TO PROCEED TO (procedure-name) U = USE FOR DEBUGGING (procedure-name)
Defined Cross-reference of procedures References
1367 ABEND-PARAGRAPH. . . . . . . . P1364 883 CHECK-RESULTS. . . . . . . . . P513
887 CHECK-0. . . . . . . . . . . . G885
895 CHECK-1. . . . . . . . . . . . G886 899 CHECK-1-LOOP . . . . . . . . . G903
904 CHECK-2. . . . . . . . . . . . G896 G900
913 CHECK-2-LOOP . . . . . . . . . G920
921 CHECK-3. . . . . . . . . . . . G914
936 CHECK-4
941 CHECK-5
946 CHECK-6
512 COMPLETE-DEMO. . . . . . . . . G489
526 DEMO-BEGIN . . . . . . . . . . A538
529 DEMO-INIT. . . . . . . . . . . G527
537 DEMO-INIT-BYPASS
540 DEMO-START-IT. . . . . . . . . T538 1207 ELEM-LOOP. . . . . . . . . . . G1217
Optimizer Reports
38 User Guide
Program Global Table Memory Map (PGT)
This map contains descriptions of the different areas of the Program Global Table
(PGT). You should note that the PGT Memory Map is altered by Optimizer.
Produce this report by specifying any of these options at compile-time: SYM,
LIST, MOFFSET, OFFSET, SELECT.
CA CAO2DEMO Page 53
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
A B C
PGMLOC PGTLOC PGT MEMORY MAP
00000168 00000000 SYSTEM LITERAL POOL
000001C0 00000058 BASE LOCATOR FOR PGT
000001C4 0000005C CONSTANT BASE LOCATORS 000001D8 00000070 PROCEDURE BASE LOCATORS
000001F0 00000088 VIRTUAL ADDRESS CELLS
000001F0 00000088 VN INITIALIZER CELLS 0000020C 000000A4 PROGRAM LITERAL POOL
00000A20 000008B8 OPTIMIZER DOUBLEWORD LITERALS
000010B8 00000F50 OPTIMIZER FULLWORD LITERALS 0000110C 00000FA4 OPTIMIZER HALFWORD LITERALS
0000110C 00000FA4 OPTIMIZER BYTE LITERALS
00001198 00001030 OPTIMIZER CHARACTER LITERAL POOL 00001230 000010C8 RESERVED FOR FUTURE USE
00001230 000010C8 SEGMENT TRANSLATE LITERAL POOL
00001250 000010E8 OPTIMIZER TRANSLATE TABLES 00001250 000010E8 FILE INFORMATION BLOCKS
000012F0 00001188 INITIAL XTAP
The contents of the PGT Memory Map include:
A
Indicates hexadecimal locations, relative to the start of the program for each
area.
B
Indicates locations relative to the start of the PGT.
C
Contains a description of each area.
Optimizer Reports
Chapter 2: Using Optimizer 39
Program Global Table (PGT)
The Program Global Table also contains the literals used within the program.
Produce this report by specifying any of these options at compile-time: LIST,
OFFSET, SELECT.
B C A 00000168 SYSLIT+0 05F5E100 3B9ACA00 000186A0 00002710 00000001 00000000 40404040 40404040 |.5÷.......fµ............ |
00000188 SYSLIT+32 40404040 40404040 40404040 40404040 40404040 40400000 00000000 00000000 | ..........|
000001A8 SYSLIT+64 00000000 000C0000 0000000C 0000000F F0F0F0F0 F0C04040 |................00000{ | 00000208 PGMLIT+0 FFFFFFFC 00001000 00000005 00000090 00000003 00004402 0000000A 00000019 |................................|
00000228 PGMLIT+32 00000457 00000054 00000057 00000008 0000003C 0000000F 00000004 00000002 |................................|
00000248 PGMLIT+64 00000001 00000000 0007000B 000C0010 00200012 00730488 00400D64 00960BB8 |.......................h. ...o..| 00000268 PGMLIT+96 FFF80006 00140037 000EE3C8 C9E240D7 D9D6C7D9 C1D440C9 E240D7D9 D6D7D9C9 |.8........THIS PROGRAM IS PROPRI|
00000288 PGMLIT+128 C5E3C1D9 E840D7D9 D6D7C5D9 E3E840D6 C640C3D6 D4D7E4E3 C5D940C1 E2E2D6C3 |ETARY PROPERTY OF COMPUTER ASSOC|
000002A8 PGMLIT+160 C9C1E3C5 E240C9D5 E3C5D9D5 C1E3C9D6 D5C1D36B 40C9D5C3 4BC3D6D7 E8D9C9C7 |IATES INTERNATIONAL, INC.COPYRIG| 000002C8 PGMLIT+192 C8E3404D C35D40F1 F9F8F66B 40F1F9F9 F340C2E8 40C3D6D4 D7E4E3C5 D940C1E2 |HT (C) 1986, 1993 BY COMPUTER AS|
000002E8 PGMLIT+224 E2D6C3C9 C1E3C5E2 40C9D5E3 C5D9D5C1 E3C9D6D5 C1D36B40 C9D5C34B 5C5C5C40 |SOCIATES INTERNATIONAL, INC.*** |
00000308 PGMLIT+256 C5D9D9D6 D9405C5C 5C40D3C5 D5C7E3C8 40D6C640 E5C1D9C9 C1C2D3C5 60D3C5D5 |ERROR *** LENGTH OF VARIABLE-LEN| 00000328 PGMLIT+288 C7E3C860 E3C1C2D3 C5407E40 40404040 40404040 40404040 40404040 4040C3C1 |GTH-TABLE = CA|
00000348 PGMLIT+320 D6F2C4C5 D4D640C5 E7C5C3E4 E3C9D6D5 40C2C5C7 C9D54040 40404040 40404040 |O2DEMO EXECUTION BEGIN |
00000368 PGMLIT+352 40404040 40404040 40C3C1D6 F2C4C5D4 D640C5E7 C5C3E4E3 C9D6D540 C5D5C4C4 | CAO2DEMO EXECUTION ENDD|
00000388 PGMLIT+384 C5D4D6D5 E2E3D9C1 E3C9D6D5 40D7D9D6 C7D9C1D4 60C5E7C5 C3E4E3C9 D6D540D9 |EMONSTRATION PROGRAM-EXECUTION R|
000003A8 PGMLIT+416 C5D7D6D9 E35C5C5C 40C5D9D9 D6D9405C 5C5C40E5 C5D9C9C6 E860C5D3 C5D4C5D5 |EPORT*** ERROR *** VERIFY-ELEMEN|
000003C8 PGMLIT+448 E340C1D3 D340C5E7 C5C3E4E3 C9D6D540 D9C5E2E4 D3E3E240 C3D6D9D9 C5C3E340 |T ALL EXECUTION RESULTS CORRECT |
000003E8 PGMLIT+480 D7C1D9D4 40E5C1D3 E4C5E240 E3C9D4C5 E2407E40 F5F54040 C9D5C9E3 C9C1D3C9 |PARM VALUES TIMES = 55 INITIALI|
00000408 PGMLIT+512 E9C560E2 D6D4C560 E3C1C2D3 C5E24040 404040C3 C160D6D7 E3C9D4C9 E9C5D961 |ZE-SOME-TABLES CA-OPTIMIZER/|
00000428 PGMLIT+544 C9C9C6D6 D9C3C9D5 C760E3C8 C560C1C2 C5D5C440 404040E2 E4C260D4 C1E7407E |IIFORCING-THE-ABEND SUB-MAX =| 00000448 PGMLIT+576 40F2F040 C4C1E3C1 60D5C1D4 C560D240 7E40F4C4 C1E3C160 D5C1D4C5 60D2407E | 20 DATA-NAME-K = 4DATA-NAME-K =|
00000468 PGMLIT+608 40F3C4C1 E3C160D5 C1D4C560 D2407E40 F2C4C1E3 C160D5C1 D4C560D2 407E40F1 | 3DATA-NAME-K = 2DATA-NAME-K = 1|
00000488 PGMLIT+640 C1C2C3C4 C5C6C7C8 C9D1D2D3 D4D5D6E5 C1D3E4C5 4040C9E2 40F94040 40E5C1D3 |ABCDEFGHIJKLMNOVALUE IS 9 VAL| 000004A8 PGMLIT+672 E4C54040 C9E240F7 404040E5 C1D3E4C5 4040C9E2 40F54040 40E5C1D3 E4C54040 |UE IS 7 VALUE IS 5 VALUE |
000004C8 PGMLIT+704 C9E240F1 40404040 E5C1D3E4 C54040D5 D6E340D6 C4C2C1C4 40E5C1D3 E4C56060 |IS 1 VALUE NOT ODBAD VALUE--|
000004E8 PGMLIT+736 E2D4D3C2 C1C440E5 C1D3E4C5 6060D3C7 C5E5C1D3 E4C54040 C9E240F3 404040D7 |SMLBAD VALUE--LGEVALUE IS 3 P| 00000508 PGMLIT+768 D9D6C3C5 E2E260D7 C1D9D4E2 C5C4E26B E2E4C2D9 D5C7C3D2 D3D6D6D7 60C3D6D4 |ROCESS-PARMSEDS,SUBRNGCKLOOP-COM|
00000528 PGMLIT+800 D7E4E3C5 E2C5C3E3 C9D6D560 C84040F2 E2C5C3E3 C9D6D560 C84040F1 D7C1D9C1 |PUTESECTION-H 2SECTION-H 1PARA|
00000548 PGMLIT+832 D4C5E3C5 D9D6D5C5 C5C4E26B C6C4C3C8 C5C3D240 D9C5E2E4 D3E360D3 60F540D9 |METERONEEDS,FDCHECK RESULT-L-5 R| 00000568 PGMLIT+864 C5E2E4D3 E360D360 F440D9C5 E2E4D3E3 60D360F3 40D9C5E2 E4D3E360 D360F240 |ESULT-L-4 RESULT-L-3 RESULT-L-2 |
00000588 PGMLIT+896 D9C5E2E4 D3E360D3 60F14040 4040D7C1 D9D4407E 40C5C4E2 6BE6E2C9 D5C9E3D7 |RESULT-L-1 PARM = EDS,WSINITP|
000005A8 PGMLIT+928 C360C3C8 C5C3D240 C3C1D6C4 E2D5C1D7 D5D6D5C5 40404040 E6E2C9D5 C9E34040 |C-CHECK CAODSNAPNONE WSINIT | 000005C8 PGMLIT+960 C6C4C3C8 C5C3D240 C3C1D6F2 D7C3C8D2 E2E8E2D6 E4E34040 C9C7E9E2 D9E3C3C4 |FDCHECK CAO2PCHKSYSOUT IGZSRTCD|
000005E8 PGMLIT+992 40D3C9E2 E360F340 D3C9E2E3 60F2C5C9 C7C8E340 E2C5E5C5 D540E2C9 E7404040 | LIST-3 LIST-2EIGHT SEVEN SIX |
00000608 PGMLIT+1024 C6C9E5C5 4040C6D6 E4D94040 E3E6D640 4040E3C8 D9C5C540 E6D9D6D5 C7D5D6E3 |FIVE FOUR TWO THREE WRONGNOT|
A
Provides a listing of the entire Literal Pool. It contains the various literals
(System, Program, Optimizer, and Character) used within the program.
B
Indicates the hexadecimal program location.
C
Provides the decimal location relative to the start of the program literal pool.
Optimizer Reports
40 User Guide
Task Global Table Memory Map (TGT)
The TGT contains program information needed by the COBOL program. It
provides both fixed and variable TGT Memory Maps.
CA CAO2DEMO Page 54
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
C D A E C D B E
PGMLOC TGTLOC TGT ** FIXED ** MEMORY MAP PGMLOC TGTLOC TGT ** VARIABLE ** MEMORY MAP
00000000 RESERVED - 72 BYTES 00000120 BACKSTORE FOR SYMBOLIC REGISTERS
00000048 TGT IDENTIFIER 00000120 BACKSTORE FOR OPTIMIZER REGISTERS
0000004C RESERVED - 4 BYTES 00000120 TGT OVERFLOW CELLS
00000050 LEVEL NUMBER 00000120 BASE LOCATORS FOR SPECIAL REGISTERS
00000051 RESERVED 3X 00000128 BASE LOCATORS FOR WORKING-STORAGE
00000054 SWITCH 00000144 BASE LOCATORS FOR LINKAGE-SECTION 00000058 ADDRESS OF RUNCOM AL4 00000150 BASE LOCATORS FOR FILE SECTION
0000005C ADDRESS OF COBVEC 00000154 BASE LOCATORS FOR VARIABLY LOCATED DATA
00000060 POINTER TO PROGRAM DYNAMIC BLOCK TABLE 00000154 BASE LOCATORS FOR EXTERNAL DATA 00000064 NUMBER OF FCB CELLS 00000158 BASE LOCATORS FOR ALPHANUMERIC TEMPS
00000068 WORKING STORAGE LENGTH 00000158 CLLE ADDRESS CELLS FOR CALL
0000006C RESERVED - 4 BYTES 00000160 USE FOR DEBUGGING AREA 00000070 ADDRESS OF IGZESMG WORK 00000160 FDUMP-TEST INFORMATION AREA
00000074 ANCHOR FOR GETMAIN 00000160 VARIABLE NAME (VN) CELLS FOR PERFORM
00000078 RESERVED - 2 BYTES 00000160 PERFORM SAVE CELLS 0000007A RESERVED - 2 BYTES 00000160 VARIABLE NAME (VN) CELLS FOR ALTER
0000007C RESERVED - 2 BYTES 00000168 INDEX CELLS
0000007E MERGE FILE NUMBER 00000180 PERFORM SAVE CELLS 00000080 ADDRESS OF CEL COMMON ANCHOR AREA 00000180 PERFORM COUNTER CELLS
00000084 LENGTH OF TGT 00000180 VARIABLE LENGTH CELLS
00000088 RESERVED 1X 00000180 ODOSAVE CELLS 00000089 PROGRAM MASK FOR THIS PROGRAM 00000180 FCB ADDRESS CELLS
0000008A RESERVED 2X 00000184 LOCAL FCB CELLS FOR EXTERNAL FILES
0000008C NUMBER OF SECONDARY FCB CELLS 00000184 ALL PARAMETER BLOCK 00000090 LENGTH OF THE ALTER VN(VNI) VECTOR 00000184 INTERNAL PROGRAM CONTROL BLOCKS
00000094 COUNT OF NESTED PROGRAMS IN COMPILE UNI 000001E8 EVALUATE BOOLEAN VALUES
00000098 EBCDIC DDNAME FOR DISPLAY 000001E8 EVALUATE WHEN VALUES
000000A0 RESERVED - 8 BYTES 000001E8 TEMP STORAGE 1
000000A8 ADDRESS OF COM-REG SPECIAL REGISTER 000001E8 TEMP STORAGE 2
000000AC CALC ROUTINE SAVE AREA 000001E8 TEMP STORAGE 3
000000E0 ALTERNATE COLLATING SEQUENCE POINTER 000001E8 TEMP STORAGE 4
000000E4 ADDRESS OF SORT GN BLOCK 000001E8 TEMP STORAGE FOR OPT
000000E8 ADDRESS OF PGT 000001E8 TGT COMMON TRANSLATE TABLE
000000EC CURRENT INTERNAL PROGRAM NUMBER 000001E8 SUBROUTINE (NESTED PROGRAM) RETURN ADDR
000000F0 POINTER TO 1ST IPCB 000001F8 SUBSCRIPT LIMIT CELLS
000000F4 ADDRESS OF THE CLLE FOR THIS PROGRAM 00000330 OPTIMIZER XTAP 000000F8 ADDRESS OF ABEND INFORMATION TABLE 00000330 Q-ROUTINE TEMP STORAGE
000000FC ADDRESS OF TEST INFO FIELDS IN TGT 00000340 RESOURCE ALLOCATOR SAVE AREA
00000100 ADDRESS OF START OF PROGRAM 0000034C MVC SUBROUTINE AREA 00000104 ADDRESS OF 1ST ALTER VNI CELL IN CGT
00000108 ADDRESS OF 1ST ALTER VN CELL IN TGT
0000010C ADDRESS OF 1ST PBL CELL 00000110 ADDRESS OF 1ST FCB CELL
00000114 WORKING STORAGE ADDRESS
00000118 POINTER TO FIRST SECONDARY FCB CELL 0000011C POINTER TO STATIC CLASS INFO BLOCK
Optimizer Reports
Chapter 2: Using Optimizer 41
A
Contains the TGT Fixed Memory Map.
B
The TGT Variable Memory Map contains fields that are not always present
within a program. However, its entry in the TGT Memory Map is maintained
by Optimizer.
C
The first column of each map indicates the hexadecimal program location. If
the RENT option is in effect, this column is blank.
D
The second column of each map provides the hexadecimal location relative
to the start of the TGT.
E
Contains a description of the field.
Dynamic Save Area Memory Map (DSA)
The DSA contains information needed by IBM COBOL for MVS and VM, IBM
COBOL for OS/390 and VM, or Enterprise COBOL for z/OS and OS/390. It
provides both fixed and variable DSA Memory Maps.
CA CAO2DEMO Page 55
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
C A D C B D DSALOC DSA ** FIXED ** MEMORY MAP DSALOC DSA ** VARIABLE ** MEMORY MAP
00000000 REGISTER SAVE AREA 00000084 BACKSTORE CELLS FOR SYMBOLIC REGISTERS
0000004C STACK NAB (NEXT AVAILABLE BYTE) 00000124 DSA OVERFLOW AREA ADCONS 00000058 ADDRESS OF INLINE-CODE PRIMARY DSA 00000124 BASE LOCATORS FOR OBJECT INSTANCE DATA
0000005C ADDRESS OF TGT 00000124 BASE LOCATORS FOR LOCAL-STORAGE SECTION
00000080 PROCEDURE DIVISION RETURNING VALUE 00000124 BASE LOCATORS FOR LINKAGE SECTION 00000124 BASE LOCATORS FOR SPECIAL REGISTERS
00000124 BASE LOCATORS FOR VARIABLY LOCATED DATA
00000124 VARIABLE LENGTH CELLS
0000012C ODOSAVE CELLS
00000130 VARIABLE NAME (VN) CELLS FOR PERFORM
00000144 INDEX CELLS FOR LOCAL-STORAGE SECTION
00000144 PERFORM SAVE CELLS
000001FC PERFORM COUNTER CELLS
00000208 EVALUATE BOOLEAN VALUES
00000208 EVALUATE WHEN VALUES
00000208 TEMPORARY STORAGE-1
00000320 TEMPORARY STORAGE-2 00000320 TEMPORARY STORAGE-3
00000328 TEMPORARY STORAGE-4
00000328 OPTIMIZER XTAP 0000046C SPECIAL REGISTER AREA
0000046C LOCAL-STORAGE SECTION
Optimizer Reports
42 User Guide
A
Contains the DSA Fixed Memory Map.
B
The DSA Variable Memory Map contains fields that are not always present
within a program. However, its entry in the DSA Memory Map is maintained
by Optimizer.
C
The first column of each map provides the hexadecimal location relative to
the start of the DSA.
D
Contains a description of the field.
PERFORM Range Table and ALTERed GO TO Table
Two tables which identify the PERFORM ranges and ALTERed GO TOs print on a
separate page preceding the COBOL Diagnostic Messages and Compiler
Statistics Report. If there are any PERFORM ranges or ALTERed GO TOs in the
program, the PERFORM range and ALTERed GO TO reports are automatically
generated at the end of the source listing.
Optimizer Reports
Chapter 2: Using Optimizer 43
The PERFORM Range report is extremely useful in assessing the quality of the
PERFORM ranges in the program. A glance at the summary line will tell you if any
of the PERFORM ranges do not conform to structured programming practices.
The information related to the location of each PERFORM range in the source and
object code, and the return cell associated with the PERFORM range is very
useful for debugging. A description of how the PERFORM Range Table is used
during debugging can be found in PERFORM Return Address Analysis.
CA CAO2DEMO Page 58
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
Perform Range Table
Legend:A
Overlap - This perform range overlaps a preceding one. Fall Thru - This perform range exit may fall through to the next statement in
the program.
Branch Out - There is a branch in the perform range that branches out of the perform range to the address shown.
Recursive - There is a path from this perform range entrance, before reaching
the perform range exit, which leads to a PERFORM verb of the same perform range. The entry and exit addresses of the perform ranges
containing the recursive PERFORM verbs are shown.
No Exit - This perform range contains no path from the perform range
entrance to the perform range exit.
Null - This perform range contains no executable statements.
B C D E F G H I J
Source Address Return Over Fall Branch Recursive No Null
Entry - Exit Entry - Exit Cell -lap Thru Out To Call From Exit
Program-Id: CAO2DEMOK
001042-001044 003CB4-003D04 PSV=30
001046-001054 003D14-003D60 PVN=4 Yes
001052-001054 003D4C-003D60 PVN=4 Yes Yes 001049-001057 003D32-003DA0 PSV=29 Yes Yes
001059-001061 003DBC-003E0A PVN=3 Yes 003F14
001063-001065 003E24-003E7A PVN=2 Yes 003E94- 003EE0
001067-001069 003E94-003EE0 PVN=1 Yes 003E24-
003E7A 001071-001071 003EFA-003EFA YES
001074-001075 003F14-003F3C R15 Yes
001080-001082 003F68-003F92 YES 001034-001086 003C1E-003FA6 PVN=5 Yes Yes
Program-Id: LOOP-COMPUTE
001403-001419 004FBE-00528C PSV=8
Summary of Perform Ranges:L Yes YES YES YES YES YES
Altered VN Table
Statement Address Cell
Program-Id: CAO2DEMO
000527 000018A2 AVN 1
000559 00001A0E AVN 2
M N O
Optimizer Reports
44 User Guide
A
Legend for items E through J described below.
B
The source line numbers of the entrance and exit points for each PERFORM
range in the program. The table is sorted by the line number of the exit.
C
The hexadecimal addresses for each PERFORM range entrance and exit
point.
D
Includes a return cell for each range to provide, when possible, the address
of the location to which control returns following the PERFORM.
To determine the actual status of PERFORM exits, look at the contents of
their return cells in the TGT. With Detector, you will find actual PERFORM exit
settings very quickly. You will find information on the significance and use of
the VNs, PSVs, and R15 in PERFORM Return Address Analysis.
E
This column is used to inform you that a PERFORM range shares some code
with another range. The shared code may include the same entry or exit, be
a PERFORM range within a PERFORM range, or be overlapping.
If you specify MOFFSET, the message ***EXIT FROM PERFORMED
PARAGRAPH(S) prints on your program source listing to identify the exits for
each of the PERFORM ranges in this report.
In column E, Yes or blanks appear beside the PERFORM range.
F
The PERFORM EXIT FALL-THROUGH column indicates whether falling
through each PERFORM exit point is possible.
In analyzing each PERFORM range, Optimizer determines whether it is
logically possible to fall through the exit. In a structured PERFORM Range, it
should not be possible to fall through the exit point. However, if any of the
statements within a PERFORM range can be reached by a "fall-in" to the
entrance or a GO TO to any point within the range, it is possible for control to
fall through the PERFORM exit point.
Optimizer Reports
Chapter 2: Using Optimizer 45
While COBOL permits such FALL-THROUGHs, the program may be coded so
that it happens unintentionally; it is a hidden logic error and the cause may
be in another part of the program. The exit analysis in the PERFORM Range
Table helps you find and fix potential logic errors.
Note: There are a few rare conditions where an exit may be flagged as a
possible fall-through when it is not possible. For example, there may be an IF
statement, not in a PERFORM range, that immediately precedes a PERFORM
range entrance. If the true condition of the IF results in a GO TO while the
false condition results in NEXT SENTENCE there is a logical path falling into
the PERFORM range. In actual execution, however, the data may be such
that the false condition of the IF can never be taken.
In column F, Yes or blanks appear beside the PERFORM Range. Blanks
indicate that a fall-through is not possible.
G
The BRANCH OUT TO column identifies PERFORM ranges that have one or
more branches which branch out of the PERFORM range. In a structured
PERFORM range, all branching should be to locations contained within the
PERFORM range and the only branching out of the range should be at the
exit. For each "branch out" branch in each PERFORM range, the branch
destination is displayed as a hexadecimal address relative to the start of the
program. The faulty branch can be found by locating the paragraph whose
MOFFSET matches the hexadecimal address, and identifying the branch in
the PERFORM range that branches to that paragraph.
H
The RECURSIVE CALL FROM column identifies PERFORM ranges that are
called again while the PERFORM range is already active. For example,
PERFORM Range A calls B, which calls C, which calls A. While this can be done
in COBOL, if one is careful, it is generally not considered good programming
practice. For each recursive PERFORM range, each PERFORM range
containing a recursive call to this PERFORM range is listed by its entry and
exit addresses.
I
The NO EXIT column identifies PERFORM ranges where there is no path from
the entrance to the exit. Such PERFORM ranges are not well structured and
should be examined. A usual cause of this is a PERFORM range containing an
unconditional GOBACK. In column I, Yes or blanks appear beside the
PERFORM range.
Optimizer Reports
46 User Guide
J
The NULL column identifies PERFORM ranges which contain no code. This
may or may not indicate a problem. If the program is being implemented in
a top-down fashion, the code may be executable but not complete. In this
case, the null PERFORM range may be a stub not yet coded. On the other
hand, if the coding is complete, this represents either a forgotten stub that
needs to be coded or dead code which should be removed at the source level.
K
Program-ID identifies the main or nested program name in which the
PERFORM ranges are located.
L
Summary of PERFORM ranges. If this line says NO under each column, all
PERFORM ranges are well-structured.
The location of each ALTERed GO TO in the program is given by its:
M
Source line number.
N
Hexadecimal address.
O
The variable name (AVN) cell number also prints to help you find where the
ALTERed GO TO is currently pointing. This information is used in conjunction
with the Detector Report. See the discussion in PERFORM Return Address
Analysis.
Optimizer Reports
Chapter 2: Using Optimizer 47
Special Usage Note for CICS Programs
Optimizer identifies all flow-of-control paths in the program. For CICS programs,
this includes identifying implied branches from a CICS CALL to the GO TO
DEPENDING ON clause of a HANDLE command. Because of these implied
branches, there may be a number of recursive PERFORM ranges in the program
that Optimizer identifies. Optimizer defines a recursive PERFORM range in this
way:
1. A PERFORM statement transfers control to a specific range of paragraphs.
Call these paragraphs BLOCK A.
2. While performing BLOCK A, and before reaching BLOCK A's exit, a PERFORM
statement which transfers control to that same range of paragraphs (BLOCK
A) is executed.
This ensures that the entire PERFORM Range, BLOCK A, is recursive.
The following three examples show some types of recursion. Only the first two
examples are how Optimizer defines recursion.
Defined Recursion Examples
Example 1 Example 2
PN-BLOCK.
PERFORM SECTION-A. PERFORM SECTION-A.
. .
. .
. ─┐ ┌─ .
SECTION-A SECTION. │ │ SECTION-A SECTION.
. │ │ .
. │ │ ..... GO TO A1
. │entire │ .
A1. │ │ A1.
. │perform │ .
. │ │ ..... GO TO A2
. │range │ .
A2. │ │ A2.
. │ │ .
PERFORM SECTION-A. │ │ GO TO PN-BLOCK.
. ──┘ └── .
SECTION-B SECTION. SECTION-B SECTION.
. .
. .
. .
Optimizer Reports
48 User Guide
Nonrecursion Example
Example 3
PERFORM SECTION-A.
.
.
. ─┐
SECTION-A SECTION. │
. │
. │
. │ entire
A1. │
. │ perform
. │
. │ range
A2. │
. │
PERFORM A1. │
. ─┘
SECTION-B SECTION.
.
.
This last example, while demonstrating simple recursion, does not conform to
the Optimizer recursion definition. It does not perform the entire block of the
PERFORM range. Optimizer identifies it as an overlapping PERFORM range.
A special option is available from your CA customer support center for CICS
programs which exhibit recursive and/or fall-through PERFORM ranges and
which also do not have a path leading from the GO TO DEPENDING ON clause of
a HANDLE command to the entrance of an active PERFORM range. This special
APAR tells Optimizer to ignore the implied branches from the CICS calls in the
program to the GO TO DEPENDING ON statements of HANDLE commands.
WARNING! Use this special facility with extreme care. Unpredictable execution
results could occur if this special facility is used and there is a recursive path to
the PERFORM call by way of a HANDLE command.
Optimizer Reports
Chapter 2: Using Optimizer 49
COBOL Diagnostic Messages and Compiler Statistics Report
This report, specified at compile-time, provides direct compiler output. It
contains diagnostic messages regarding errors and warnings from the
compilation. The messages are not altered by Optimizer. However, they are
folded onto 80 columns for terminal viewing.
CA CAO2DEMO Page 57
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
LineID Message code Message text
125 IGYGR1216-I A "RECORDING MODE" of "F" was assumed for file "REPORT-OUT".
1404 IGYPG3113-W Truncation of high-order digit positions may occur due to
precision of intermediate results exceeding 30
digits.
Messages Total Informational Warning Error Severe Terminating
Printed: 3 2 1 * Statistics for COBOL program CAO2DEMO:
* Source records = 1488
* Data Division statements = 307 * Procedure Division statements = 544
End of compilation 1, program CAO2DEMO, highest severity 4.
Return code 4
Optimizer Reports
50 User Guide
Statistics Report
The final page of the Optimizer Enhanced Source Listing is the Statistics Report.
The following is a sample report showing the information provided and the
format:
CA CAO2DEMO Page 60 CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$ $ $ Optimizer/II - Optimization Results $
$ $
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ A B C $
$ Program Procedure Instructions $
$ $ $ Original 18940 14036 3087 $
$ Optimized 24068 16486 3793 $
$ Difference 5128- 2450- 706- $ $ Percent 27- 17- 23- $
$ $
$ $
$ Approximate amounts $
$ involved for - $
$ $
$ DETECTOR features D $
$ Bytes-Insts 2576 2576 659 $
$ Percent 14 18 21 $ $ $
$ ANALYZER features D $
$ Bytes-Insts 4370 4370 898 $ $ Percent 23 31 29 $
$ $
$ $ $ Expected optimization $
$ results without $
$ DETECTOR and/or ANALYZER E $ $ features $
$ Bytes-Insts 17122 9432 2212 $
$ Percent 10 33 28 $ $ $
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
FCAPP780I 3072 bytes should be reserved during execution for count tables.
Optimizer Reports
Chapter 2: Using Optimizer 51
A
This column gives the total size of the program in bytes. The figures here do
not include load module subroutines or dynamically allocated space.
B
The procedure size is measured from the beginning of the Q-routines, the
beginning of the Declaratives, or START (whichever occurs first) to the
starting address of the TGT (or the DAB if a RENT program).
C
The instruction count includes all instructions in the Procedure Division.
Note: These totals and percentages compare the optimized program against
the same program compiled with NOOPT. Remember that many of the
CA Optimizer/II optimization algorithms trade space for speed, so these
results are not necessarily a good predictor of CPU execution-time
performance.
D
If any Detector or Analyzer feature was specified for the compile/optimize
step, that feature's impact on the optimization results is described here.
E
This set of totals and percentages is an estimation of the expected
optimization results that might be obtained if you had not specified any
Detector and/or Analyzer options.
F
Represents the number of bytes by which you must increase your region at
execution-time so that Analyzer can store the count data it accumulates.
This figure is different for each program. You should be concerned with the
figure only if you intend to compute the exact storage requirements as
outlined in the Installation Guide.
Optimizer Reports
52 User Guide
SYM Report
When the SYM option is selected at compile time, the optimized listing is passed
directly to the COBOL listing postprocessor program IN25COB2 at the end of the
code generation phase of optimization. The postprocessor uses the information
in the optimized listing to update the PROTSYM file with symbolic information for
your program.
Output messages from IN25COB2 are written at the end of the optimized listing,
starting on a new page following the optimization results report.
CA CAO2DEMO Page 61 CA Optimizer/II r7 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
CAPP781I Symbolic post-processor output for program CAO2DEMO follows:
CAO2DEMO POST-PROCESSING ENDED, IN25COB2 RETURNED 00000000
IN25COB2 6.2 - 02/18/2004 10.25
SYM036 PASSED PARAMETER STATEMENTS
CAO2DEMO,LISTER=ALL,CUTPRINT=ALL
SYM010 PROCESSING HAS BEGUN FOR PROGRAM - CAO2DEMO
SYM006 LISTER=ALL REQUESTED
SYM007 CUTPRINT=ALL REQUESTED
NESTED PROGRAMS ID WS LS PD EP
------------------------------ ------ ------ ------ ------ ------
CAO2DEMO 000007 001132 000472 000477 001488
INITIALIZE-SOME-TABLES 001234 001244 000000 001273 001342
FORCING-THE-ABEND 001350 000000 000000 001361 001378
LOOP-COMPUTE 001385 000000 000000 001396 001421
PROCESS-PARMS 001429 000000 001439 001444 001487
SYM024 INPUT FILE PROCESSED
SYM020 SYMBOLIC FILE UPDATED SUCCESSFULLY
SYM021 71 SOURCE STATEMENTS SAVED
SYM022 90 TOTAL RECORDS INSERTED INTO SYMBOLIC FILE
SYM023 POST-PROCESSOR TERMINATED
Compiler Source Listing
The standard compiler source listing prints if you have not specified the Merged
Data Map (MMAP), the Merged OFFSET (MOFFSET), and the Merged
Cross-Reference (MXREF).
Optimizer Reports
Chapter 2: Using Optimizer 53
Merged Data Map (MMAP)
Because the Merged Data Map (MMAP) and MAP options are mutually exclusive,
you can only specify MAP if you have not specified MMAP. When you specify MAP,
the standard COBOL compiler data map prints.
Compiler Data Map (MAP)
CA CAO2DEMO Page 49
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77 Data Division Map
Data Definition Attribute codes (rightmost column) have the following meanings:
D = Object of OCCURS DEPENDING G = GLOBAL S = Spanned file E = EXTERNAL O = Has OCCURS clause U = Undefined format file
F = Fixed-length file OG= Group has own length definition V = Variable-length file
FB= Fixed-length blocked file R = REDEFINES VB= Variable-length blocked file Source Hierarchy and Base A Hex-Displacement Asmblr Data Data Def
LineID Data Name Locator Blk Structure Definition Data Type Attributes
7 PROGRAM-ID CAO2DEMO--------------------------------------------------------------------------------------------------*
125 FD REPORT-OUT. . . . . . . . . . . . . . . . . . QSAM FB
129 1 LINE-OUT. . . . . . . . . . . . . . . . . . . BLF=0000 000000 DS 0CL120 Group
130 2 FILLER. . . . . . . . . . . . . . . . . . . BLF=0000 000000 0 000 000 DS 120C Display
131 1 LINE-OUT1 . . . . . . . . . . . . . . . . . . BLF=0000 000000 DS 120C Display
136 77 FILLER. . . . . . . . . . . . . . . . . . . . BLW=0000 000000 DS 80C Display
139 77 FILLER. . . . . . . . . . . . . . . . . . . . BLW=0000 000050 DS 80C Display 142 77 ERROR-FLAG. . . . . . . . . . . . . . . . . . BLW=0000 0000A0 DS 1C Display
143 77 DATA-PICX10 . . . . . . . . . . . . . . . . . BLW=0000 0000A8 DS 10C Display
144 77 ROW-3D. . . . . . . . . . . . . . . . . . . . BLW=0000 0000B8 DS 2C Binary 145 77 COLUMN-3D . . . . . . . . . . . . . . . . . . BLW=0000 0000C0 DS 2C Binary
146 77 RANGE-3D. . . . . . . . . . . . . . . . . . . BLW=0000 0000C8 DS 2C Binary
148 1 PARAMETER-ONE . . . . . . . . . . . . . . . . BLW=0000 0000D0 DS 0CL12 Group 149 2 FILLER. . . . . . . . . . . . . . . . . . . BLW=0000 0000D0 0 000 000 DS 12C Display
151 1 PARMCHK-DATA. . . . . . . . . . . . . . . . . BLX=0000 000000 DS 0CL12 Group E
152 2 FILLER. . . . . . . . . . . . . . . . . . . BLX=0000 000000 0 000 000 DS 12C Display E 154 1 PARM-PASSED-BY-JCL. . . . . . . . . . . . . . BLW=0000 0000E0 DS 0CL19 Group G
155 2 PARM-MSG. . . . . . . . . . . . . . . . . . BLW=0000 0000E0 0 000 000 DS 8C Display G
156 2 PARM-FLAG . . . . . . . . . . . . . . . . . BLW=0000 0000E8 0 000 008 DS 8C Display G 157 2 PARM-MODE . . . . . . . . . . . . . . . . . BLW=0000 0000F0 0 000 010 DS 3C Display G
The Data Map appears as generated by the compiler with the following
exceptions:
■ If NODCRDISP is specified, the Dec-disp field is replaced by a field titled
Hex-Displacement.
■ Base Locators may cover more than 4 KB, because any base locators that are
not referenced are removed from your COBOL program.
Optimizer Reports
54 User Guide
Condensed Listing of the Optimized Object Code (OFFSET)
The Optimizer OFFSET that you specify at compile-time, is similar to the OFFSET
produced by the compiler. This is an example of an OFFSET specified at
compile-time:
CA CAO2DEMO Page 55 CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
A B C A B C A B C
STMTNO OFFSET VERB STMTNO OFFSET VERB STMTNO OFFSET VERB 000485 001618 PERFORM 000486 00161C PERFORM 000489 001624 IF
000489 00162C GO 000490 001630 SUBTRACT 000492 001642 PERFORM
000493 001646 PERFORM 000494 00164A PERFORM 000495 00164E PERFORM 000496 001652 PERFORM 000497 001656 PERFORM 000498 00165A PERFORM
000499 00165E PERFORM 000500 001662 PERFORM 000501 001666 PERFORM
000502 00166A PERFORM 000503 00166E PERFORM 000504 001672 PERFORM 000505 001676 PERFORM 000506 00167A PERFORM 000507 00167E PERFORM
000510 001682 GO 000513 00168E PERFORM 000514 00169E IF
000515 0016A8 MOVE 000516 0016AE CALL 000517 0016E6 PERFORM 000518 001702 PERFORM 000519 00170A DISPLAY 000520 001714 GOBACK
000527 001720 GO 000530 00172E OPEN 000531 00173E MOVE
000531 00174A PERFORM 000532 001752 CALL 000533 001774 CALL
000534 001780 CALL 000535 00178C CALL 000538 001798 ALTER
000541 0017A0 MOVE 000541 0017A6 PERFORM 000542 0017AA STRING
000548 0017BA MOVE 000549 0017C2 MOVE 000550 0017CA MOVE
000550 0017D0 PERFORM 000551 0017D4 MOVE 000552 0017DC MOVE
000559 0017F0 GO 000562 0017FA DISPLAY 000565 001804 ALTER
000568 00181C IF 000568 001824 GO 000569 001828 COMPUTE 000570 001838 ADD 000571 001848 MOVE 000572 00184C MOVE
000573 001850 MOVE 000574 001854 MOVE 000575 001858 MOVE
000576 001864 ADD 000576 001878 GO 000579 00187C MOVE 000582 001886 IF 000582 00188E GO 000583 001892 MOVE
000584 0018A2 ADD 000584 0018B6 GO 000587 0018BA MOVE
000590 0018D4 MOVE 000591 0018DA MOVE 000592 0018E0 INITIALIZE 000593 001900 INITIALIZE 000594 00195C INITIALIZE 000595 001962 INITIALIZE
000600 001A26 COMPUTE 000602 001A4E DIVIDE 000603 001A5C DIVIDE
000604 001A82 DIVIDE 000606 001AA2 SUBTRACT 000608 001AB8 MOVE
A
COBOL line number
B
Beginning location in the object module of the code of this verb
C
COBOL verb
Note: The merged OFFSET option, MOFFSET, is mutually exclusive of OFFSET
and always takes precedence over OFFSET. The OFFSET option suppresses the
LIST option. However, MOFFSET and LIST can both be specified.
Optimizer Reports
Chapter 2: Using Optimizer 55
Optimizer Procedure Map Object Listing (LIST)
The Optimizer LIST contains the same information as the compiler procedure
map, but it has additional refinements.
The object program is broken down into blocks of contiguous code. The
requirement that governs the formation of these blocks is that any branch that
goes to a point outside its own block must go to the beginning of the outside
block. The only way to get into a block from a location outside it is by branching
to its beginning.
The general registers used as base registers are assigned values, if necessary, at
the beginning of a block.
The most significant refinement is that the entire source statement, not just the
verb name, prints before the resulting object code. The procedure map and its
enhancements are described on the following page.
You produce the LIST by specifying the LIST option at compile-time.
CA CAO2DEMO Page 105
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
* REF 72 A BLOCK NUMBER 74 TO HERE FROM 24
FROM HERE TO 75 75
B BASE REGISTERS 7=BLW3 11=BLW6 2=COBV 4=CBL1 5=PBL1 3=PBL3 8=PBL4 10=PBL5 000842
000843 ******************************************************************
000845 C SECTION-M SECTION. 002E8A PN=59 EQU *
002E8A GN=155 EQU *
002E8A 50 00 D 1D8 ST 0,1D8(0,13) PSV=38 002E8E GN=156 EQU *
002E8E 58 20 9 05C L 2,05C(0,9) COBVEC
002E92 58 40 C 05C L 4,05C(0,12) CBL=1
002E96 58 E0 D 36C L 14,36C(0,13) XTAP+68
002E9A 05 0E BALR 0,14 PFLOW
000846
000847 IF LARGE-NAME = 'ABCD' DISPLAY 'ABCD'.
D002E9C 58 10 D 358 L 1,358(0,13) XTAP+48
002EA0 05 E1 BALR 14,1 XCOUNT=225
002EA2 00000380 DC X'00000380'
002EA6 D5 0E 7 620 4 138 CLC 620(15,7),138(4) LARGE-NAME OLIT1+64
002EAC 47 70 3 626 BC 7,626(0,3) GN=157(002ECA) 000847 DISPLAY
002EB0 58 10 D 358 L 1,358(0,13) XTAP+48
002EB4 05 E1 BALR 14,1 XCOUNT=226 002EB6 00000384 DC X'00000384'
002EBA 05 F0 BALR 15,0
002EBC 50 F0 D 334 ST 15,334(0,13) XTAP+12 002EC0 58 F0 2 02C L 15,02C(0,2) V(IGZCDSP )
A
Block Cross-Reference Information
The block cross-reference information facilitates debugging and provides
additional documentation.
Optimizer Reports
56 User Guide
In this example, block number 74 has only one entrance point (block 24),
and two exit possibilities (both to block 75).
B
Base Register Assignments
Optimizer displays all the general registers that have assignments that must
be maintained throughout a block at the beginning of that block along with
their base locators.
In some cases, a base register assignment that appears at the beginning of
a block is not used at all in that block. The reason for this is that when
Optimizer analyzes the global logic of a COBOL program to develop the block
structure described above, it is able to set up base register assignments at
the beginning of a block with foresight regarding how they shall be used in
blocks further down the line.
Base registers are loaded at the beginning of the block only if these registers
do not already contain the needed values.
This information is important if you are planning to patch a program and are
looking for a register to use. You must not use any registers that are listed
at the beginning of the block you are working in even if they are not used
within that block. Optimizer requires that they remain as they have been
assigned.
A shorthand notation designates the base locators. PBL refers to the
Procedure Base Locator for a procedure segment. CBL refers to the Constant
Base Locator for constant literals (system literal, program literals, etc.). OFL
refers to the overflow cells needed to address the portion of the TGT which
goes beyond the first 4 KB bytes. BLF, BLL, BLV, and BLW refer to Base
Locators for the File Section, Linkage Section, variably located data names,
and Working-Storage section, respectively.
C
Source Code
Each source listing statement prints before the object code for that
statement.
D
Object Code
The optimized object format is similar to the compiler-generated object code
listing.
Note: For convenience in locating referenced symbols, PNs and GNs are
always defined in ascending order on the listing. Also, LIST suppresses
SELECT.
Optimizer Reports
Chapter 2: Using Optimizer 57
Optimizer Selected Procedure Map (SELECT)
Optimizer allows you to specify certain groups of statements for which you want
a procedure map. This is very useful when you want a procedure map for only
certain sections of a program.
Below is an example of a partial procedure map selected for statements 867
through 877.
CA CAO2DEMO Page 59
CA Optimizer/II r8.5 1005AOX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.2 02 Mar,2004 15.0r77
SELECTED LISTING
BLOCK NUMBER 78 TO HERE FROM 26 FROM HERE TO 79
BASE REGISTERS 7=BLW3 10=COBV 11=CBL1 3=PBL3 8=PBL4
000867 000868 ******************************************************************
000870 SECTION-O SECTION.
00318C PN=61 EQU * 00318C GN=171 EQU *
00318C 50 00 D 1D0 ST 0,1D0(0,13) PSV=36
003190 GN=172 EQU * 003190 58 A0 9 05C L 10,05C(0,9) COBVEC
003194 58 B0 C 05C L 11,05C(0,12) CBL=1
003198 58 E0 D 36C L 14,36C(0,13) XTAP+68 00319C 05 0E BALR 0,14 PFLOW
000871
000872 MOVE 1 TO SUB. 00319E 58 10 D 358 L 1,358(0,13) XTAP+48
0031A2 05 E1 BALR 14,1 XCOUNT=241
0031A4 000003C0 DC X'000003C0' 0031A8 41 20 0 001 LA 2,001(0,0)
0031AC 40 20 7 6C8 STH 2,6C8(0,7) SUB
0031B0 58 10 D 358 L 1,358(0,13) XTAP+48
0031B4 05 E1 BALR 14,1 XCOUNT=242
0031B6 000003C4 DC X'000003C4'
000873
000874 PARAGRAPH-6000.
0031BA PN=62 EQU *
0031BA 58 E0 D 36C L 14,36C(0,13) XTAP+68
0031BE 05 0E BALR 0,14 PFLOW
000875 IF SUB GREATER THAN 5 GO TO PARAGRAPH-6100.
0031C0 58 10 D 358 L 1,358(0,13) XTAP+48 0031C4 05 E1 BALR 14,1 XCOUNT=243
0031C6 000003C8 DC X'000003C8'
0031CA 48 20 7 6C8 LH 2,6C8(0,7) SUB 0031CE 59 20 B 0E8 C 2,0E8(0,11) OLIT4+68
0031D2 47 D0 3 940 BC 13,940(0,3) GN=173(0031E4)
000875 GO 0031D6 58 10 D 358 L 1,358(0,13) XTAP+48
0031DA 05 E1 BALR 14,1 XCOUNT=244
0031DC 000003CC DC X'000003CC' 0031E0 47 F0 3 97E BC 15,97E(0,3) GN=174(003222)
0031E4 GN=173 EQU *
000876 INSPECT LIST-D (SUB) REPLACING ALL SPACES BY ZEROES. 0031E4 58 10 D 358 L 1,358(0,13) XTAP+48
0031E8 05 E1 BALR 14,1 XCOUNT=245
0031EA 000003D0 DC X'000003D0' 0031EE 8B 20 0 002 SLA 2,2
0031F2 1A 27 AR 2,7
0031F4 50 20 D 320 ST 2,320(0,13) TS3+0 0031F8 05 F0 BALR 15,0
0031FA 50 F0 D 334 ST 15,334(0,13) XTAP+12
0031FE 58 F0 A 044 L 15,044(0,10) V(IGZCIN1 )
003202 41 10 C 7C2 LA 1,7C2(0,12) PGMLIT+1822
003206 05 EF BALR 14,15
Optimizer Reports
58 User Guide
For each statement number, the entire Optimizer block that contains the number
is formatted in procedure map form. Multiple blocks are formatted if required.
Note: Optimizer ignores the SELECT option if you have also specified LIST. The
OFFSET and LIST options are mutually exclusive but, if you specify the SELECT
feature, you can specify both OFFSET and SELECT together and Optimizer
integrates their outputs. The selected procedure map statements override the
OFFSET. SELECT can also be specified with MOFFSET.
Chapter 3: Using Detector 59
Chapter 3: Using Detector
The Detector component of CA Optimizer/II is a programmer productivity tool
designed primarily for your test environment. It not only provides valuable
diagnostic information for abending applications, but also identifies problems
that might otherwise remain dormant until the application goes into production.
This chapter describes each of the debugging and diagnosis features of Detector
for your test environment. Extended Detector, which is described in the chapter
―Using Extended Detector,‖ provides diagnostic information and execution time
snapshots for applications executing in production. Together, these components
of CA Optimizer/II help to simplify diagnosis, reduce debugging time, and
improve the reliability of your applications.
Detector generates four types of reports:
■ The Abend report eliminates much of the searching and guess work involved
in problem diagnosis by providing key information in a clear and concise
format. Symbolic information, including the abending source statement and
formatted data values, is available for COBOL, PL/I, and Assembler
programs even if they have not been optimized.
■ The Intercepts report identifies data exceptions or decimal divide exceptions
in your optimized COBOL programs, allowing execution to continue after
Detector has reported the error and repaired the data.
■ The PARMCHK report identifies calls to optimized COBOL programs by callers
that have not provided the expected number of input parameters.
■ The Snap report provides a view of your program's data areas at any time
during execution by inserting a call to the snapshot program into your
application.
Symbolic Support
Detector reports can include symbolic information such as source statements
and variable names. Symbolic information is not required when using Detector
but can help to improve programmer productivity by reducing diagnosis time.
Symbolic information for your programs can be stored in two formats: PROTSYM
or CSL. If you have symbolic information in CSL format from an older version of
CA Optimizer/II, CA Optimizer, or CA SymDump Batch, this information can still
be used as input to Detector. However, CA Optimizer/II no longer writes
symbolic information to a CSL file. Instead, symbolic information is only stored in
PROTSYM format.
Detector Options
60 User Guide
To store symbolic information in your PROTSYM file during optimization, specify
SYM on the compile-time parameter list and include a PROTSYM DD statement
for your PROTSYM file. For non-optimized COBOL, Assembler or PL/I programs,
symbolic information can be stored in your PROTSYM file by executing one of the
listing postprocessors provided. For more information about storing symbolic
information in your PROTSYM file, see the Symbolic Guide.
If your symbolic (PROTSYM or CSL) file is defined in your installation defaults, it
is automatically searched by Detector for symbolic information without any
changes to your execution-time JCL. Otherwise, you must include a CAISYM DD
statement for your symbolic file or specify the SYMDSN option in CAIOPTS during
execution. Either of these methods cause Detector to search your symbolic file
for information.
Note: Your installation may have selected an alternate name for CAISYM, so
check with your system administrator before adding this DD name to your JCL.
Detector Options
When a COBOL program is optimized using the DTECT compile-time option,
Detector's abend monitoring feature is activated automatically whenever that
program is entered. Additional Detector features can also be activated for
individual programs using compile-time options. A variety of options are also
available to control the content, format, and destination of your Detector output
during execution.
The following table lists all the Detector options available to you at compile and
execution time:
Detector Options
Compile-time Execution-time View-time
DBGSLEEP
DTECT
FDCHECK
PARMCHK
PFLOW
SUBRNGCK
WSINIT
Standard Options
ACTONLY PGM
CEEDUMP PRTLIB
DBGAWAKE PRTREPT
DB2ACTIV REGMAX
DUMP SAVEHEAP
INTERCEPTS SNAP
PARMCHK SYMDSN
PFLOW
Formatting Options
ASMINST MRGDATA
BINFRMT MRGDSECT
FILES MRGFILES
FIRST128 MRGLINK
ASMINST
BINFRMT
FILES
FIRST128
GRPADDR
LINECNT
LINKAGE
LOCALSTOR
MEMMAP
MRGAUTO
MRGBASED
MRGCNTLD
MERGEDB
MRGDSECT
Detector Options
Chapter 3: Using Detector 61
Detector Options
Compile-time Execution-time View-time
GRPADDR MRGLOCAL
LINECNT MRGPARMS
LINKAGE MRGSTAT
LOCALSTOR MRGWORK
MEMMAP OCCURS
MRGAUTO SAVEAREA
MRGBASED SHOWHEAP
MRGCNTLD SHOWUNMRG
MERGEDB WORKSTOR
Data Management Control Blocks
BLOCKS IOB
DCB UCB
DEB
VSAM Control Blocks
ACB PLH
AMB RPL
AMBL VSAMIDX
MRGFILES
MRGLINK
MRGLOCAL
MRGPARMS
MRGSTAT
MRGWORK
OCCURS
SAVEAREA
SHOWHEAP
SHWUNMRG
WORKSTOR
Detector has facilities to do the following:
■ Enable and disable the XCOUNT, PFLOW, and SUBRNGCK options.
■ Detect invalid record area references.
■ Correct and intercept 0C7 and 0CB abends.
■ Parameter list validity checking.
■ Abend or SNAP paragraph flow analysis of the last ―n‖ paragraphs.
■ Generate reports at specified points in the program.
■ Report customization.
■ Subscript Range Checking.
■ Uninitialized Working Storage Detection.
DBGAWAKE and DBGSLEEP are the options used by the facility which enable and
disable the XCOUNT, PFLOW, and SUBRNGCK options. Used at compile-time,
DBGSLEEP will place the aforementioned options in a dormant state. At
execution-time, specify DBGAWAKE to have these options in effect.
The facility which detects invalid record area references is controlled by the
FDCHECK option. Specify FDCHECK at compile-time to turn on this facility.
Detector Options
62 User Guide
Specify INTERCEPTS at execution-time to have the 0C7 and 0CB abend
interception and correction facility in effect. This facility reports on any 0C7 and
0CB abends, temporarily corrects the problem, and allows execution to continue.
This lets programmers catch multiple problems with a single execution.
The parameter list validity checking facility can be used at compile or
execution-time by specifying the PARMCHK option in the JCL. Using this facility,
you are able to verify that the number of parameters passed to the application
program is correct.
The Abend or SNAP paragraph flow analysis facility can be used at compile or
execution-time. It checks the last ―n‖ paragraphs of the program. Specifying
PFLOW turns on this facility.
Using SNAP at execution-time allows you to analyze specific points in a program.
Specify the SUBRNGCK option during compile-time to use the subscript range
checking facility. This option ensures that subscript and index values are within
their specified range.
Use WSINIT at compile-time to detect uninitialized working storage.
Reports are customized by specifying a variety of options during execution.
FILES, FIRST128, LINECOUNT, LINKAGE, LOCALSTOR, MEMMAP, SAVEAREA,
and WORKSTOR plus all the VSAM control block and data management control
block options control report customization.
You can freely combine Detector compile-time options with COBOL II compiler
options and other CA Optimizer/II options. The preceding options have both
compile-time and execution-time uses. The execution-time applications are
discussed in the chapter ―Using Options‖ which contains a complete listing of all
CA Optimizer/II options, their defaults, usage, and special considerations.
The following table summarizes how you can use Detector's more commonly
used facilities:
Compile-time specify Execution-time specify Description
SUBRNGCK Report on subscript or index range
violations.
WSINIT Identify 0C7s and 0CBs that may have
been caused by an uninitialized
working storage item.
FDCHECK Identify references to record areas of
unopened files or at end-of-file.
PARMCHK Validity-check each option list passed
JCL
Chapter 3: Using Detector 63
Compile-time specify Execution-time specify Description
to this optimized program.
A CALL to CAODSNAP at
each point where you want
a snapshot
SNAP nnnnn
where nnnnn is the maximum
number of snaps.
Collect snapshots of your program at
specific points during execution.
DTECT or any other
detector option
INTERCEPTS nnnnn
where nnnnn is the maximum
number of intercepts.
Intercept data exceptions and decimal
divide exceptions.
PFLOW List the names of the most recently
executed paragraphs at abend or
SNAP.
Any detector option MEMMAP OFF
PFLOW OFF
Suppress:
■ The display by Detector of the
Memory Map (TGT and PGT).
■ The display by Detector of the last
'n' paragraphs executed even if
PFLOW was specified at
compile-time.
JCL
To invoke Detector, you must first specify one or more Detector options in the
compile/optimize step. This section provides information and JCL examples on
compile-time and execution-time.
Compile-time
To execute the Optimizer component, refer to a copy of your installation's
cataloged procedures for a compile/optimize and link (or compile/optimize, link,
and go).
A standard procedure called CAIOPTII has been provided. The following example
shows how to invoke this procedure for subscript range checking and detection
of invalid record area references.
//STEP1 EXEC CAIOPTII,COBOPT='SUBRNGCK,FDCHECK'
JCL
64 User Guide
In the previous example, COBOPT is a symbolic option defined in the CAIOPTII
procedure. If the procedure at your data center does not have a symbolic option
for the PARM options, you can pass Detector options in the same way you specify
compiler options.
//STEP1 EXEC CAIOPTII (or whatever your procedure name is)
// PARM.COB='SUBRNGCK,FDCHECK'
To write symbolic information for your program to a PROTSYM file, include the
SYM option on the parameter list and add a PROTSYM DD statement for your
PROTSYM file to your JCL for the compile step.
Execution-time
When the DTECT option is specified at compile-time, the Detector executables
must be available at execution-time. If CAI.CARXLOAD is in linklist, no changes
are required to your STEPLIB or JOBLIB DD statements. Otherwise, you must
add these libraries to STEPLIB or JOBLIB.
Detector can also be customized at execution time using any of the following
optional DD statements:
DD Statement Description
CAISYM DD Use this optional DD statement to identify a symbolic
(PROTSYM or CSL) file which has not been defined in your
installations defaults. Your installation may have selected an
alternate name for the CAISYM DD, so check with your
system administrator before updating your execution-time
JCL. You can alternatively specify the SYMDSN option in
CAIOPTS to dynamically allocate your symbolic file.
CAIPRTLB DD If your Detector output is being written to a CAIPRINT
repository, this DD statement can be used to override the
default dsname for your repository file. You can alternatively
specify the PRTLIB option in CAIOPTS to dynamically allocate
your repository or allow user exit CAOCUPRT to select the
appropriate repository for your application. Detector output
is only written to the repository when PRTREPT REPOS or
PRTREPT BOTH is specified.
CAIPRINT DD When PRTREPT PRTDD or PRTREPT BOTH is specified,
Detector writes its reports to the CAIPRINT DD. If this DD is
not present in your JCL, it dynamically allocates to SYSOUT.
Add this DD statement to your JCL only when you need to
direct Detector output to a different destination. You can
alternatively allow user exit CAOCUDSN to select the
appropriate CAIPRINT destination for your application.
JCL
Chapter 3: Using Detector 65
DD Statement Description
CAIOPTS DD Use this optional DD statement to override your installation
defaults for Detector.
Detector Reports
66 User Guide
Detector Reports
Five reports are described in this section. Two of these reports, the CAIOPTS File
Processing report and the Execution Monitor Summary are produced by the
Execution Monitor. The Execution Monitor is the component of the
CA Optimizer/II runtime system that establishes the environment for Detector
and Analyzer. The CAIOPTS File Processing report displays the input options you
specified, if any, to control Detector and Analyzer execution. The Execution
Monitor report displays the options in effect during the execution of your
application under Detector and/or Analyzer. The other three reports, Abend,
Intercepts, and Snap are Detector reports; they are described below.
■ Detector Abend Report
Detector prints this report whenever an abend occurs during program
execution. This includes abends that were due to a subscript range violation
(SUBRNGCK) and detection of invalid record area reference (FDCHECK). The
report contains:
– Diagnostic information based on the type of abend.The actual source
statement on which the abend occurred, if symbolic information for the
abending program was available to Detector. Otherwise, only the
machine instruction and its operands display.
The names and values of the data items referenced by the abending
statement are also displayed if symbolic information is available from a
PROTSYM file, or from a CSL file for which MXREF was specified during
optimization.The machine instruction that caused the abend, and the
instruction operands (optional).
– Addresses and other specifics pertinent to the aben
– The module call sequence showing the hierarchy of programs which
invoked the abending program.
– Compile information, such as the compile date/time, the compiler
version, and compile options.
Optimization information, if the program was optimized, such as the CA
Optimizer or CA Optimizer/II version and optimization options.
Symbolic information, if available, such as the names of the symbolic file
and member, the compile date and time of the member, and the type of
symbolic file (PROTSYM or CSL).
Link information, such as the link date/time, the library that the program
was loaded from, the load module length, and the link options.
– The contents of the abending program's registers at abend.
– An automatic interpretation and optional display of the following data
management control blocks: DCB, DEB, UCB, IOB, ACB, AMBL, AMB,
RPL, and PLH.
Detector Reports
Chapter 3: Using Detector 67
– Displays of the current record areas of all open files (optionally displays
only the first 128 bytes), Working-Storage Section, Local-Storage
Section, and Linkage Section, if there is one.
– An optional display of the memory map (TGT, PGT, DSA).
– The contents of the PSV and VN cells and Register 15, which are referred
to in the PERFORM Range Table printed at compile-time.
– A Paragraph Flow report showing the last paragraphs executed up to the
time of the abend (optional).
– An optional display of Language Environment heap storage.
– The data control blocks of all open files that Detector has not yet
reported on (optional).
– The Save Area Trace report showing the standard chain of register areas
(optional).
■ Detector Intercepts Report
Detector generates this report when a data exception (0C7) or decimal
divide exception (OCB) occurs during the execution of your program. When
you specify the INTERCEPTS feature at execution-time, the 0C7 and 0CB
interrupts are handled by Detector.
Detector prints a short report describing the exception and its cause. Then
Detector adjusts the data so that the program can continue executing.
■ Detector Snap Report
A Snap report provides you with a snapshot of your optimized program at
strategic points during execution.
To produce a Snap report, you must:
1. Add a CALL 'CAODSNAP' statement to your program at the point of
execution that you want the SNAP to take place.
2. Specify the SNAP option, 'SNAP nnnn', at execution-time, where nnnn
specifies the number of SNAP CALLS to take for all programs in the
application.
The Snap report contains the same information as the Abend report except
the Snap omits the data identifying the abend and the called module
sequence for multimodule environments.
The Detector reports are discussed in the following sections.
Abend Report
68 User Guide
Abend Report
The Detector Abend report prints when an abend occurs. It begins with some
specific information pertaining to the abend itself.
******************************
* * S-0C7 * A
* A B E N D *------------ *
* * CAOEDEMO * B
******************************
********************************************************************************** * CEE3207S The system detected a data exception (System Completion *
*C Code=0C7). *
********************************************************************************** ********************************************************************************************
*D DESCRIPTION: S0C7 - DATA EXCEPTION: A NUMERIC FIELD CONTAINED NON-NUMERIC *
* DATA. * * *
* POSSIBLE CAUSES: 1. NUMERIC DATA WAS NOT INITIALIZED, OR VARIABLE DATA NOT *
*E NUMERIC. * * 2. ATTEMPTED TO PERFORM A DECIMAL ARITHMETIC INSTRUCTION ON *
* EITHER AN UNSIGNED OR UNPACKED FIELD. *
* 3. A SUBSCRIPT OR INDEX CONTAINED AN INVALID VALUE: * * A. FAILURE TO INITIALIZE A SUBSCRIPT. *
* B. INITIALIZED A SUBSCRIPT TO ZERO, BUT FAILED TO ADD 1 *
* BEFORE ITS FIRST USE. * * C. NOT REINITIALIZING A SUBSCRIPT AFTER A LOOP USING IT. *
* D. SUBSCRIPTING BY INPUT DATA THAT WAS NOT CHECKED FIRST FOR *
* A VALID RANGE OF VALUES. * * E. COMPUTING THE SUBSCRIPT WITHOUT CHECKING THE RESULTS FOR *
* A VALID RANGE OF VALUES. *
.
.
* *
*F TO CORRECT: 1. REVIEW AND CORRECT THE ABOVE STATED POSSIBLE CAUSES. *
* 2. REVIEW THE LAST KNOWN I/O OR CALL INFORMATION. IT IDENTIFIES *
* THE PROGRAM AT THE OFFSET WHERE THE LAST KNOWN I/O OR CALL WAS *
* MADE. *
* 3. REVIEW THE Z/OS BREAKING EVENT ADDRESS LINE. IF PRESENT, IT *
* IDENTIFIES THE PROGRAM AT THE OFFSET WHERE THE BRANCH *
* ORIGINATED. * *********************************************************************************************
A
Displays the system or user abend code.
B
Displays the abending module name.
C
Displays the LE message associated with the ABEND, if LE is active and a
message is available.
D
Displays a description of the abend code.
If the abend code indicates a DB2 ABEND (for example, S04E or S04F), the
DB2 reason code is displayed with the appropriate description.
Abend Report
Chapter 3: Using Detector 69
E
Displays a list of possible causes for the ABEND.
F
Displays suggested strategies for solving the problem.
If the ABEND occurs in a DB2 application, the DB2 return code, SQLCODE is
displayed with the associated messages.
The abending statement information follows the diagnostic box:
**********************
* ABENDING STATEMENT *
**********************
A PROGRAM: CAOEDEMO OFFSET: 003D78 LINE: 001285
001285 MOVE MASK1 TO BINARY-1 B
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION
------ --------------------------- --------------------------- -------------------- C 000329 03 MASK1 ALL '*' X(2)
000178 03 BINARY-1 +1 S9(4) BINARY
A
Displays the name of the program that contains the abending statement, the
offset into the program for that statement, and line number of the
statement.
If the program was compiled using PL/I, this line is followed by a line
displaying the name of the procedure that contains the abending statement
and the offset into the procedure for that statement.
B
Displays the abending COBOL, PL/I, or Assembler source statement,
including the line number from the source listing, if symbolic information is
available for the program,
The LISTLINE option lets users provide an additional context for the source
statement at ABEND, snap, or transfer. The value of the option is used to
determine the number of additional source listing lines to display before and
after the abending, snap, or transfer statement. If the LISTLINE option is
nonzero, the specified number of source listing lines leading up to the
statement is displayed. This is followed by up to ten lines of the abending,
snap, or transfer statement (including comment lines), with the first line
delineated by dashed lines. Then the specified number of source listing lines
following the statement is displayed. If the LISTLINE option is zero, up to ten
lines of the abending, snap, or transfer statement are displayed (excluding
comment lines for COBOL and Assembler programs).
Abend Report
70 User Guide
C
Displays the COBOL or PL/I variable names referenced by the abending
source statement. This is available only if symbolic information is obtained
from a PROTSYM file, or from a CSL if the XREF option was used when the
CSL member was created.
The abending instruction is then displayed, followed by its operands. For COBOL
and PL/I programs, this information is suppressed when the ASMINST option is
set to OFF:
ABENDING INSTRUCTION A 4F40 D4B8 CONVERT
OPERAND: REG 4 B VALUE: 00000002
OPERAND: TEMP STORAGE CELL DSA DISP 0004B8 VALUE: 0000000000000CC5 C <-- NOT NUMERIC
A
Displays the machine instruction that caused the ABEND.
B
Displays the instruction operands for the abending instruction. If possible,
the operands are related back to an area in the abending program.
C
Displays the specific cause for the ABEND, if known.
The abend page ends with address information that may be helpful in debugging
the ABEND.
INTERRUPT OCCURRED AT ADDRESS B6304686 AT OFFSET +003D7E IN PROGRAM CAOEDEMO A
ENTRY POINT ADDRESS IS 36300908 AT OFFSET +000000 IN PROGRAM CAOEDEMO B
LAST KNOWN I/O OR CALL OCCURRED AT ADDRESS 36301CDE AT OFFSET +0013D6 IN THE Z/OS BREAKING EVENT INFORMATION IS NOT AVAILABLE. D
A
Displays the absolute address and program offset where the interrupt
occurred. If the abending program is PL/I, the procedure offset is also
displayed.
B
Displays the absolute address and program offset of the entry point for the
abending program.
Abend Report
Chapter 3: Using Detector 71
C
Displays the absolute address and program offset from which the last known
I/O or CALL was made. If the abending program is PL/I, the procedure offset
is also displayed. Alternatively, it indicates the status if the last I/O or CALL
information is not available.
D
Displays the absolute address and program offset of the last z/OS breaking
event (from the breaking-event-address register). If the abending program
is PL/I, the procedure offset is also displayed. Alternatively, it states if the
breaking event information is not available.
The Offending Instruction
In the case of program check interruptions (0Cx), Detector reports on the
particular instruction which caused the abend with as much supporting
information as possible.
Detector provides additional information for:
■ Protection
■ Addressing
■ Data
■ Fixed-point overflow
■ Fixed-point divide
■ Decimal overflow
■ Decimal divide
■ Exponent overflow
■ Significance
■ Floating-point divide
Detector cannot always provide further analysis of the instruction, especially
with the following exceptions:
■ Operation
■ Privileged operation
■ Execution
■ Specification
Abend Report
72 User Guide
Module Call Sequence
The next block of information is of interest if the application comprises multiple
program modules. It lists the calling sequence of programs which resulted in the
execution of the program which produced the abend.
************************ * MODULE CALL SEQUENCE *
************************
A B C D E F G H LOAD PROGRAM PROGRAM ENTRY COMPILE VER/
MODULE PROGRAM/PROCEDURE ADDRESS LENGTH ADDRESS DATE TIME LANGUAGE REL
-------- ---------------------------- -------- ------ -------- -------- ------ --------- -----
SYSTEM 00000000 000000 36300908 ASSEMBLER
CALLED CEE CEE 00000000 000000 00000000 ASSEMBLER CALLED CAOEDEMO CAOEDEMO 36300908 004AA8 36300908 14 MAR,2008 16.38.30 COB Z/OS 3.4.1
(ABENDED)
A
The load module name in which the called program resides.
B
The name of the called program. For COBOL and Assembler, this is the
CSECT name. For PL/I, this is the name of the active procedure.
C
The storage address of the start of the called program.
D
The length of the called program.
E
The storage address of the entry point of the called program.
F
The date and time of compilation.
G
The source language in which the called program is coded.
H
The version of the COBOL or PL/I compiler used for compilation.
Note: The actual register Save Area Trace is at the end of the Detector Abend
report. Reference the Save Area Trace if you want to know the actual contents of
the registers when control was passed from program to program.
Abend Report
Chapter 3: Using Detector 73
COBOL Reports
This section describes the information provided by Detector for COBOL
programs.
Program Statistics
For each program in the report, this report contains statistics about the compile,
link, and symbolic postprocessing used when the program was built.
******************** * PROGRAM CAOEDEMO *
********************
A COMPILED ON 14 MAR,2008 AT 16.38.30 WITH COBOL FOR Z/OS 3.4.1
COMPILE OPTIONS:ADV, APOST, NOAWO, DATA(24), NODBCS, NODECK, NODUMP, DYNAM,
NOFASTSRT, NOLIB, LIST, MAP, NONAME, NONUMBER, OBJECT, NOOFFSET, NOOPTIMIZE, NUMPROC(PFD), RENT, NOSEQUENCE, SOURCE,
NOSSRANGE, NOTERM, NOTEST, TRUNC(STD), NOVBREF, NOWORD, XREF,
ZWB
B
SYMBOLIC INFORMATION RETRIEVED FROM USER01.PROTSYM
MEMBER: CAOEDEMO DATE: 14 MAR,2008 TIME: 16.38.30 TYPE: PROTSYM
C
LINKED ON 14 MAR 2008 AT 16:38:33
LOAD LIBRARY: USER01.LOAD
MODULE LENGTH: 000056F8 (DECIMAL 22,264)
LINK OPTIONS: AC(0), AMODE(31), NOOVLY, NORENT, NOREUS, RMODE(24)
A
This section contains compile statistics, including the date and time of
compilation, the compiler and release information, and the options used.
B
This section contains the CA Optimizer/II statistics, including the version
used and the options specified during optimization.
C
When symbolic information is used to format the report, this section
identifies the name of the symbolic file, and the date and time of the
symbolic listing used.
D
Link-edit information including the date and time that the load module was
created, the name of the load library from which the program was loaded,
the length of the module, and the linkage editor options used.
Data Division Displays
The Data Division Displays section discusses the following displays:
■ File Section Display
■ Working-Storage Section, Local-Storage Section and Linkage Section
Displays
Abend Report
74 User Guide
File Section Display
Detector displays the status and the current record contents of each open data
file defined to the COBOL program. If it is a sequentially accessed VSAM file,
Detector also displays the contents of the previous record.
****************
* FILE SECTION *
****************
A
DDNAME=SYSPRINT DSORG=PS QSAM BUFNO=1 UNIT=3390,UCB VOL=SER=MVR14C
DSN=MIKED.OPT31GO.JOB04431.D0000102.? RECFM=FB
STATUS(OPEN) B USAGE(OUTPUT) LRECL=120 BLKSIZE=120
RECORDS PROCESSED =1 C
CURRENT FILE STATUS = 00 SUCCESSFUL D E
CONTENTS OF CURRENT LOGICAL RECORD
---------------------------------- LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION
------ -------------------------- -------------------------------- ---------------------------------------------
000129 01 LINE-OUT BLF=0000+000000 (0E7FFF88) 000130 03 FILLER * * X(120)
(+000032) * CA-OPTIMIZ*
(+000064) *ER/II * (+000096) * *
000131 01 LINE-OUT1 * * X(120)
(+000032) * CA-OPTIMIZ* (+000064) *ER/II *
(+000096) * *
The File Section area of the Detector report lists information for each file, when
applicable:
A
The data management control blocks are interpreted and displayed here in
KEYWORD=value format. They are self-explanatory or for review.
B
This status line displays current file's status (OPEN|CLOSED); usage
(INPUT|OUTPUT|WORK), and access method I/O type
(QSAM|VSAM|BSAM|BPAM, and so on).
C
Number of records processed. On a READ-WRITE file this number represents
the total I/O count to this file. OS/VS COBOL Report-Writer files display a
zero here. This number actually represents the number of times a READ or
WRITE verb was executed for this file.
D
The current file status, if the file is open.
Abend Report
Chapter 3: Using Detector 75
E
The contents of the current logical record is displayed. If the FIRST128
option was specified, only the first 128 bytes of the current logical record are
displayed in both this report and the Open Files report. If the MRGFILES
option is ON, the data is displayed in merged format. Otherwise, it is
displayed in dump format.
For more information about the merged and dumped data formats, see
Merged Versus Dumped Data Displays (see page 128).
F
If the file is a sequentially accessed VSAM file, the contents of the previous
record are displayed (not shown).
Working-Storage Section, Local-Storage Section and Linkage Section Displays
Displays of the Working-Storage Section, Local-Storage Section and the Linkage
Section are given in the Detector Abend report.
The following is an example of a Linkage Section Display:
*******************
* LINKAGE SECTION * *******************
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION ------ ----------------------------- -------------------------------- -------------------------------------
000399 01 PARMS BLL=0001+000000 (36310E68)
000400 03 PARM-LENGTH +1 S9(4) BINARY 000401 03 PARM-DATA ? X'E8' X(12)
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION ------ ---------------------------- -------------------------------- -------------------------------------
001353 01 INPUT-PARM BLL=0002+000000 (365864B0)
001354 03 INPUT-PARM-LENGTH +1 S9(4) BINARY 001355 03 INPUT-PARM-DATA ? X'B38C00000000000000000000' X(12)
If the MRGWORK (for Working-Storage), MRGLOCAL (for Local-Storage), and
MRGLINK (for Linkage Section) options are on, the data are displayed in merged
format. Otherwise, they are displayed in dump format.
For more information about the merged and dumped data formats, see Merged
Versus Dumped Data Displays (see page 128).
Abend Report
76 User Guide
Register Contents
Detector displays the general registers and floating-point registers for the
abending program.
If the contents of a general register can be related directly to a base address and
displacement, the base address and displacement are shown. For COBOL II,
COBOL/370, COBOL for MVS and VM, COBOL for OS/390 and VM, or Enterprise
COBOL for z/OS and OS/390, the base addresses may appear as:
■ BLF nnnn (Base Locator-FILE Section)
■ BLW nnnn (Base Locator-WORKING-STORAGE Section)
■ BLL nnnn (Base Locator-LINKAGE Section)
■ BLK nnnn (Base Locator-LOCAL-STORAGE Section)
■ BLX nnnnn (Base Locator for externally located data)
■ progname (signature code which stats at relative location 0 of the program)
■ TGT (Task Global Table)
■ PGT (Program Global Table)
■ DSA (Dynamic Save Area)
For OS/VS COBOL the base address may appear as:
■ BL
■ BLL
■ INIT1
■ TGT
Abend Report
Chapter 3: Using Detector 77
A blank line following the register display indicates that the origin of the register
contents cannot be determined.
**********************
* REGISTERS AT ABEND * **********************
GENERAL REGISTERS:
R0 36586520 DISP +A99B50 IN BLL 0002
R1 365864A8 DISP +000478 IN DSA R2 0001D0B8 DISP +000000 IN BLW 0000
R3 000360B8 DISP +000000 IN BLW 0019
R4 00000002
R5 B630409E DISP +003796 IN PROGRAM CAOEDEMO
R6 36301C76 DISP +00136E IN PROGRAM CAOEDEMO
R7 00000000
R8 000340B8 DISP +000000 IN BLW 0017
R9 0001B038 DISP +000000 IN TGT
R10 36300A70 DISP +00006C IN PGT
R11 3630456E DISP +003C66 IN PROGRAM CAOEDEMO
R12 36300A04 DISP +000000 IN PGT
R13 36586030 DISP +000000 IN DSA R14 B6301CE0 DISP +0013D8 IN PROGRAM CAOEDEMO
R15 00000000
FLOATING-POINT REGISTERS:
FPC 00000000
FR0 493202EA E0000000 1.342483 E+10 FR8 00000000 00000000 0.0
FR1 00000000 00000000 0.0 FR9 00000000 00000000 0.0 FR2 4E000000 03923FD1 5.991624 E+07 FR10 00000000 00000000 0.0
FR3 00000000 00000000 0.0 FR11 00000000 00000000 0.0
FR4 4E000000 00025EF4 155380 FR12 00000000 00000000 0.0 FR5 00000000 00000000 0.0 FR13 00000000 00000000 0.0
FR6 00000000 00000000 0.0 FR14 00000000 00000000 0.0
FR7 00000000 00000000 0.0 FR15 00000000 00000000 0.0
If the basic floating-point extensions of OS/390 are installed on your system,
Detector displays the floating-point control register and floating point registers 0
through 15. Otherwise, Detector displays floating-point registers 0, 2, 4, and 6
(as shown).
Abend Report
78 User Guide
Memory Map Display
The following is a display of the memory map, which consists of TGT, PGT and,
for some releases of COBOL, the DSA. For COBOL II or COBOL/370, the PGT
display includes the Constant Global Table (CGT). For COBOL for MVS and VM,
COBOL for OS/390 and VM, and Enterprise COBOL for z/OS and OS/390, the
display includes the DSA.
**************
* MEMORY MAP *
**************
DSA 36586030 LENGTH 000004F0 (DECIMAL 1,264)
ADDRESS OFFSET
36586030 000000 00104001 36313360 00000000 B6301CE0 00000000 36586520 365864A8 000157FC *.. ....-.......\...........y....* 36586050 000020 0001B38C 00000000 B630409E 36301C76 00000000 000340B8 0001B038 36300A70 *.......... ........... .........*
36586070 000040 3630456E 36300A04 00000000 36586520 00000000 00000000 36586030 0001B038 *...>......................-.....*
36586090 000060 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 365860B0 000080 00000000 21000000 00000003 00000000 B6301CE0 00000000 36586520 365864A8 *...................\...........y*
365860D0 0000A0 36304214 363041F8 00000002 B630409E 36301C76 00000000 000340B8 0001B038 *.......8...... ........... .....*
365860F0 0000C0 36300A70 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 36586110 0000E0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................*
LINES 00000100-00000140 SAME AS ABOVE
. .
.
TGT 0001B038 LENGTH 000003E8 (DECIMAL 1,000) ADDRESS OFFSET
0001B038 000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................*
0001B058 000020 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 0001B078 000040 00000000 00000000 F3E3C7E3 00000000 06000000 64020260 36582100 000157FC *........3TGT...........-........*
0001B098 000060 0001B420 00000001 00084927 00000000 00000000 0001B930 00000000 00000000 *................................*
0001B0B8 000080 363129C0 000003E8 00000000 00000000 00000002 00000005 E2E8E2D6 E4E34040 *...{...Y................SYSOUT * 0001B0D8 0000A0 C9C7E9E2 D9E3C3C4 00000000 00000000 00000000 00000000 00000000 00000000 *IGZSRTCD........................*
0001B0F8 0000C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................*
0001B118 0000E0 00000000 00000000 36300A04 00000000 0001B3BC 365823F0 36301107 00000000 *.......................0........* .
.
.
PGT 36300A04 LENGTH 00000A60 (DECIMAL 2,656)
ADDRESS OFFSET
36300A04 000000 05F5E100 3B9ACA00 000186A0 00002710 00000001 00000000 40404040 40404040 *.5........f............. *
36300A24 000020 40404040 40404040 40404040 40404040 40404040 40400000 00000000 00000000 * ..........*
36300A44 000040 00000000 000C0000 0000000C 0000000F F0F0F0F0 F0C00000 36300A70 36301504 *................00000{..........*
36300A64 000060 36302556 36303564 3630456E 36301552 3630183C 36301DFC 363020EA 36302196 *...........>...................o* 36300A84 000080 36302376 36302556 363025F2 3630276C 363028F0 36302A46 36302AC4 36302C0A *...........2...%...0.......D....*
36300AA4 0000A0 36302C28 36302E0E 36302EC0 36302F14 36303068 363030AE 363036E8 363036A4 *...........{...............Y...u*
36300AC4 0000C0 36303B68 36303C12 363040B2 36303CB2 36303CF6 36303D4A 36303D9E 36303DF2 *.......... ........6...¢.......2* 36300AE4 0000E0 36303E46 36303E9A 363037E6 3630385C 36303914 363039DC 36303A22 36303A76 *...........W...*................*
Abend Report
Chapter 3: Using Detector 79
To interpret the Memory Map Display, see the listing of the memory maps
printed after the compiler source listing. At compile/optimize time,
CA Optimizer/II provides three displays: a PGT memory map, a TGT memory
map (shown below) and a DSA memory map (for IBM COBOL for MVS and VM,
IBM COBOL for OS/390 and VM, and IBM Enterprise COBOL for z/OS and OS390
compiles). These offsets (TGTLOC) match up directly with the column of offsets
on the Memory Map display.
PGMLOC TGTLOC TGT ** FIXED ** MEMORY MAP PGMLOC TGTLOC TGT ** VARIABLE ** MEMORY MAP
00000000 RESERVED - 72 BYTES 00000120 BACKSTORE FOR SYMBOLIC REGISTERS 00000048 TGT IDENTIFIER 00000120 BACKSTORE FOR OPTIMIZER REGISTERS
0000004C RESERVED - 4 BYTES 00000120 TGT OVERFLOW CELLS
00000050 LEVEL NUMBER 00000120 BASE LOCATORS FOR SPECIAL REGISTERS 00000051 RESERVED 3X 00000128 BASE LOCATORS FOR WORKING-STORAGE
00000054 SWITCH 00000144 BASE LOCATORS FOR LINKAGE-SECTION
00000058 ADDRESS OF RUNCOM AL4 00000150 BASE LOCATORS FOR FILE SECTION 0000005C ADDRESS OF COBVEC 00000154 BASE LOCATORS FOR VARIABLY LOCATED DATA
00000060 POINTER TO PROGRAM DYNAMIC BLOCK TABLE 00000154 BASE LOCATORS FOR EXTERNAL DATA
00000064 NUMBER OF FCB CELLS 00000158 BASE LOCATORS FOR ALPHANUMERIC TEMPS 00000068 WORKING STORAGE LENGTH 00000158 CLLE ADDRESS CELLS FOR CALL
0000006C RESERVED - 4 BYTES 00000160 USE FOR DEBUGGING AREA
00000070 ADDRESS OF IGZESMG WORK 00000160 FDUMP-TEST INFORMATION AREA 00000074 ANCHOR FOR GETMAIN 00000160 VARIABLE NAME (VN) CELLS FOR PERFORM
00000078 RESERVED - 2 BYTES 00000160 PERFORM SAVE CELLS
0000007A RESERVED - 2 BYTES 00000160 VARIABLE NAME (VN) CELLS FOR ALTER
0000007C RESERVED - 2 BYTES 00000168 INDEX CELLS
0000007E MERGE FILE NUMBER 00000180 PERFORM SAVE CELLS
00000080 ADDRESS OF CEL COMMON ANCHOR AREA 00000180 PERFORM COUNTER CELLS
00000084 LENGTH OF TGT 00000180 VARIABLE LENGTH CELLS
00000088 RESERVED 1X 00000180 ODOSAVE CELLS
00000089 PROGRAM MASK FOR THIS PROGRAM 00000180 FCB ADDRESS CELLS
0000008A RESERVED 2X 00000184 LOCAL FCB CELLS FOR EXTERNAL FILES
0000008C NUMBER OF SECONDARY FCB CELLS 00000184 ALL PARAMETER BLOCK
00000090 LENGTH OF THE ALTER VN(VNI) VECTOR 00000184 INTERNAL PROGRAM CONTROL BLOCKS 00000094 COUNT OF NESTED PROGRAMS IN COMPILE UNI 000001E8 EVALUATE BOOLEAN VALUES
00000098 EBCDIC DDNAME FOR DISPLAY 000001E8 EVALUATE WHEN VALUES
000000A0 RESERVED - 8 BYTES 000001E8 TEMP STORAGE 1 000000A8 ADDRESS OF COM-REG SPECIAL REGISTER 000001E8 TEMP STORAGE 2
000000AC CALC ROUTINE SAVE AREA 000001E8 TEMP STORAGE 3
000000E0 ALTERNATE COLLATING SEQUENCE POINTER 000001E8 TEMP STORAGE 4 000000E4 ADDRESS OF SORT GN BLOCK 000001E8 TEMP STORAGE FOR OPT
000000E8 ADDRESS OF PGT 000001E8 TGT COMMON TRANSLATE TABLE
000000EC CURRENT INTERNAL PROGRAM NUMBER 000001E8 SUBROUTINE (NESTED PROGRAM) RETURN ADDR 000000F0 POINTER TO 1ST IPCB 000001F8 SUBSCRIPT LIMIT CELLS
000000F4 ADDRESS OF THE CLLE FOR THIS PROGRAM 00000330 OPTIMIZER XTAP
000000F8 ADDRESS OF ABEND INFORMATION TABLE 00000330 Q-ROUTINE TEMP STORAGE 000000FC ADDRESS OF TEST INFO FIELDS IN TGT 00000340 RESOURCE ALLOCATOR SAVE AREA
00000100 ADDRESS OF START OF PROGRAM 0000034C MVC SUBROUTINE AREA
00000104 ADDRESS OF 1ST ALTER VNI CELL IN CGT 00000108 ADDRESS OF 1ST ALTER VN CELL IN TGT
0000010C ADDRESS OF 1ST PBL CELL
00000110 ADDRESS OF 1ST FCB CELL 00000114 WORKING STORAGE ADDRESS
00000118 POINTER TO FIRST SECONDARY FCB CELL
0000011C POINTER TO STATIC CLASS INFO BLOCK
For example, if you want to know the contents of any index cell, locate the
displacement address from the start of the TGT, in this case this address is 168
(located in the TGTLOC column), and count four bytes for each index cell until
you reach the desired one.
Abend Report
80 User Guide
PERFORM Return Address Analysis
If your program abends in a PERFORM range and you need to establish which
PERFORM verb you executed to get into that PERFORM range, do the following:
1. Using the relative address in your program where the abend occurred, go to
the PERFORM Range Table that is part of every compile/optimize listing.
2. Locate the PERFORM range that contains that relative address and note the
return cell (R15, PSV, or VN) associated with the PERFORM range. This cell
contains the address of the source statement following the PERFORM verb
(the point to which control returns after the PERFORM range executes).
3. Look up that cell in the PERFORM RETURN ADDRESSES section of the
Detector report; it gives you the cell's contents in relative address format
(the relative address of the statement following the PERFORM verb).
Perform Range Table
Legend:
Overlap - This perform range overlaps a preceding one. Fall Thru - This perform range exit may fall through to the next statement in
the program.
Branch Out - There is a branch in the perform range that branches out of the perform range to the address shown.
Recursive - There is a path from this perform range entrance, before reaching
the perform range exit, which leads to a PERFORM verb of the same
perform range. The entry and exit addresses of the perform ranges
containing the recursive PERFORM verbs are shown.
No Exit - This perform range contains no path from the perform range
entrance to the perform range exit.
Null - This perform range contains no executable statements.
Source Address Return Over Fall Branch Recursive No Null
Entry - Exit Entry - Exit Cell -lap Thru Out To Call From Exit
Program-Id: CAO2DEMO
001042-001044 003CB4-003D04 PSV=30 001046-001054 003D14-003D60 PVN=4 Yes
001052-001054 003D4C-003D60 PVN=4 Yes Yes
001049-001057 003D32-003DA0 PSV=29 Yes Yes 001059-001061 003DBC-003E0A PVN=3 Yes 003F14
001063-001065 003E24-003E7A PVN=2 Yes 003E94-
003EE0 001067-001069 003E94-003EE0 PVN=1 Yes 003E24-
003E7A
001071-001071 003EFA-003EFA YES 001074-001075 003F14-003F3C R15 Yes
001080-001082 003F68-003F92 YES
001034-001086 003C1E-003FA6 PVN=5 Yes Yes Program-Id: LOOP-COMPUTE
001403-001419 004FBE-00528C PSV=8
Summary of Perform Ranges: Yes YES YES YES YES YES Altered VN Table
Statement Address Cell
Program-Id: CAO2DEMO 000527 000018A2 AVN 1
000559 00001A0E AVN 2
Abend Report
Chapter 3: Using Detector 81
The PERFORM Return Addresses can also give you further information about
the PERFORM ranges in your program, depending on the type of cell used for
linkage.
JOB: XYZAB02A STEP: RUN PROGRAM CAO2DEMO
****************************
* PERFORM RETURN ADDRESSES * 'NC' = NOT CALLED
**************************** 'FT' = FALL THROUGH PSV CELLSA
8=004FB0 9=004DB4 10=00497A 11=00496C
12=004B18 13=004AD0 14=004A88 15=004A40 16=0049F8 17=0049B0 18=00495E 19=00389A
20=NC 21=NC 22=NC 23=NC
24=NC 25=NC 26=NC 27=NC 28=001868 29=003D28 30=003C42 31=003A86
32=0039D8 33=0038D8 34=001790 35=0017C2
36=001782 37=001774 38=001766 39=00174A 40=00172E 41=001712 42=001704 43=0016F6
44=0016DA 45=001662 46=001654
ALTER VN CELLSB 1=00197C 2=001A6E
PERFORM VN CELLS
1=003EF0 2=003EB8 3=003E1A 4=003D70 5=003FBC
REGISTER 15 REGISTER 15 = 0000407C
A
The PSV cells reveal the most information:
■ If NC follows a cell number, you know that the PERFORM range it
represents was never executed.
■ If an address prints next to the cell number, it is the return address for
the last time the associated PERFORM range was executed. Match the
address here with the address of the MOFFSET or OFFSET in the listing to
find the last PERFORM CALL for the PERFORM range.
■ If FT follows the cell number, the last time you executed its PERFORM
range you did not perform it. You either fell into it, through it, and out of
it, or you entered it by a GO TO and then fell out.
Note: Fall-through refers to the process of logically ignoring the exit for
a PERFORM range and continuing downwards, executing the following
contiguous statements.
B
If there is an address for a VN cell, it can mean one of three things:
■ You were in the associated PERFORM range when you abended, and the
address is the return address.
■ You were in the PERFORM range earlier in the execution but somehow
branched out instead of going through the normal exit.
Abend Report
82 User Guide
■ The VN cell represents an ALTERED GO TO. The cell contains the
destination address for the next execution of the ALTERED GO TO.
Note: The NC code, ―never called,‖ is not used because this condition
cannot be determined with VN cells. The FT code for a VN cell means that
the fall-through address was found there. This is meaningful if your
program abended while a VN PERFORM range was active. It means you
did not enter this PERFORM range by a PERFORM statement.
Paragraph Flow Report
The Paragraph Flow report is an optional section of the Detector Abend report.
PFLOW lists the source name and address of the last nnnnn paragraphs executed
up to the time of the abend. Where nnnnn is the programmer-specified PFLOW
value rounded up to the next power of two, not to exceed 32768. The default is
64. If the total number of paragraphs executed is less than nnnnn, the report
shows only what was executed. These addresses are relative to the beginning of
the COBOL program and match up with the addresses given by MOFFSET and
LIST. If the Condensed Source Listing is not available, only the addresses are
printed; the PARAGRAPH NAME field is blank.
************************ RELATIVE ADDRESS OF THE LAST 64 PARAGRAPHS
* PARAGRAPH FLOW * EXECUTED (IN ORDER OF EXECUTION, LEFT TO RIGHT) ************************ 'COUNT' SHOWS CONSECUTIVE EXECUTIONS IF GREATER THAN 1
COUNT OFFSET *------PARAGRAPH NAME------* COUNT OFFSET *-------PARAGRAPH NAME-------* 18 003356 CHECK-1-LOOP. 003412 CHECK-2.
20 003496 CHECK-2-LOOP. 003586 CHECK-3.
0037C8 CHECK-4. 00381A CHECK-5.
003872 CHECK-6. 0047CC WRITE-LINE
003C32 PARAGRAPH-0. 003CBC PARAGRAPH-1.
003D18 PARAGRAPH-2. 003D3C PARAGRAPH-3.
2 003D50 PARAGRAPH-4. 003DC0 PARAGRAPH-6.
003E98 PARAGRAPH-8. 003E28 PARAGRAPH-7.
003E98 PARAGRAPH-8. 003E28 PARAGRAPH-7.
2 003F1A PARAGRAPH-10. 003F58 PARAGRAPH-11.
003F6C PARAGRAPH-12. 003F96 PARAGRAPH-13.
003FAA PARAGRAPH-RETURN. 003FE0 PARAMETER-FORCED-ABEND 00417A WORKING-STORAGE-INIT 003356 CHECK-1-LOOP.
The paragraph names or addresses are listed from left to right in order of
execution, meaning the one executed most recently appears last. A number to
the left of an address indicates the number of consecutive times that the
paragraph was executed, if it was executed more than once. If the paragraph
was executed only once, the COUNT value remains blank.
The PFLOW feature is optional, but it is strongly recommended that you use it for
all debugging runs.
Abend Report
Chapter 3: Using Detector 83
With a large value for nnnnn, you can treat this report like an internal trace of
execution paths in your program. However, note the following considerations
concerning this feature:
■ This is a wraparound facility, so you must read the report from the
bottom-up and right-to-left.
■ For large values of nnnnn, your REGION size may be affected. To estimate
this requirement, multiply nnnnn times four. This gives you the number of
bytes required for the PFLOW table areas.
PL/I Reports
While many of Detector's testing features are provided exclusively for COBOL
applications, the abend reporting and SNAP features are available for PL/I and
Assembler programs as well.
This section describes the information provided by Detector for PL/I programs.
Program Statistics
For each program in the report, this report contains statistics about the compile,
link, and symbolic postprocessing used when the program was built.
********************
* PROGRAM PLITEST1 *
******************** A
COMPILED ON 20 APR,2004 AT 11.49.52 WITH PL/I FOR Z/OS 3.2.0
B SYMBOLIC INFORMATION RETRIEVED FROM CDE.DEVL.OPT31.PROTSYM
MEMBER: PLITEST DATE: 20 APR,2004 TIME: 11.49.52 TYPE: PROTSYM
C LINKED ON 20 APR 2004 AT 11:49:58
LOAD LIBRARY: RYARO02.LOAD
MODULE LENGTH: 000047C0 (DECIMAL 18,368)
A
This section contains compile statistics, including the date and time of
compilationand the compiler and release information.
B
When symbolic information is used to format the report, this section
identifies the name of the symbolic file, and the date and time of the
symbolic listing used.
C
Link-edit information including the date and time that the load module was
created, the name of the load library from which the program was loaded,
the length of the module, and the linkage editor options used.
Abend Report
84 User Guide
Active Procedures
When one or more PL/I programs are active at the time of an abend, Detector
reports on each active PL/I procedure. The information provided for each
procedure includes:
■ Variables defined to the procedure
■ Registers when last in control
■ Dynamic Save Area (DSA)
Procedure Variables
The following sample report shows the variable display for an active PL/I
procedure:
*************
* VARIABLES *
*************
DCL# LVL FIELD NAME VALUE/LOCATION ATTRIBUTES
----- --- --------------------------- -------------------------------- ----------------------------------------- 000365 PIC_INIT ? X '00000000000000000000000000000000' AUTOMATIC CHARACTER(31)
(+000016) X '000000000000000000000000000000'
000368 01 TTP ADDRESS=12268BD1 STRUCTURE AUTOMATIC 000368 02 TTPT * PPPP TABLE TP PPPP * CHARACTER(32)
000368 02 TP_PICTURE_TABLE(1) ADDRESS=12268BF1 STRUCTURE DIM(18)
000368 03 TPICTURE(1) ** CHARACTER(31) VARYING
000368 03 TDEC(1) ? X '0000' FIXED DECIMAL(3)
000368 03 TBIN(1) +0 FIXED BINARY(15)
<UNMERGED DATA FOR TP_PICTURE_TABLE>
X '00000000000000000000000000000000' LENGTH 646
LINES 000016-000624 SAME AS ABOVE
(+000640) X '000000000000'
000375 TTP2(1) +0 AUTOMATIC DIM(18) FIXED BINARY(15)
<UNMERGED DATA FOR TTP2> X '00000000000000000000000000000000' LENGTH 34
(+000016) X '00000000000000000000000000000000' (+000032) X '0000'
Variable storage can be displayed in merged format (shown above) or in dump
format depending on your option settings. The following options control merging
for PL/I variables:
■ MRGAUTO—Merges symbolic names onto PL/I automatic storage.
■ MRGBASED—Merges symbolic names onto PL/I based variable storage.
■ MRGCNTLD—Merges symbolic names onto PL/I controlled storage.
■ MRGPARMS—Merges symbolic names onto PL/I parameter storage.
■ MRGSTAT—Merges symbolic names onto PL/I static storage.
For more information about the merged and dumped data formats, see Merged
Versus Dumped Data Displays (see page 128).
Abend Report
Chapter 3: Using Detector 85
Registers
For each procedure, the general purpose register values display at the time when
the procedure was last in control.
For abending procedures, these are the current register values.The floating point
registers are also included. For all other procedures, these are the registers
when the procedure last transferred control to another procedure or program.
The following sample report shows the registers for an abending PL/I procedure:
**********************
* REGISTERS AT ABEND *
**********************
GENERAL REGISTERS:
R0 12268EA0
R1 122683C8 R2 00000024
R3 12102D9A DISP +00003A IN PROCEDURE INIT_TP
R4 00000000 R5 121035E8 DISP +000000 IN STATIC
R6 12102FD8 DISP +000278 IN PROCEDURE INIT_TP
R7 00000001 R8 000002CC
R9 1228A868
R10 12103604 DISP +00001C IN STATIC R11 122683C8
R12 12113650
R13 12268A78 DISP +000000 IN DSA R14 12268EA0
R15 92102EF0 DISP +000190 IN PROCEDURE INIT_TP
FLOATING-POINT REGISTERS:
FPC F0000000 FR0 41100000 00000000 1.0 FR8 00000000 00000000 0.0
FR1 00000000 00000000 0.0 FR9 00000000 00000000 0.0
FR2 34000000 00000000 0.0 FR10 00000000 00000000 0.0 FR3 00000000 00000000 0.0 FR11 00000000 00000000 0.0
FR4 5B4EE2D6 D415B85A 1.0E+32 FR12 00000000 00000000 0.0
FR5 00000000 00000000 0.0 FR13 00000000 00000000 0.0
FR6 4DCEF810 00000000 3.641037 E+15 FR14 00000000 00000000 0.0
FR7 00000000 00000000 0.0 FR15 00000000 00000000 0.0
Abend Report
86 User Guide
Dynamic Save Area
For each procedure, the Dynamic Save Area (DSA) is also displayed:
*********************
* DYNAMIC SAVE AREA *
*********************
DSA 12268A78 LENGTH 00000158 (DECIMAL 344)
ADDRESS OFFSET
12268A78 000000 10000000 122683C8 00000000 92102E3C 9219A6C8 1210326C 12268B10 00000000 *......cH....k...k.wH...%........*
12268A98 000020 12102D9A 12268B48 121035E8 12102FD8 00000001 12268B4C 1228A868 12103604 *...........Y...Q.......<..y.....*
12268AB8 000040 122683C8 00000000 00000000 12268EC8 00000000 00000000 00000000 00000000 *..cH...........H................*
12268AD8 000060 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................*
12268AF8 000080 00000000 00000000 00000000 00000000 00000000 00000000 12268B4C 12268B48 *...........................<....*
12268B18 0000A0 12268B60 1210326C 00000000 00000000 00000000 00000000 00000000 00000000 *...-...%........................* 12268B38 0000C0 00000000 00000000 12268EA0 12268BD1 00000001 000002CB 00000002 00000002 *...............J................*
12268B58 0000E0 00000012 00000001 00000000 00200002 00000020 00000026 00000026 00000012 *................................*
12268B78 000100 00000001 001F8002 00000041 00000026 00000026 00000012 00000001 00000043 *................................* 12268B98 000120 00000026 00000026 00000012 00000001 00000000 00000000 122683C8 12268460 *..........................cH..d-*
12268BB8 000140 00000000 00000000 00000000 00000000 0000001C 00000000 *........................*
Storage
After all of the active procedures have been reported, the program storage is
displayed. This includes both static and external program storage areas:
Abend Report
Chapter 3: Using Detector 87
Static
Static storage is displayed in dump format, as shown next:
***********
* STORAGE *
***********
******************
* STATIC STORAGE *
******************
STATIC 121035E8 LENGTH 000003B4 (DECIMAL 948)
ADDRESS OFFSET
121035E8 000000 12103CB8 121036AC 12103CB8 121036C4 1228A6F8 1228A748 1228A800 1228A848 *...............D..w8..x...y...y.*
12103608 000020 1228A8A8 1228A540 1228A1E8 1228A2C0 00000000 00008000 00000002 00050002 *..yy..v ..~Y..s{................*
12103628 000040 00060002 00000000 00000000 00000000 00000000 00000000 02060000 00000004 *................................* 12103648 000060 02020240 00000005 02040240 00000005 0206FF00 00000004 02040240 00000007 *... ....... ............... ....*
12103668 000080 02020240 0000004C 00000000 00030002 00000003 00000005 00800080 00000000 *... ...<........................*
12103688 0000A0 00000001 0C008400 00000050 00000000 00000001 00000001 00000008 00000001 *......d....&....................* 121036A8 0000C0 00010000 12289D7C 00000801 00600602 12102FD8 12103680 121036AC 1228A1AC *[email protected]..........~.*
121036C8 0000E0 00444042 00A3AE01 12102FE0 00000000 00000000 C5D9D9D6 D940C3D6 D5C4C9E3 *.. ..t.....\........ERROR CONDIT*
121036E8 000100 C9D6D540 D9C1C9E2 C5C44040 40000000 0000000C 0000000A 00000005 00000001 *ION RAISED ...................* 12103708 000120 00000002 00000005 00000001 D1C1D5C6 C5C2D4C1 D9C1D7D9 D4C1E8D1 E4D5D1E4 *............JANFEBMARAPRMAYJUNJU*
12103728 000140 D3C1E4C7 E2C5D7D6 C3E3D5D6 E5C4C5C3 D0000328 00100000 6E3BFFE0 00000000 *LAUGSEPOCTNOVDEC}.......>..\....*
12103748 000160 00000000 00000000 00000000 90010000 12102FEC 00000000 00000000 00000000 *................................* 12103768 000180 00000000 00000000 00000000 00200002 00000020 00000026 00000026 00000001 *................................*
12103788 0001A0 00000001 001F8002 00000041 00000026 00000026 00000001 00000001 00000043 *................................*
121037A8 0001C0 00000026 00000026 00000001 00000001 00000000 000A0002 0000000A 0000000D *................................* 121037C8 0001E0 0000000F 00010000 0000000F 00020001 00000010 00000009 00000009 00000003 *................................*
121037E8 000200 00000001 00000013 00000009 00000009 00000003 00000001 00060002 0000002B *................................*
12103808 000220 00000004 00000003 00000002 00000001 00000001 00000003 00000001 00010002 *................................* 12103828 000240 00000000 000A0002 0000000A 0000000D 0000000F 00010000 0000000F 00020001 *................................*
12103848 000260 00000010 00000008 00000008 00000001 00000001 00000013 00000008 00000008 *................................*
12103868 000280 00000001 00000001 00000017 00000002 00000001 00000001 00000001 00000001 *................................* 12103888 0002A0 00000001 00000001 00010002 00000018 00040002 00000000 00000000 000A0002 *................................*
121038A8 0002C0 0000000A 0000000D 0000000F 00010000 0000000F 00020001 00000010 00000008 *................................*
121038C8 0002E0 00000008 00000001 00000001 00000013 00000008 00000008 00000001 00000001 *................................* 121038E8 000300 00000017 00000002 00000001 00000001 00000001 00000001 00000001 00000001 *................................*
12103908 000320 00010002 00000018 00040002 00000000 00000000 000A0002 0000000A 0000000D *................................*
12103928 000340 0000000F 00010000 0000000F 00020001 00000010 0000000F 0000000F 00000003 *................................*
12103948 000360 00000001 00000013 00000015 0000000F 00000003 00000001 00000006 00000002 *................................*
12103968 000380 00000001 00060002 0000003D 00000004 00000003 00000002 00000001 00000001 *................................*
12103988 0003A0 00000003 00000001 00010002 00000043 00040002 *....................*
External
Each external storage definition is displayed separately, as shown below:
********************
* EXTERNAL STORAGE *
********************
Abend Report
88 User Guide
A B C
EXTEATA 121039A0 LENGTH 00000015 (DECIMAL 21)
ADDRESS OFFSET
121039A0 000000 D C5E7E3C5 D9D5C1D3 0000001C 00000000 00000000 00 *EXTERNAL.............*
EXTETAX 121039B8 LENGTH 00000015 (DECIMAL 21)
ADDRESS OFFSET
121039B8 000000 00C5E7E3 C5D9D5C1 D300002C 00000000 00000000 00 *.EXTERNAL............*
CNTLAR2 121039D0 LENGTH 00000004 (DECIMAL 4)
ADDRESS OFFSET 121039D0 000000 1228A728 *..x.*
CNTLAR4 121039D8 LENGTH 00000004 (DECIMAL 4) ADDRESS OFFSET
121039D8 000000 1228A7C0 *..x{*
CNTLTAX 121039E0 LENGTH 00000004 (DECIMAL 4)
ADDRESS OFFSET
121039E0 000000 1228A630 *..w.*
CNTLPTR 121039E8 LENGTH 00000004 (DECIMAL 4)
ADDRESS OFFSET 121039E8 000000 1228A248 *..s.*
ONE_VAR 121039F0 LENGTH 00000004 (DECIMAL 4) ADDRESS OFFSET
121039F0 000000 00000000 *....*
ANOTVAR 121039F8 LENGTH 00000004 (DECIMAL 4)
ADDRESS OFFSET
121039F8 000000 00000000 *....*
A
The name of the control section created by the PL/I compiler for the external
storage area.
B
The absolute address of the external storage area.
C
The length of the external storage.
D
If the external storage display requires more than one line, each line displays
the absolute address and the offset within the external storage for the data
on that line.
Note: External storage is not displayed for programs that have been compiled
using Enterprise PL/I for z/OS and OS/390 with the RENT option.
Abend Report
Chapter 3: Using Detector 89
Program Storage Dump
At the end of the formatted displays for each active PL/I program, the program
storage is displayed in dump format, as shown next:
*******************
* CSECT PLITEST1 *
*******************
ADDRESS OFFSET
121008C0 000000 F2F0F0F4 F0F4F2F0 F1F1F4F9 F5F2F0F3 F0F2F0F0 00280801 02035B00 079E0000 *20040420114952030200......$.....* 121008E0 000020 04741F07 1F1F0F00 29612102 018C126C 36000301 0FE81210 35E80000 03B40000 *........./.....%.....Y...Y......*
12100900 000040 47F0F022 01C3C5C5 000006B0 000029B0 47F0F001 58F0C31C 184E05EF 00000000 *.00..CEE.........00..0C..+......*
12100920 000060 07F390EB D00C58E0 D04C4100 E6B05500 C3144130 F03A4720 F01458F0 C28090F0 *.3..}..\}<..W...C...0...0..0B..0* 12100940 000080 E0489210 E00050D0 E00418DE 58503FB2 58603FB6 58103F0A 5010D328 41100000 *\.k.\.&}\....&...-......&.L.....*
12100960 0000A0 5010D32C 58203F0E 5020D330 5010D33C 58103F12 5010D340 41105008 501050DC *&.L.....&.L.&.L.....&.L ..&.&.&.*
12100980 0000C0 D21FD300 60429200 D2FC9200 D2F81B11 4310D2F4 54103F16 4210D2F4 1B114310 *K.L.-.k.K.k.K8....K4......K4....* 121009A0 0000E0 D2F45410 3F1A4210 D2F41B11 4310D2F4 54103F1E 4210D2F4 1B114310 D2F45410 *K4......K4....K4......K4....K4..*
121009C0 000100 3F224210 D2F41B11 4310D2F4 54103F26 4210D2F4 1B114310 D2F45410 3F2A4210 *....K4....K4......K4....K4......*
121009E0 000120 D2F41B11 4310D2F4 54103F2E 4210D2F4 1B114310 D2F45410 3F324210 D2F41B11 *K4....K4......K4....K4......K4..* 12100A00 000140 4310D2F0 54103F16 4210D2F0 1B114310 D2F05410 3F1A4210 D2F01B11 4310D2F0 *..K0......K0....K0......K0....K0*
12100A20 000160 54103F1E 4210D2F0 1B114310 D2F05410 3F224210 D2F01B11 4310D2F0 54103F26 *......K0....K0......K0....K0....*
12100A40 000180 4210D2F0 1B114310 D2F05410 3F2A4210 D2F04110 D2AC5010 D5049240 1000D23F *..K0....K0......K0..K.&.N.k ..K.*
12100A60 0001A0 10011000 5810D504 41106020 58201000 4110D260 50201000 D206D244 606292C6 *......N...-.......K-&...K.K.-.kF*
12100A80 0001C0 D24B9286 D24C4140 00041814 5010D4EC 1A114120 D24F4180 D24F41A0 6069A71E *K.kfK<. ....&.M.....K|..K|..-.x.*
12100AA0 0001E0 000841B0 0008189B 47B03174 18910E8A 5820D4EC 89200010 8A200010 4110D24D *.............j....M.i.........K(*
12100AC0 000200 40201000 D208D228 6071D204 D231607A 4110D238 D206D238 607F4110 D2364120 * ...K.K.-.K.K.-:..K.K.K.-"..K...*
12100AE0 000220 00074020 1000D202 D21C6086 1B114310 D21F5410 3F365610 3F3A4210 D21F1B11 *.. ...K.K.-f....K...........K...*
12100B00 000240 4310D21F 54103F3E 56103F42 4210D21F 1B114310 D21F5610 3F464210 D21F4110 *..K...........K.....K.......K...*
12100B20 000260 D21F5010 D4F01B22 43201000 54203F32 56203F4A 42201000 5810D4F0 1B224320 *K.&.M0.............¢......M0....*
12100B40 000280 10015420 3F4E5620 3F524220 10014110 D2269254 D2264110 D2244120 00064020 *.....+..........K.k.K...K..... .*
12100B60 0002A0 1000D206 D1D06089 D204D1D7 6090D205 D1DC6095 D202D1E2 609B4110 60245820 *..K.J}-iK.JP-.K.J.-nK.JS-...-...* 12100B80 0002C0 10004110 D1E55020 1000D204 D1E9609E D204D1EE 609ED204 D1F3609E D208D1F8 *....JV&...K.JZ-.K.J.-.K.J3-.K.J8*
12100BA0 0002E0 60A3D209 D20160AC D204D20B 60B64110 60285820 10004110 D2105020 1000D207 *-tK.K.-.K.K.-...-.......K.&...K.*
12100BC0 000300 D21460BB D205D147 60C39201 D14D9203 D14E9205 D14F9209 D1509211 D1519221 *K.-.K.J.-Ck.J(k.J+k.J|k.J&k.J.k.* 12100BE0 000320 D1529241 D1534110 00814010 D1544110 01014010 D1564110 02014010 D1584110 *J.k.J....a .J..... .J..... .J...*
12100C00 000340 04014010 D15A4110 08014010 D15C4110 0FFF4010 D15EA718 20014010 D160A718 *.. .J!.... .J*.... .J;x... .J-x.*
12100C20 000360 40014010 D1625810 3F565010 D1645810 3F5A5010 D1685810 3F5E5010 D16C5810 * . .J.....&.J....!&.J....;&.J%..* 12100C40 000380 3F625010 D1705810 3F665010 D1745810 3F6A5010 D1785810 3F6E5010 D17C5810 *..&.J.....&.J....¦&.J....>&.J@..*
12100C60 0003A0 3F725010 D1805810 3F765010 D1845810 3F7A5010 D1885810 3F7E5010 D18C5810 *..&.J.....&.Jd...:&.Jh...=&.J...*
12100C80 0003C0 3F825010 D1905810 3F865010 D1945810 3F8A5010 D1985810 3F8E5010 D19C5810 *.b&.J....f&.Jm....&.Jq....&.J...* 12100CA0 0003E0 3F925010 D1A0A718 134A4010 D1A45810 3F965010 D1A84110 003A4010 D1ACA718 *.k&.J.x..¢ .Ju...o&.Jy.... .J.x.*
The program storage dump can be suppressed by program name or prefix using
the CAOUXMOD macro in your installation defaults member, CAOUDFRX. For
more information about the CAOUXMOD macro, see the Installation Guide.
Assembler Reports
While many of Detector's testing features are provided exclusively for COBOL
applications, the abend reporting and SNAP features are available for PL/I and
Assembler programs as well.
This section describes the information provided by Detector for Assembler
programs.
Abend Report
90 User Guide
Program Statistics
For each program in the report, this report contains statistics about the compile,
link, and symbolic postprocessing used when the program was built.
********************
* PROGRAM CARXDEMA *
******************** A
SYMBOLIC INFORMATION RETRIEVED FROM CDE.DEVL.OPT31.PROTSYM
MEMBER: CARXDEMA DATE: 20 APR,2004 TIME: 11.29.00 TYPE: PROTSYM B
LINKED ON 20 APR 2004 AT 11:29:58
LOAD LIBRARY: DAVSC01.LOAD MODULE LENGTH: 000002D8 (DECIMAL 728)
LINK OPTIONS: AC(0), AMODE(31), NOOVLY, NORENT, REUS, RMODE(24)
A
When symbolic information is used to format the report, this section
identifies the name of the symbolic file, and the date and time of the
symbolic listing used.
B
Link-edit information including the date and time that the load module was
created, the name of the load library from which the program was loaded,
the length of the module, and the linkage editor options used.
Program Status Word
For the abending Assembler program, the PSW is displayed as follows:
*********************** * PROGRAM STATUS WORD *
***********************
A 078D3000 80000000 00000000 12100E58
B C D
31-BIT ADDRESSING MODE CC = 3 PRIMARY-SPACE MODE
A
The dump-formatted display of the 128-bit Program Status Word.
B
The addressing mode (24, 31, or 64) at the time of the abend.
C
The value of the condition code at the time of the abend.
D
The address space mode at the time of the abend (Primary-Space,
Secondary-Space, Home-Space, or Access-Register).
Abend Report
Chapter 3: Using Detector 91
Registers
For each active Assembler program, the general purpose register values display
at the time when the program was last in control.
For abending programs, these are the current register valuesThe access
registers and floating point registers are also included. For all other programs,
these are the registers when the program last transferred control to another
program.
The following sample report shows the registers for an abending Assembler
program:
**********************
* REGISTERS AT ABEND *
**********************
GENERAL REGISTERS:
R0 00000000_00000950
R1 00000000_007D06B0
R2 00000000_00006F60
R3 00000000_00000014
R4 00000001_0000001E
R5 00000000_007F2300
R6 00000000_007C4FE0
R7 00000000_7D000000
R8 00000000_007F9780 R9 00000000_007E12F8
R10 00000000_00000000
R11 00000000_007F9260 R12 00000000_12100D28 DISP +000000 IN CSECT CARXDEMA
R13 00000000_00006E70
R14 00000000_12100E8F DISP +000167 IN CSECT CARXDEMA R15 00000000_00000000
ACCESS REGISTERS:
R0 - R3 00000000 00000000 00000000 40C1D9F3
R4 - R7 00000000 40C1D9F5 00000000 40C1D9F7 R8 - R11 00000000 40C1D9F9 00000000 00000000
R12 - R15 00000000 00000000 00000000 00000000
FLOATING-POINT REGISTERS:
FPC 00000000
FR0 00000000 00000000 0.0 FR8 00000000 00000000 0.0
FR1 00000000 00000000 0.0 FR9 00000000 00000000 0.0
FR2 00000000 00000000 0.0 FR10 00000000 00000000 0.0
FR3 00000000 00000000 0.0 FR11 00000000 00000000 0.0
FR4 00000000 00000000 0.0 FR12 00000000 00000000 0.0
FR5 00000000 00000000 0.0 FR13 00000000 00000000 0.0
FR6 00000000 00000000 0.0 FR14 00000000 00000000 0.0
FR7 00000000 00000000 0.0 FR15 00000000 00000000 0.0
Abend Report
92 User Guide
Addressable Storage
For each register that contains a valid storage address, the data immediately
preceding and following the storage address is also displayed.
The amount of storage displayed for each register is controlled by the REGMAX
installation option. For more information about this option, see the Installation
Guide.
In most cases, the addressable storage is displayed in dump format as follows:
A F
R1 = 00000000_007D06B0 (NO ACTIVE USING)
B C D E
00000000_007D0670 -00040 00000000 00000000 00000000 00000000 *................*
00000000_007D0680 -00030 00000000 00000000 00000000 00000000 *................*
00000000_007D0690 -00020 00000000 00000000 00000000 00000000 *................*
00000000_007D06A0 -00010 00000000 00000000 00000000 00000000 *................*
00000000_007D06B0 00000000 00000000 00000000 00000000 *................* 00000000_007D06C0 +00010 00000000 00000000 00000000 00000000 *................*
00000000_007D06D0 +00020 00000000 00000000 00000000 00000000 *................*
00000000_007D06E0 +00030 00000000 00000000 00000000 00000000 *................* 00000000_007D06F0 +00040 00000000 00000000 00000000 7FFA1930 *............"...*
00000000_007D0700 +00050 007FBA48 80E03D6A 81509B30 00000094 *."...\.¦a&.....m*
00000000_007D0710 +00060 007D0784 00000000 7F609000 80E03944 *.'.d...."-...\..* 00000000_007D0720 +00070 00000C00 00000C58 00000C80 007D06F8 *.............'.8*
00000000_007D0730 +00080 80E0327A 00000004 00FC9980 007D0740 *.\.:......r..'. *
00000000_007D0740 +00090 00000000 007D0740 80E03542 00000000 *.....'. .\......* 00000000_007D0750 +000A0 00000000 007D0BF4 00000002 0000FF02 *.....'.4........*
00000000_007D0760 +000B0 007FE0A8 007D0B64 0000015C 7F609000 *."\y.'.....*"-..*
00000000_007D0770 +000C0 007D06F8 80E0327A 00000001 00F50280 *.'.8.\.:.....5..* 00000000_007D0780 +000D0 00000017 007D0740 80FB40D0 00000002 *.....'. .. }....*
00000000_007D0790 +000E0 00000000 7F609000 7FFA1AE0 00000000 *...."-.."..\....*
00000000_007D07A0 +000F0 00000000 0104111C 00000000 00000000 *................*
A
The contents of the 64-bit general purpose register containing the valid
storage address.
B
For each line of the display, the absolute address corresponding to the start
of the data on the line.
C
For each line of the display, the offset from the register address
corresponding to the start of the data on the line.
D
The addressable data in hexadecimal dump format.
E
The addressable data converted to EBCDIC display format.
F
If symbolic support is available, this indicates whether an active USING was
in effect for this register on the abending statement.
Abend Report
Chapter 3: Using Detector 93
If symbolic support is available for the program and the general register has an
active USING in effect on the abending statement, the storage may be displayed
in merged format. The MRGDSECT option controls whether to use the merged
format when possible.
The following example shows a merged format display:
A H
R13 = 00000000_00006E70 DSECT: LDATA
B C D E F G
OFFSET FIELD NAME VALUE DISPLAY LENGTH DEF ------ ----------------------- ----------------------------------- ------------------ ------ ---
000000 LDSAVE 00000000 00006F60 00006C90 FF100E18 *......?-..%.....* 72 F
(+000016) 80007AF0 80007AF0 000000A2 00006F60 *..:0..:0...s..?-* (+000032) 00000014 0000001E 007F2300 007C4FE0 *........."...@|\*
(+000048) FD000000 007F9780 007E12F8 00000000 *....."p..=.8....*
(+000064) 007F9260 92100D28 *."k-k...* 000048 LDR14SAV 00000000 *....* 4 F
00004C LDRC 00000000 *....* 4 F
000050 LDABEND 00000000 00000000 *........* 8 F 000058 LDWORK 00000000 00000000 *........* 8 D
000060 LDWORKD 00000000 00000000 00000000 00000000 *................* 18 X
(+000016) 0000 *..* 000072 LDFLAG 0000 *..* 2 X
000074 LDDCB 00000000 *....* 4 F
000074 00000000 00000000 00000000 00000000 *................* 16 B 000084 00000000 *....* 4 A
000088 01 *.* 1 A
000089 0558F0 *..0* 3 A 00008C 0050 *.&* 2 A
00008E 4000 * .* 2 B
000090 00006470 *....* 4 A
000094 02 *.* 1 B
000095 000001 *...* 3 A
000098 90 *.* 1 B
000099 000000 *...* 3 A
00009C 00540050 007CE298 *...&.@Sq* 8 C
0000A4 92 *k* 1 B
0000A5 CE *.* 1 B
0000A6 E6F0 *W0* 2 B
0000A8 00 *.* 1 B 0000A9 000001 *...* 3 A
0000AC 00000001 *....* 4 A
0000B0 0809 *..* 2 H 0000B2 0050 *.&* 2 A
0000B4 00000000 *....* 4 F
0000B8 00006310 *....* 4 A 0000BC 00055948 *....* 4 A
0000C0 00055948 *....* 4 A
0000C4 0000 *..* 2 H 0000C6 0050 *.&* 2 A
0000C8 00 *.* 1 B
0000C9 000001 *...* 3 A 0000CC 00000000 *....* 4 H
0000D0 00000001 *....* 4 A
0000D4 LDOPEN 8F006EE4 *..>U* 4 C 0000D8 LDCLOSE 00000000 *....* 4 C
0000DC LDPLIST 00000000 00000000 00000000 00000000 *................* 20 F
(+000016) 00000000 *....*
Abend Report
94 User Guide
A
The contents of the 64-bit general purpose register containing a valid
storage address with an active USING at the abending statement.
B
The offset within the mapping structure corresponding to the line of display.
C
The name of the field, if one exists, corresponding to the data displayed on
the each line.
D
The addressable data in hexadecimal dump format.
E
The addressable data converted to EBCDIC display format.
F
The length of the field being displayed.
G
The type of the field as defined in the program.
H
The name of the DSECT used to map the addressable storage in this display.
Abend Report
Chapter 3: Using Detector 95
Program Storage Dump
At the end of the formatted displays for each active Assembler program, the
program storage for the control section is displayed in dump format.
*******************
* CSECT CARXDEMA *
*******************
ADDRESS OFFSET
12100D28 000000 47F0F070 C3C1D9E7 C4C5D4C1 F0F461F2 F061F0F4 40F1F14B F2F940C1 D3D3C6E4 *.00.CARXDEMA04/20/04 11.29 ALLFU* 12100D48 000020 E2C9D6D5 40C3C160 D6D7E3C9 D4C9E9C5 D961C9C9 40C3D6D7 E8D9C9C7 C8E3404D *SION CA OPTIMIZER/II COPYRIGHT (*
12100D68 000040 C35D40F2 F0F0F440 C3D6D4D7 E4E3C5D9 40C1E2E2 D6C3C9C1 E3C5E240 C9D5E3C5 *C) 2004 CA INTE*
12100D88 000060 D9D5C1E3 C9D6D5C1 D36B40C9 D5C34B40 90ECD00C 18CF4130 00F01803 4510C080 *RNATIONAL, INC. ..}......0....{.* 12100DA8 000080 0A0A1821 18411F51 0E2450D0 10045010 D00818D1 41F00004 4110C2C8 5840021C *..........&}..&.}..J.0....BH. ..*
12100DC8 0000A0 5840400C 41404018 17334330 40001233 4780C0C8 D5074004 10004780 C0C64143 *. .. ..... .....{HN. .....{F..*
12100DE8 0000C0 400047F0 C0A817FF 12FF4770 C1C29A0F C214E340 C2BC0004 4DF0C0E4 C3C1D6C4 * ..0{y......AB..B.T B...(0{UCAOD* 12100E08 0000E0 E2D5C1D7 4100F000 1B110A08 18F005EF 4500C0FC C3C1D6C4 E2D5C1D7 0A09D25F *SNAP..0......0....{.CAODSNAP.. K̂ *
12100E28 000100 D074C254 D203D0D4 C2B44110 D0D494F0 1000960F 100043E1 00004100 D0745001 *}.B.K.}MB...}Mm0..o.........}.&.*
12100E48 000120 000042E1 00000A13 9110D0A4 47E0C1EC FA30D050 C2D0D203 D0D8C2B8 4110D0D8 *........j.}u.\A...}&B}K.}QB...}Q* 12100E68 000140 43E10000 4100D074 50010000 42E10000 0A144110 D0749101 10174710 C1A01FFF *......}.&...........}.j.....A...*
12100E88 000160 BFF71015 58E0F000 12EE4770 C1769130 F0044770 C1A09601 10171BEE 1B11BF13 *.7...\0.....A.j.0...A.o.........*
12100EA8 000180 F00643E0 F0051C0E 41101008 9140F004 47E0C198 41101008 18014110 F0000A0A *0..\0.......j 0..\Aq........0...*
12100EC8 0001A0 5820D04C 181D58D0 D0044100 00F01800 41101000 0A0A58E0 D00C18F2 980CD014 *..}<...}}....0.........\}..2q.}.*
12100EE8 0001C0 0B0E0700 4510C1E6 00198000 E2E8E2D7 D9C9D5E3 40C4C440 D5D6E340 C6D6E4D5 *......AW....SYSPRINT DD NOT FOUN*
12100F08 0001E0 C4000000 20000A23 47F0C130 4510C20E 001A8000 C5D9D9D6 D940D6D7 C5D5C9D5 *D........0A...B.....ERROR OPENIN*
12100F28 000200 C740E2E8 E2D7D9C9 D5E30000 00200A23 47F0C130 40C1D9F0 40C1D9F1 00000000 *G SYSPRINT.......0A. AR0 AR1....*
12100F48 000220 40C1D9F3 00000000 40C1D9F5 00000000 40C1D9F7 00000000 40C1D9F9 00000000 * AR3.... AR5.... AR7.... AR9....*
12100F68 000240 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................*
12100F88 000260 00000000 00000000 00000001 00004000 00000001 00000001 90000000 E2E8E2D7 *.............. .............SYSP*
12100FA8 000280 D9C9D5E3 02000050 00000001 00000001 00000000 00000000 00000001 00000001 *RINT...&........................*
12100FC8 0002A0 00000001 00000050 00000001 00000000 00000001 80100FDD 80100FE1 00000001 *.......&........................* 12100FE8 0002C0 0000001E 00000000 E2E8E2D7 D9C9D5E3 1C *........SYSPRINT.*
The program storage dump can be suppressed by program name or prefix using
the CAOUXMOD macro in your installation defaults member, CAOUDFRX. For
more information about the CAOUXMOD macro, see the Installation Guide.
LE Heap Storage Report
If the abending application was executing under the Language Environment (LE)
runtime, Detector can optionally display LE heap storage. This display is
controlled by two options: SAVEHEAP and SHOWHEAP. SAVEHEAP indicates that
LE heap storage is to be saved when the Detector report is created, while
SHOWHEAP indicates that the storage is to be displayed in the formatted report.
SAVEHEAP ON is required at execution time for SHOWHEAP ON to take effect.
Abend Report
96 User Guide
LE heap storage is displayed in dump format, as follows:
*******************
* LE HEAP STORAGE *
*******************
HEAP 0001B000 LENGTH 00002000 (DECIMAL 8,192) ADDRESS OFFSET
0001B000 000000 C8C1D5C3 0E710FA0 0E710FA0 0E710FA0 0001B000 0001B0A0 00002000 00001F60 *HANC...........................-*
0001B020 000020 0001B000 00000080 00000077 00000000 0E788830 00000000 0E788CB8 00000000 *..................h.............* 0001B040 000040 00000000 04000000 00000000 00038939 00004000 00000001 C6000001 0001F8BC *..............i... .....F.....8.*
0001B060 000060 E2E8E2D7 D9C9D5E3 02000048 00000001 0001E75A 00080078 00000000 00000001 *SYSPRINT..........X!............*
0001B080 000080 0E83B000 0E83B000 00000078 00000001 00000000 00000000 00000000 00000000 *.c...c..........................* 0001B0A0 0000A0 00000000 00000000 00000000 00000000 00000000 0E788CA8 00000000 00000000 *.......................y........*
0001B0C0 0000C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................*
LINES 000000E0-00001FC0 SAME AS ABOVE
0001CFE0 001FE0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................*
Open Files Report
In the Open Files report, Detector formats information from the data
management control blocks and dumps the current logical record for all files in
the job step that remain open and have not been displayed earlier in the File
Section of the Detector Abend report. If the file is a sequentially accessed VSAM
file, the previous logical record is also dumped. Optionally, Detector also dumps
the data management control blocks. These records and blocks may be from
COBOL programs not optimized with the DTECT option, or from any non-COBOL
program in the job step.
*********************
* OPEN FILES REPORT *
*********************
DDNAME=SYSUDUMP DSORG=PS BSAM BUFNO=0
DSN=USER02.USER02A.JOB59924.D0000110.? RECFM=VBA STATUS(OPEN) USAGE(OUTPUT) LRECL=125 BLKSIZE=1632
A DDNAME=PRINT DSORG=PS QSAM BUFNO=5 UNIT=3390,UCB VOL=SER=WRKD28 DSN=USER02.PRINT RECFM=FB
B STATUS(OPEN) USAGE(OUTPUT) LRECL=120 BLKSIZE=120
C CONTENTS OF CURRENT LOGICAL RECORD
----------------------------------
ADDRESS 22BBBE20 LENGTH 00000078 (DECIMAL 120) OFFSET
+000000 40404040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 * *
+000020 40404040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 * * +000040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 * *
+000060 40404040 40404040 40404040 40404040 40404040 40404040 * *
D CONTENTS OF PREVIOUS RECORD
---------------------------
LENGTH 00000078 (DECIMAL 120)
OFFSET
+000000 40404040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 * *
+000020 40404040 40404040 40404040 40404040 40404040 40C3C160 E2E8D4C4 E4D4D761 * CA SYMDUMP/*
+000040 C2C1E3C3 C8404040 40404040 40404040 40404040 40404040 40404040 40404040 *BATCH *
+000060 40404040 40404040 40404040 40404040 40404040 40404040 * *
Abend Report
Chapter 3: Using Detector 97
A
DDNAME is the filename and DD statement name.
B
Displays the contents of any current logical record. For input files, the record
just read is displayed in hexadecimal format followed on the right by a
character representation. If the FIRST128 option is specified, only the first
128 bytes of the current logical record are displayed (both in this report and
the FILE SECTION display).
If the file is a sequentially accessed VSAM file, the contents of the previous
record are also displayed (not shown).
Save Area Trace Report
The Save Area Trace is a report that assists you in tracing and debugging
programs in a multimodule environment. This report prints only once for any
given abend reporting sequence. Whether the abend occurs in a multimodule run
and Detector reports on more than one program, or it is a single module run with
only the Detector Abend report, the Save Area Trace prints only one time.
*******************
* SAVE AREA TRACE *
******************* SAVE AREA FOR SYSTEM
A B C D E
SA 00006F58 WD1 00000000 BKL 00000000 FWL 00000000 RET 80FD9278 F EPA B6300908 G R0 FD000009 R1 00006FF0 R2 00000040
R3 007D9D84 R4 007D9D60 R5 007FF5E8 R6 007B6FE0
R7 FD000000 R8 007F9030 R9 007FF210 R10 00000000 R11 007FF5E8 R12 80CB9FBA
SYSTEM CALLED CEE (ASSEMBLER)
SAVE AREA FOR CEE
SA 36313360 WD1 00000000 BKL 00006F58 FWL 00000000 RET 0000BF48
EPA 36300908 R0 00000000 R1 36311778 R2 00000000
R3 00000000 R4 00000000 R5 00000000 R6 00000000
R7 00000000 R8 00000000 R9 00000000 R10 00000000
R11 00000000 R12 363129C0
CEE CALLED CAOEDEMO (COBOL FOR Z/OS NOT CA-OPT)
CAOEDEMO ABENDED
When a program calls a subordinate program, the caller's registers are stored in
an 18-fullword save area to establish the means of return. A series of calling and
called programs establishes a chain of save areas, as shown in the example.
Abend Report
98 User Guide
In this example, the program called by the system is CAO2DEMO. (The
intervening save area is for the LE runtime). The contents of the save area are
interpreted below (all addresses are absolute hexadecimal):
A
System's save area location.
B
WD1 is the first word of the 18-word save area. It is not used by the system
and is usually zeros.
C
BKL stands for backward link. It points backwards to the location of the prior
save area if any.
D
FWL is the forward link. It points forward to the location of the next save
area, if any. In this example, the forward link of the system save area points
to the location of the save area for the LE runtime.
E
RET represents the return address as an absolute hexadecimal location.
F
EPA means entry point address. When control is passed from System to
CAO2DEMO, this is the point where CAO2DEMO is entered.
G
The next 13 words are used to save the contents of registers zero through
12.
This 18-word save area prints for each active program in the hierarchy leading to
the program which abended. The save area for the abending program does not
display.
Whenever Detector encounters a program in the chain that it cannot identify, it
designates the program in the Save Area Trace as UNKWNnnn where nnn is
1-999. Detector does not determine the program's language.
The information that Detector supplies in this detailed version of the Save Area
Trace can be valuable to the user who understands register conventions and
whose problem involves more than one module.
Abend Report
Chapter 3: Using Detector 99
IMS Report
The IMS portion of the Detector report is produced whenever a program abends
which accesses an IMS database.
**********************************
* IMS 8.1.0 RELATED INFORMATION * A
**********************************
*****************
* LAST IMS CALL *
*****************
IMS FUNCTION: ISRT C
The IMS report begins by displaying the following information:
A
The release of IMS.
B
If the location of the last IMS call can be determined, it is displayed in the
same format as the abending statement information (not shown).
Note: Call location information is not available under the LE run time.
C
The IMS function used on the last IMS call.
Abend Report
100 User Guide
****************************************
* CURRENT/LAST DATABASE PCB - DI21PART * A
****************************************
PCB PREFIX:
ADDRESS OFFSET B
00088CA8 000000 00500038 00020028 40404040 00000000 00000000 00000000 00000000 C4C2D3D6 *.&...... ................DBLO*
00088CC8 000020 C1C44040 000060E0 00000000 00000000 00088D30 00088CA8 *AD ..-\...............y*
PCB: C
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION
------ ------------------------------ -------------------------------------- -----------------------------------------------
000096 01 PCB-AREA-1 BLL=0001+000000 (00088CE0) 000097 02 DBD-NAME *DI21PART* X(08)
000098 02 SEGMENT-LEVEL *02* X(02)
000099 02 STATUS-CODES SPACES X(02) 000100 02 PROCESS-OPTIONS *L * X(04)
000101 02 FILLER +560296 S9(05) BINARY
000102 02 SEG-NAME *STANINFO* X(08) D E F G H I
STATUS SEGMENT NUMBER OF SEGMENT PROCESSING KEY
CODE LEVEL SEGMENTS NAME OPTIONS LENGTH ' ' 02 5 STANINFO L 19
FEEDBACK FROM LAST CALL: J ADDRESS OFFSET
00088D04 000000 F0F2F9F8 F9F0F3F6 60F0F0F1 40404040 40F0F2 *02989036-001 02*
TRACE OF DATABASE CALLS (NEWEST ENTRY FIRST):
-0 ISRT OK K
-1 ISRT OK
-2 ISRT OK
-3 ISRT OK
-4 ISRT OK
-5 ISRT OK
Information about the current or last database PCB is displayed, if it is available:
A
PCB name.
B
The address and contents of the PCB prefix (IMS 4.1.0 and above).
C
The address and contents of the PCB.
The PCB is displayed in merged format if all of these conditions are met:
■ The MERGEDB option is ON.
■ The PCB is defined in the most active COBOL, PL/I, or Assembler
program.
■ Symbolic information is available for that program.
Otherwise, the PCB is displayed in dump format.
D
Status code.
Abend Report
Chapter 3: Using Detector 101
E
Segment level.
F
Number of segments.
G
Name of last retrieved segment.
H
Processing options.
I
Key length.
J
Key feedback.
K
Call trace information for the JCB.
************************
* CURRENT/LAST SEGMENT * A
************************
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION
------ ------------------------------ ----------------------------- -------------------------------------
000081 01 SEG00060-INSERT-AREA BLW=0000+0004A8 (3667F578)
000082 02 FILLER *02 742 * X(61) (+000032) * 1200 96 *
000083 02 RIGHT-MAKE-SPAN +63 S9(03)
000084 02 FILLER SPACES X(06) 000085 02 WRONG-MAKE-SPAN ? *06C* 9(03)
000086 02 FILLER SPACES X(12)
*********************
* SSA FOR LAST CALL * B
*********************
ARGUMENT 1:
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION
------ ------------------------------ ----------------------------- -------------------------------------
000044 01 SEG00010-SSA BLW=0000+0003D0 (3667F4A0) 000045 02 SEG-NAME-00010 *PARTROOT* X(08)
000046 02 BEGIN-OP-00010 *(* X(01)
000047 02 KEY-NAME-00010 *PARTKEY * X(08) 000048 02 REL-OPER-00010 * =* X(02)
000049 02 KEY-VALUE-00010 *02989036-001 * X(17)
000050 02 END-OP-00010 *)* X(01)
Abend Report
102 User Guide
The rest of the information about the last IMS call is displayed as follows:
A
The current or last segment returned in the user I/O area.
B
The Segment Search Argument (SSA) for the last database call, if available.
If multiple search arguments were passed on the last call, they are displayed
in the order in which they were passed.
The segment and SSAs are displayed in merged format if all of the following
conditions are met:
■ The MERGEDB option is ON.
■ The area is defined in the most active COBOL, PL/I, or Assembler program.
■ Symbolic information is available for that program.
Otherwise, they are displayed in dump format.
********************************
* PROGRAM COMMUNICATION BLOCKS *
******************************** A B
****************************************************
* TERMINAL PCB FOR - RELATIVE NUMBER 1 * (CURRENT OR LAST USED)
****************************************************
PCB PREFIX: C
ADDRESS OFFSET
00049084 000000 00400038 00010018 40404040 00000000 00000000 00000000 00000000 C9D6D7C3 *. ...... .............IOPC *
000490A4 000020 C2404040 00000000 00000000 40404040 40404040 00049084 *B ........ ...d*
PCB: D
ADDRESS OFFSET 000490BC 000000 40404040 40404040 10004040 40404040 40404040 40404040 40404040 40404040 * .. *
000490DC 000020 40404040 40404040 40404040 40404040 00000000 00000000 00000000 00000000 * ................. *
E F G H STATUS DATE AND TIME OF MESSAGE FORMATTING
CODE LAST MESSAGE COUNT
' ' N/A N/A N/A
All of the Program Communication Blocks (PCBs) used by the program are
displayed, beginning with the terminal PCBs, as follows:
A
The PCB name and number.
B
If it is the current or last used terminal PCB, it is marked as such.
C
The address and contents of the PCB prefix (IMS 4.1.0 and above).
Abend Report
Chapter 3: Using Detector 103
D
The address and contents of the PCB. The PCB is displayed in merged format
if all of these conditions are met:
■ The MERGEDB option is ON.
■ The PCB is defined in the most active COBOL, PL/I, or Assembler
program.
■ Symbolic information is available for that program.
Otherwise, the PCB is displayed in dump format.
E
The status code of the PCB.
F
Date and time of last message.
G
Message count.
H
Formatting attributes.
A B
****************************************************
* DATABASE PCB FOR DI21PART - RELATIVE NUMBER 2 * (CURRENT OR LAST USED) ****************************************************
PCB PREFIX: C
ADDRESS OFFSET
00088CA8 000000 00500038 00020028 40404040 00000000 00000000 00000000 00000000 C4C2D3D6 *.&...... ................DBLO*
00088CC8 000020 C1C44040 000060E0 00000000 00000000 00088D30 00088CA8 *AD ..-\...............y*
PCB: D
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION
------ ----------------------------- ----------------------------- -------------------------------------
000096 01 PCB-AREA-1 BLL=0001+000000 (00088CE0) 000097 02 DBD-NAME *DI21PART* X(08)
000098 02 SEGMENT-LEVEL *02* X(02)
000099 02 STATUS-CODES SPACES X(02) 000100 02 PROCESS-OPTIONS *L * X(04)
000101 02 FILLER +560296 S9(05) BINARY
000102 02 SEG-NAME *STANINFO* X(08) E F G H I J
STATUS SEGMENT NUMBER OF SEGMENT PROCESSING KEY
CODE LEVEL SEGMENTS NAME OPTIONS LENGTH ' ' 02 5 STANINFO L 19
FEEDBACK FROM LAST CALL: ADDRESS OFFSET K
00088D04 000000 F0F2F9F8 F9F0F3F6 60F0F0F1 40404040 40F0F2 *02989036-001 02*
TRACE OF DATABASE CALLS (NEWEST ENTRY FIRST):
-0 ISRT OK
-1 ISRT OK L -2 ISRT OK
-3 ISRT OK
-4 ISRT OK
-5 ISRT OK
Abend Report
104 User Guide
The database PCBs are displayed as follows:
A
PCB name and number.
B
If it is the current or last used database PCB, it is marked as such.
C
The address and contents of the PCB prefix (IMS 4.1.0 and above).
D
Displays the address and contents of the PCB. The PCB is displayed in
merged format if all of these conditions are met:
■ The MERGEDB option is ON.
■ The PCB is defined in the most active COBOL, PL/I, or Assembler
program.
■ Symbolic information is available for that program.
Otherwise, the PCB is displayed in dump format.
E
Status code.
F
Segment level.
G
Number of segments.
H
Name of last retrieved segment.
I
Processing options.
J
Key length.
Abend Report
Chapter 3: Using Detector 105
K
Key feedback.
L
Call trace information for the JCB.
******************
* PARAMETER LIST * A
******************
ADDRESS OFFSET
00006FC8 000000 C4D3C96B C4C6E2E2 C1D4F0F1 6BC4C6E2 E2C1D4F0 F16BF76B F0F0F0F0 6B6BF06B *DLI,DFSSAM01,DFSSAM01,7,0000,,0,*
00006FE8 000020 6BD56BF0 6BE36B6B 6BD56BD5 6B6BD56B 6B6B *,N,0,T,,,N,N,,N,,,*
*******************
* MODULE DFSPRPX0 * B *******************
ADDRESS OFFSET
000078B0 000000 00000000 00006FC0 00000000 00007900 00007A58 000079B0 000078D0 00000000 *......?{......̀ ...:... .̀...}....* 000078D0 000020 C4C6E2D7 C3C3F3F0 00000000 00008E90 00000000 000322F8 00000000 00000000 *DFSPCC30...............8........*
000078F0 000040 00000000 C4C6E2D4 D7D34040 00007C80 00007910 0000FFFF 00049060 007D8B58 *....DFSMPL ..@...̀ ........-.'..*
00007910 000060 E2C3C8C4 D3D6C1C4 E4D5D3C4 040000F0 C4C6E2E2 C1D4F0F1 C4C6E2E2 C1D4F0F1 *SCHDLOADUNLD...0DFSSAM01DFSSAM01* 00007930 000080 40404040 40404040 40404040 40404040 C1404040 00070000 00000000 00000000 * A ............*
00007950 0000A0 00000000 00000000 00007954 80007A84 00000000 F0000122 00009B00 F080D5D5 *..........`...:d....0.......0.NN*
. . . . . . . .
. . . .
00007DF0 000540 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................*
Finally, Detector displays the following areas:
A
The parameter list passed to IMS.
B
A dump of module DFSPRPX0.
C
A dump of module DFSECP10 or DFSECP20, if available (not shown).
Finally, the following report is produced when the ABEND occurs in an LE
environment:
********************
* ENVIRONMENT DATA * ********************
A IMS IDENTIFIER IVP1 B IMS CONTROL REGION TYPE BATCH
C IMS APPLICATION REGION TYPE BATCH
D IMS REGION IDENTIFIER 1
E APPLICAITON PROGRAM NAME DFSSAM01
F PSB NAME DFSSAM01
G TRANSACTION NAME NO TRANSACTION NAME
H USERID FROM PST UNAVAILABLE
Abend Report
106 User Guide
The Environment Data portion displays the following information:
A
Displays the identifier from the execute parameters.
B
Displays the control region type; BATCH, DB/DC, and so on.
C
Displays the Application region type; BATCH, MPP, BMP, and so on.
D
Displays the region identifier.
E
Displays the name of the application program being run.
F
Displays the name of the PSB currently allocated.
G
Displays the name of the current transaction, if applicable.
H
Displays the user ID from the PST, if available.
Abend Report
Chapter 3: Using Detector 107
DB2 Reports
The DB2 portion of the Detector report is produced whenever a program abends
which accesses a DB2 database using DB2 for MVS/ESA Version 4.1.0 or above.
****A*********************************************** * DB2 8.1.0 RELATED INFORMATION FOR SUBSYSTEM D81A * B **************************************************** ********************************** * RETURN CODE FROM LAST SQL CALL * C ********************************** DSNT400I SQLCODE = 000, SUCCESSFUL EXECUTION ********************** * LAST SQL STATEMENT * ********************** STATEMENT LOCATION: D COLLECTION-ID OPT2DB2DEMO PACKAGE NAME DB2DEMO CONSISTENCY TOKEN 1841B4DE029F3FE6 SECTION NUMBER 00012 STATEMENT NUMBER 00755 SQL STATEMENT: E SELECT EMP , FIRSTNAME , LASTNAME , DEPT , MANAGER INTO :DCLEMPLOY.EMPLOY-EMP :EMP-IND-1.EMP-IND-EMP , :DCLEMPLOY.EMPLOY-FIRSTNAME :EMP-IND-1.EMP-IND-FNAME , :DCLEMPLOY.EMPLOY-LASTNAME :EMP-IND-1.EMP-IND-LNAME , :DCLEMPLOY.EMPLOY-DEPT :EMP-IND-1.EMP-IND-DEPT , :DCLEMPLOY.EMPLOY-MANAGER :EMP-IND-1.EMP-IND-MANAGER FROM EMPLOY WHERE EMP = :DCLJOB.JOB-EMP
The DB2 report begins with the following information:
A
The version of DB2.
B
The DB2 subsystem-ID.
C
The SQL return code, SQLCODE, and the message associated with that code.
If SQLCODE is non-zero, the SQLSTATE value will also be displayed.
Abend Report
108 User Guide
D
The location of the last SQL statement executed. (This is either the last SQL
statement before the abend or the abending SQL statement.)
If the DB2 program which contains the last SQL statement is bound into a
package, the location information includes the collection-id, package name,
consistency token, section number, and statement number (as shown
above).
If the DB2 program is not bound into a package, the location information
includes the plan name, DBRM name, consistency token, section number,
and statement number.
In both cases, the statement number refers to the listing generated by the
SQL precompile, not the COBOL compile listing.
E
The last or abending SQL statement. If there is an associated cursor
declaration, it will also be displayed.
Abend Report
Chapter 3: Using Detector 109
If the last SQL statement is not found in the DB2 catalog (for packages or
plans which were bound remotely, for example), Detector will display the
statement type.
***************************
* HOST VARIABLES (OUTPUT) * ***************************
B
LINE# LEVEL/FIELD NAME PICTURE CLAUSE USAGE VALUE/LOCATION ------ ------------------------------- --------------------------- ---------------- --------------------------------
000275 10 EMPLOY-EMP S9(4) BINARY +47
000287 20 EMP-IND-EMP S9(4) BINARY +0 000276 10 EMPLOY-FIRSTNAME X(30) DISPLAY *C. EVERETT *
000288 20 EMP-IND-FNAME S9(4) BINARY +0
000277 10 EMPLOY-LASTNAME X(20) DISPLAY *MONSTER * 000289 20 EMP-IND-LNAME S9(4) BINARY +0
000280 10 EMPLOY-DEPT S9(4) BINARY +6
000292 20 EMP-IND-DEPT S9(4) BINARY +0 000281 10 EMPLOY-MANAGER S9(4) BINARY +48
000293 20 EMP-IND-MANAGER S9(4) BINARY +0
**************************
* HOST VARIABLES (INPUT) *
************************** B
LINE# LEVEL/FIELD NAME PICTURE CLAUSE USAGE VALUE/LOCATION
------ ------------------------------- --------------------------- ---------------- --------------------------------
000310 10 JOB-EMP S9(4) BINARY +47
***************************
* SQL COMMUNICATIONS AREA *D
***************************
LINE# LEVEL/FIELD NAME PICTURE CLAUSE USAGE VALUE/LOCATION
------ ------------------------------- --------------------------- ---------------- --------------------------------
000188 01 SQLCA GROUP BLW=0000+000848 (00098950)
000189 05 SQLCAID X(8) DISPLAY *SQLCA *
000190 05 SQLCABC S9(9) BINARY +136 000191 05 SQLCODE S9(9) BINARY +0
000192 05 SQLERRM GROUP BLW=0000+000858
(00098960) 000193 49 SQLERRML S9(4) BINARY +0
000194 49 SQLERRMC X(70) DISPLAY SPACES
000195 05 SQLERRP X(8) DISPLAY *DSN *
A
The contents of the SQLDA(s) for the last SQL statement, if applicable (not
shown). If the MERGEDB option is ON and symbolic information is available
for the program, the SQLDA will be mapped. Otherwise, the SQLDA is
displayed in dump format.
B
The contents of the host variables for the last SQL statement, if applicable. If
relevant, the output host variables are displayed following the SQLDA for the
output variables and the input host variables are displayed following the
SQLDA for the input variables. If the MERGEDB option is ON and symbolic
information is available for the program, the host variables are mapped.
Otherwise, the fully qualified name of the host variables are displayed, along
with the address, length, and data in dump format.
Abend Report
110 User Guide
C
The name and type of DB2 objects referenced by the last SQL statement, if
applicable (not shown). If columns in a table or view are referenced, the
contents of the referenced columns are displayed.
D
The contents of the SQLCA. If the MERGEDB option is ON and the CSL is
available for the program, data item information such as the data name,
picture clause, and usage type is merged with the SQLCA storage.
Otherwise, the address, length, and contents of the SQLCA is displayed in
dump format.
For more information about the merged and dumped data formats, see
Merged Versus Dumped Data Displays (see page 128).
************************** * CONNECTION INFORMATION *
**************************
ACONNECTION MODE BACKGROUND
BCONNECTION TYPE BATCH
CCONNECTION ID BATCH DCORRELATION ID DB2710
EAUTHORIZATION ID RYARO02
*****************************
* APPLICATION PLAN OPT2DEMO * F
*****************************
BIND DATE/TIME 24 AUG,2005 11.25.24 G
BOUND BY RYARO02 H
BIND OPTIONS:J
ACQUIRE(USE), CACHESIZE(1024), CURRENTDATA(YES), CURRENTSERVER(),
DBPROTOCOL(DRDA), NODEFER(PREPARE), DEGREE(1), DISCONNECT(EXPLICIT), DYNAMICRULES(RUN), ENCODING CCSID(500), EXPLAIN(NO),
FUNCTIONTS(2005-08-24-11.25.24.052050), GROUP MEMBER(), IMMEDWRITE(NO),
ISOLATION(CS), KEEPDYNAMIC(NO), OPERATIVE(YES), OPTHINT(), OWNER(RYARO02 ), PATHSCHEMAS(), QUALIFIER(CAOPTII ), RELBOUND(K), RELEASE(DEALLOCATE),
NOREOPT(VARS), SQLRULES(DB2), VALID(YES), VALIDATE(RUN)
TABLE DEPENDENCIES: K
CAOPTII.DIVISN
CAOPTII.DEPART
CAOPTII.EMPLOY CAOPTII.JOB
CAOPTII.TITLES
TABLE SPACE DEPENDENCIES: K
CAOPTII.DIVISN
CAOPTII.DEPART
CAOPTII.EMPLOY CAOPTII.JOB
Abend Report
Chapter 3: Using Detector 111
The connection and plan information is displayed, as follows:
A
The connection mode.
B
The connection type.
C
The connection ID.
D
The correlation ID.
E
The authorization ID.
F
The application plan name.
G
The date and time when the plan was boundThe bind options.
H
The ID of the user who bound the planThe names, types and authorization ID
of the objects on which the plan is dependent. (If the object is a tablespace,
its database is displayed instead of the authorization ID.)
I
The comment associated with the plan, if applicable (not shown).
J
The bind options.
Abend Report
112 User Guide
K
The database objects on which the plan is dependent.
*************************************
* PACKAGE SUMMARY FOR PLAN OPT2DEMO * *************************************
******************** * PACKAGE DB2ADD * A
********************
B COLLECTION-ID OPT2DB2DEMO
C BIND DATE/TIME 06 MAR,2008 14.57.52
D PRE-COMPILE DATE/TIME 06 MAR,2008 14.57.22 E CONSISTENCY TOKEN 1841B4DE1D8BFF84
F DBRM LIBRARY USER001.DBRMLIB.D810
H BIND OPTIONS:
CREATOR(USER001), DBPROTOCOL(DRDA), CURRENTDATA(C), DEGREE(1),
ENCODING CCSID(500), EXPLAIN(NO), FUNCTIONTS(2008-03-06-14.57.52.723939),
GROUP MEMBER(), IMMEDWRITE(NO), ISOLATION(CS), KEEPDYNAMIC(NO), OPERATIVE(YES),
OPTHINT(), OWNER(USER001), PATHSCHEMAS(), QUALIFIER(CAOPTII), RELBOUND(L),
RELEASE(DEALLOCATE), REMOTE(NO), REOPT(NONE), SQLERROR(NOPACKAGE),
TYPE(BINDPKG), VALID(YES), VALIDATE(RUN)
PRE-COMPILE OPTIONS: I
APOST, DEC(31), NOGRAPHIC, HOST(IBMCOB), NOTKATAKANA, PERIOD, VERSION()
TABLE DEPENDENCIES: J
CAOPTII.DEPART
CAOPTII.DIVISN
CAOPTII.EMPLOY CAOPTII.JOB
CAOPTII.TITLES
TABLE SPACE DEPENDENCIES:
CAOPTII.DIVISN
CAOPTII.EMPLOY
CAOPTII.DEPART CAOPTII.JOB
The package information is displayed for each package in the plan. If the
DB2ACTIV option is specified, package information is displayed only for the
packages that are active at the time of the abend. The package information
consists of:
A
The package name.
B
The collection ID.
C
The bind date and time.
Abend Report
Chapter 3: Using Detector 113
D
The precompile date and time.
E
The consistency token.
F
The library where the DBRM resides.
G
The comment associated with the package, if applicable (not shown)The
bind options.
H
The precompile bind options.
I
The names, types and authorization IDs of the DB2 objects on which the
package is dependent. (If the object is a table space, its database name is
displayed instead of its authorization IDprecompile options.)
J
The database objects on which the package is dependent.
**********************************
* DBRM SUMMARY FOR PLAN OPT2DEMO * A
**********************************
*****************
* DBRM DB2DEL * *****************
B PRE-COMPILE DATE/TIME 06 MAR,2008 14.57.26 C CONSISTENCY TOKEN 1841B4DF0D4A201A
D DBRM LIBRARY USER001.DBRMLIB.D810
PRE-COMPILE OPTIONS: E
APOST, DEC(31), NOGRAPHIC, HOST(IBMCOB), NOTKATAKANA, PERIOD, VERSION()
Abend Report
114 User Guide
Finally, the information for DBRMs that are not bound into a package within the
plan is displayed. If the DB2ACTIV option is specified, DBRM information is
displayed only for the DBRMs that are active at the time of the abend. The DBRM
information consists of:
A
The DBRM name.
B
The precompile date and time.
C
The consistency token.
D
The library where the DBRM resides.
E
The precompile options.
Abend Report
Chapter 3: Using Detector 115
CA IDMS/DB Report
The CA IDMS/DB portion of the Detector report is produced whenever a program
abends which accesses an CA IDMS/DB database using CA IDMS/DB Version
12.0 or above.
The reports are generated based on the SYSIDMS parameters specified. For
SYSIDMS parameter descriptions, see the CA IDMS/DB documentation.
******************
* CA-IDMS REPORT *
******************
CA-IDMS abend trace Tape Genlevel: G0GJ6M Release: 1600 A
User=USER02 B Batch Local Job
DBNODE= DBNAME=EMPDEMO DICTNODE= DICTNAME= C
*****************
* SYSIDMS parms * D
*****************
ECHO=ON
DMCL=R160DMCL DBNAME=EMPDEMO
ABENDTRACE=ON ABENDTRACE_ENTRIES=255
ABENDTRACE_VIBSNAP=ON ABENDTRACE_SUBSCHEMA_DISPLAY=ON
************************************ * DML trace for subschema=EMPSS01 * E
************************************
VERB=59 BIND SUBSCHEMA-->EMPSS01 DBNAME=EMPDEMO PROGRAM=CAO2IDMS Caller=CAO2IDMS DMLSEQ=000001 *** I D M S
VERB=48 BIND Record REC-->STRUCTURE ADDR=000403A0 Caller=CAO2IDMS DMLSEQ=000002 *** I D M S
VERB=48 BIND Record REC-->SKILL ADDR=000403B0 Caller=CAO2IDMS DMLSEQ=000003 *** I D M S
VERB=48 BIND Record F REC-->OFFICE ADDR=00040400 Caller=CAO2IDMS DMLSEQ=000004 *** I
D M S
VERB=48 BIND Record REC-->NON-HOSP-CLAIM ADDR=00040450 Caller=CAO2IDMS DMLSEQ=000005 *** I D M S
VERB=48 BIND Record REC-->JOB ADDR=00040870 Caller=CAO2IDMS DMLSEQ=000006 *** I D M S
VERB=48 BIND Record REC-->INSURANCE-PLAN ADDR=00040998 Caller=CAO2IDMS DMLSEQ=000007 *** I D M S
VERB=48 BIND Record REC-->HOSPITAL-CLAIM ADDR=00040A20 Caller=CAO2IDMS DMLSEQ=000008 *** I D M S VERB=48 BIND Record REC-->EXPERTISE ADDR=00040B50 Caller=CAO2IDMS DMLSEQ=000009 *** I D M S
VERB=48 BIND Record REC-->EMPOSITION ADDR=00040B60 Caller=CAO2IDMS DMLSEQ=000010 *** I D M S
VERB=48 BIND Record REC-->EMPLOYEE ADDR=00040B80 Caller=CAO2IDMS DMLSEQ=000011 *** I D M S VERB=48 BIND Record REC-->DEPARTMENT ADDR=00040BF8 Caller=CAO2IDMS DMLSEQ=000012 *** I D M S
VERB=48 BIND Record REC-->DENTAL-CLAIM ADDR=00040C30 Caller=CAO2IDMS DMLSEQ=000013 *** I D M S
Abend Report
116 User Guide
The CA IDMS/DB report begins with the following information:
A
The genlevel and version of CA IDMS/DB.
B
The userid that was used to summit the job and the job type.
C
The DBNODE, DBNAME, DICTNODE, and DICTNAME that were used.
D
The SYSIDMS parameters that were used.
E
The subschema name.
F
A trace of DML verbs for the subschema (the number of commands displayed
in the trace is a user specifiable option).
************************************* * Currencies for subschema=EMPSS01 *
* Compiled: 2007-08-07 13.51.57 *
*************************************
Current DBKEY=X'01250505' (75013:5) For Area EMP-DEMO-REGION
Current DBKEY=X'01259801' (75160:1) For Area ORG-DEMO-REGION
Current DBKEY=X'01259801' (75160:1) For Record DEPARTMENT
Current DBKEY=X'01250505' (75013:5) For Record EMPLOYEE
Current DBKEY=X'01250505' (75013:5) For Set DEPT-EMPLOYEE
Owner DBKEY=X'01259601' (75158:1) For Set DEPT-EMPLOYEE Prior DBKEY=X'01251701' (75031:1) For Set DEPT-EMPLOYEE
Next DBKEY=X'01251809' (75032:9) For Set DEPT-EMPLOYEE
Current DBKEY=X'01250505' (75013:5) For Set EMP-COVERAGE
Owner DBKEY=X'01250505' (75013:5) For Set EMP-COVERAGE
Prior DBKEY=X'01256404' (75108:4) For Set EMP-COVERAGE
Abend Report
Chapter 3: Using Detector 117
Currencies for all areas, records, and sets in the subschema at the time of the
abend are displayed.
Record Name Record Size Bind Buff 'Prev' Buff 'Curr' Buff
----------- ----------- --------- ----------- ----------- A B
STRUCTURE 8 00041370 * none * * none *
SKILL 76 00041378 * none * * none * OFFICE 76 000413C8 * none * * none *
NON-HOSP-CLAIM 1008 00041418 * none * * none *
JOB 296 00041808 * none * * none * INSURANCE-PLAN 132 00041930 * none * * none *
HOSPITAL-CLAIM 292 000419B8 * none * * none *
EXPERTISE 8 00041AE0 * none * * none *
EMPOSITION 28 00041AE8 * none * * none *
EMPLOYEE 116 00041B08 0D8AB8D0 0D8AB944
DEPARTMENT 56 00041B80 0D8AB9C8 0D8ABA00
DENTAL-CLAIM 932 00041BB8 * none * * none *
COVERAGE 16 00041F60 * none * * none *
************************************************ * Previous image for record DEPARTMENT *
************************************************
ADDRESS 0D8AB9C8 LENGTH 56 (X'00000038') OFFSET
0D8AB9C8 000000 F2F0F0F0 40404040 40404040 40404040 *2000 *
0D8AB9D8 000010 40404040 40404040 40404040 40404040 * * 0D8AB9E8 000020 40404040 40404040 40404040 40404040 * *
0D8AB9F8 000030 40404040 40404040 * *
************************************************
* Current image for record DEPARTMENT * ************************************************
ADDRESS 0D8ABA00 LENGTH 56 (X'00000038') OFFSET
0D8ABA00 000000 F2F0F0F0 C1C3C3D6 E4D5E3C9 D5C740C1 *2000ACCOUNTING A*
0D8ABA10 000010 D5C440D7 C1E8D9D6 D3D34040 40404040 *ND PAYROLL * 0D8ABA20 000020 40404040 40404040 40404040 40404040 * *
0D8ABA30 000030 40F0F0F1 F1000000 * 0011...*
************************************************
* Bind image for record DEPARTMENT *
************************************************
C
LINE# LEVEL/FIELD NAME PICTURE CLAUSE USAGE VALUE/LOCATION
------ ------------------------------- --------------------------- ---------------- ----------------------------
000388 01 DEPARTMENT GROUP BLW=0000+000AF8 (00041B80) 000389 02 DEPT-ID-0410 9(4) DISPLAY 9999
000390 02 DEPT-NAME-0410 X(45) DISPLAY *ACCOUNTING AND PAYROLL*
(+000032)* * 000391 02 DEPT-HEAD-ID-0410 9(4) DISPLAY 11
000392 02 FILLER XXX DISPLAY
Abend Report
118 User Guide
A
Bind buffer size and address for each record in the subschema.
B
Current and Previous buffer addresses for the records accessed.
C
Current, Previous, and Bind record images for the records accessed. If the
MERGEDB option is ON, the record is defined to the most active program,
and symbolic information is available for the program, the record image is
mapped. Otherwise, the address, length, and contents of the record is
displayed in dump format.
For more information about the merged and dumped data formats, see Merged
Versus Dumped Data Displays (see page 128).
Note: Symbolic support will only be provided in DB2 reports under the following
conditions:
■ For COBOL programs, the DBRM name must match the PROGRAM-ID.
■ For PL/I programs, the DBRM name must match the main procedure name.
Furthermore, the main procedure name may be no more than 7 characters.
■ For Assembler programs, the DBRM name must match the CSECT name.
Abend Report
Chapter 3: Using Detector 119
********************
* CA-IDMS VIB snap * A
********************
ADDRESS 36459008 LENGTH 00001658 (DECIMAL 5,720)
ADDRESS OFFSET
36459008 000000 E5C2F5F0 00000005 363BBD88 363BBE0E 363BBEE0 363BBEF2 363BBE2E 00000000 *VB50.......h.......\...2........*
36459028 000020 00000000 00000000 00000000 00000000 3640DD08 3643A348 3645A6D4 3645B128 *................. ....t...wM....* 36459048 000040 00000000 00000000 00000000 00000000 00000000 00000000 00000008 36459B54 *................................*
36459068 000060 000642F8 D3D6C3D3 00000003 00000000 00075FC0 363BC2F0 363BC2F0 364593A0 *...8LOCL..........¬{..B0..B0..l.*
36459088 000080 36459148 36459194 363BC2F0 00000000 00000000 40000000 00000000 08000000 *..j...jm..B0........ ...........* 364590A8 0000A0 0000FF08 C5D4D7C4 C5D4D640 00000000 3643AA70 3643A4F0 3645A6FC F0F0F0F0 *....EMPDEMO ..........u0..w.0000*
364590C8 0000C0 00000000 01250505 C3C1D6F2 C9C4D4E2 00000000 3643AA70 3643AA70 3643AA70 *........CAO2IDMS................*
364590E8 0000E0 00000022 00000000 00000000 3643AA70 3645A8F4 3643B6B4 3643B4D8 3645ADA4 *..................y4.......Q...u* 36459108 000100 00000000 0B220B22 0B220B22 00000000 00000000 01250505 3643AA70 00000000 *................................*
36459128 000120 01000000 00000000 00000000 3643A348 F0F461F0 F361F0F8 F1F3F0F6 F3F6F2F8 *..............t.04/03/0813063628*
36459148 000140 00000009 00000000 00000009 00000000 00000000 00000000 00000000 0000000C *................................* 36459168 000160 0000000B 00000019 00000000 00000000 00000000 00000000 00000000 00000001 *................................*
36459188 000180 00000003 D3D6C3D3 00000003 00000000 00000000 00000000 00000000 00000000 *....LOCL........................*
. . . .
. . . .
. . . .
********************* * CA-IDMS VARS snap * B
*********************
ADDRESS 3645A6D4 LENGTH 00000A54 (DECIMAL 2,644)
ADDRESS OFFSET
3645A6D4 000000 E5C1D9E2 40404040 C5D4D7E2 E2F0F140 00000000 3641DC98 00000000 00000000 *VARS EMPSS01 .......q........*
3645A6F4 000020 3641DC98 00000000 04038003 01250505 01250505 3643AA70 36459008 3641480C *...q............................*
3645A714 000040 00000000 00000000 00000000 00000000 FFFFFFFF 000124F9 0001252A 0001252A *.......................9........*
3645A734 000060 000124FE 0001252A 0001252A 000124FA 000124FD 000124FD 04038003 FFFFFFFF *................................*
3645A754 000080 FFFFFFFF 00000000 36459008 364149E0 00000000 00000000 00000000 00000000 *...............\................*
3645A774 0000A0 FFFFFFFF 0001255D 00012575 00012575 00012562 00012575 00012575 0001255E *.......).......................;*
3645A794 0000C0 00012561 00012561 04038003 01259801 01259801 3643A9D8 36459008 36414BB4 *.../.../......q...q...zQ........*
3645A7B4 0000E0 00000000 00000000 00000000 00000000 FFFFFFFF 0001258F 000125A7 000125A7 *...........................x...x*
3645A7D4 000100 00012594 000125A7 000125A7 00012590 00012593 00012593 FFFFFFFF FFFFFFFF *...m...x...x.......l...l........*
3645A7F4 000120 FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 FFFFFFFF *................................* 3645A814 000140 0005B0B0 FFFFFFFF FFFFFFFF FFFFFFFF 00000000 00000000 00000000 00000000 *................................*
3645A834 000160 00000000 00000000 FFFFFFFF 0005B0B0 FFFFFFFF FFFFFFFF FFFFFFFF 00000000 *................................*
3645A854 000180 00000000 00000000 00000000 00000000 00000000 FFFFFFFF 0005B0B0 FFFFFFFF *................................*
A
A Snap of the CA IDMS/DB VIB (Variable IB50 for subschema).
B
A Snap of CA IDMS/DB VARS.
Abend Report
120 User Guide
SUBSCHEMA=EMPSS01
Compiled=2007-08-07 13.51.57 A
Subschema Structure is Network and Unbound B
Area Name Segment
----------------- --------
EMP-DEMO-REGION n/a INS-DEMO-REGION n/a C
ORG-DEMO-REGION n/a
Record Name Stored Rec ID Area Name Data Length Prefix Length Procedures
-------------------------- ------ ------ --------------- ----------- ------------- ----------------------
COVERAGE VIA 400 INS-DEMO-REGION 20 20
DENTAL-CLAIM VIA 405 INS-DEMO-REGION 936 12
DEPARTMENT D CALC 410 ORG-DEMO-REGION 56 16 EMPLOYEE CALC 415 EMP-DEMO-REGION 120 72
EMPOSITION VIA 420 EMP-DEMO-REGION 32 24
EXPERTISE VIA 425 EMP-DEMO-REGION 12 20 HOSPITAL-CLAIM VIA 430 INS-DEMO-REGION 300 8
INSURANCE-PLAN CALC 435 INS-DEMO-REGION 132 8
JOB CALC 440 ORG-DEMO-REGION 300 24 IDMSCOMP Before STORE IDMSCOMP
Before MODIFY
IDMSDCOM After GET
. .
. .
. .
Chain Sorted-> CALC Next,Prior
Owner -------> SR1 Next=00 Prior=04
Member ------> SR6 E Next=00 Prior=04
Member ------> SR7 Next=00 Prior=04
Ckey Offset=16 Length=16 Data Type=Character
Member ------> DEPARTMENT Next=00 Prior=04
Ckey Offset=16 Length=4 Data Type=Numeric (Unsigned) Member ------> EMPLOYEE Next=00 Prior=04
Ckey Offset=72 Length=4 Data Type=Numeric (Unsigned)
Member ------> INSURANCE-PLAN Next=00 Prior=04 Ckey Offset=8 Length=3 Data Type=Character
Member ------> JOB Next=00 Prior=04
Ckey Offset=28 Length=4 Data Type=Numeric (Unsigned) Member ------> OFFICE Next=00 Prior=04
Ckey Offset=16 Length=3 Data Type=Character
Member ------> SKILL Next=00 Prior=04 Ckey Offset=20 Length=4 Data Type=Numeric (Unsigned)
Chain Last --> COVERAGE-CLAIMS Next,Prior Owner -------> COVERAGE Next=12 Prior=16
Via Member --> DENTAL-CLAIM Next=00 Prior=04
Via Member --> HOSPITAL-CLAIM Next=00 Prior=04 Via Member --> NON-HOSP-CLAIM Next=00 Prior=04
Intercepts Report
Chapter 3: Using Detector 121
The final pages of the report display:
A
The compile date and time of the subschema.
B
The subschema structure and whether it is bound or unbound.
C
The associated segment for each area, if applicable.
D
Detailed information about each record in the subschema including storage
mode, record ID, area name, data length, prefix length, and DB procedures.
E
Detailed information about each set in the subschema including owner
record, member records, set type, and set pointers.
Intercepts Report
The output for the INTERCEPTS feature is brief, yet it contains everything you
need to know to correct a data exception or decimal divide exception.
*********************
* INTERCEPTS REPORT * *********************
INTERCEPTS PERMITTED = 2 A
*************************
* INTERCEPTED STATEMENT *
************************* B C
PROGRAM: CAO2DEMO OFFSET: 004CBC LINE: 001370
D MOVE MASK1 TO BINARY-1
E
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION ------ ------------------------------- --------------------------- ---------------------------------------------
000403 03 MASK1 *&&* X(2)
000252 03 BINARY-1 +20560 S9(4) BINARY
F
INTERCEPTED INSTRUCTION
4FE0 D448 CONVERT
OPERAND: REG 14 G
VALUE: 8E505788 H
OPERAND: TEMP STORAGE CELL TGT DISP 000448
VALUE: 0000000000000CC5 <-- NOT NUMERIC (SET TO ONE) I
J K L
RELATIVE INTERRUPT 00004CC2 INTERCEPT COUNT 1 CODE 0C7
Intercepts Report
122 User Guide
A
When using the INTERCEPTS feature, you must specify the maximum
number of exceptions you want Detector to intercept. This value must not be
greater than 32,767. When the number of exceptions exceeds the specified
number, the program is allowed to abend and a Detector Abend report is
produced. In this example, two (2) intercepts are allowed prior to
termination.
Note: In a multimodule environment, more than one program can use the
INTERCEPTS feature concurrently. When more than one program is using
the INTERCEPTS feature, the maximum number of exceptions refers to the
maximum number of exceptions of all modules together rather than the
maximum number of each individual module.
B
Identifies the program from which the exception originated.
C
The line number and the MOFFSET address are displayed with each COBOL
statement. Use the line number and the MOFFSET address to locate the
statement in your program.
D
The COBOL statement(s) from your program which caused the exception.
E
The COBOL variable name(s) referenced by the abending source statement,
and their values. This information is available whenever symbolic
information is obtained by Detector from a PROTSYM file or from a CSL file if
MXREF was specified during optimization.
F
The machine instruction that caused the abend. If the ASMINST option is set
to OFF, this output is suppressed.
G
The instruction operands for the abending instruction. If possible, the
operands are related back to an area in the COBOL program such as a
LITERAL or TEMP STORAGE CELL.
The Base Locator number and the displacement from the Base Locator is
given and can be used to locate the data areas in your program. For COBOL
II programs, the displacement may exceed 4 KB.
If the ASMINST option is set to OFF, the instruction operands are
suppressed.
H
The hexadecimal representation of the actual storage value associated with
the operand.
Intercepts Report
Chapter 3: Using Detector 123
I
A message area used to pinpoint the cause of the exception and indicate any
action taken by Detector. If WSINIT was specified at compile-time and the
cause was due to uninitialized Working Storage, Detector indicates this here.
J
The location of the program exception relative to the beginning of the COBOL
program.
K
The interrupt count number. It indicates the number of intercepts that have
been reported.
L
The interrupt code (0C7 or 0CB).
After Detector generates the information for the Intercepts report, it corrects the
offending data item and reexecutes the instruction as follows:
■ In the case of a data exception (0C7), it sets the value of the invalid item to
1.
■ When a decimal-divide exception (0CB) occurs, Detector sets the divisor to
1.
■ Detector corrects the bad data to prevent multiple intercepts for the same
item. After correcting the data, Detector reexecutes the abending instruction
so that predictions can be made concerning the outcome.
Snap Report
124 User Guide
Snap Report
The SNAP feature of Detector produces nearly the same output as the Detector
Abend report. However, since snapshots do not result from an abend, those
items that are concerned with the abend in the Detector Abend report are
omitted.
********************
* SNAP OF CAO2DEMO *
********************
COMPILED ON 23 APR,2004 AT 12.02.38 WITH COBOL II 1.4.0
COMPILE OPTIONS: ADV, APOST, NOAWO, NOCMPR2, DATA(31), DBCS, NODECK, NODUMP, DYNAM, NOFASTSRT, NOFDUMP, NOLIB, LIST, MAP, NONAME, NONUMBER,
OBJECT, NOOFFSET, NOOPTIMIZE, NUMPROC(PFD), RENT, RESIDENT,
NOSEQUENCE, SOURCE, NOSSRANGE, NOTERM, NOTEST, TRUNC(STD), NOVBREF, NOWORD, XREF, ZWB
OPTIMIZED WITH CA OPTIMIZER/II R3.1 OPTIMIZER/II OPTIONS: NOCICS, NODBGSLEEP, DTECT, NOIDMSDC, FDCHECK, PARMCHK,
PFLOW, SUBRNGCK, NOTPMON, WSINIT, XCOUNT, XTIME
SYMBOLIC INFORMATION RETRIEVED FROM AD1DEV.MIKED.PROTSYM
MEMBER: CAO2DEMO DATE: 23 APR,2004 TIME: 12.02.38 TYPE: PROTSYM
LINKED ON 23 APR 2004 AT 00:00:00
LOAD LIBRARY: MIKED.QA.LOAD
MODULE LENGTH: 00006528 (DECIMAL 25,896) LINK OPTIONS: AC(0), AMODE(31), NOOVLY, NORENT, NOREUS, RMODE(24)
******************************
* LAST STATEMENT BEFORE SNAP *
******************************
PROGRAM: CAO2DEMO OFFSET: 004F92 LINE: 001413
IF PARM-MODE = 'DTE'
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION
------ ------------------------------- --------------------------- --------------------------------------------- 000157 03 PARM-MODE *DTE* X(3)
SNAP WAS CALLED FROM ADDRESS 0E505A80 AT OFFSET +004FA8 IN PROGRAM CAO2DEMO SNAP COUNT IS 1
ENTRY POINT ADDRESS IS 0E500AD8 AT OFFSET +000000 IN PROGRAM CAO2DEMO ENTRY COUNT IS 1
A snapshot consists of the following output:
■ Program statistics.
■ The program's address information and registers at the time the SNAP was
invoked.
■ The contents of the File Section at SNAP time. The format is the same as the
format of the Detector Abend report.
■ The Working-Storage Section, Local-Storage Section and the Linkage
Section.
■ A snapped display of the Memory Map.
■ The PERFORM Return Address Analysis.
CAIOPTS File Processing Report
Chapter 3: Using Detector 125
■ A display of LE heap storage at the time of the SNAP (optional).
■ The last paragraphs executed prior to the SNAP call, up to 32768, depending
on the value of PFLOW.
WARNING! When using the SNAP option with Extended Detector, each call to
CAODSNAP generates a separate SNAP report in your central VSAM repository. If
your program contains multiple SNAP calls or a SNAP call within a loop, you can
write the output to the CAIPRINT DD alone, to avoid flooding the repository. See
the PRTREPT option description in the chapter ―Using Options.‖
CAIOPTS File Processing Report
The CA Execution Monitor produces this report at the start of application
execution, after the Execution Monitor has read and processed the Detector
and/or Analyzer runtime options. This report displays the input options read
from the data set defined by the CAIOPTS DD, if present. The body of the report
is a display of the 80-byte records in the CAIOPTS data set exactly as read by the
Execution Monitor.
CA CAIOPTS FILE PROCESSING PAGE 1
CA OPTIMIZER/II R7 1005AOX00 INPUT OPTIONS DISPLAY 23 APR 2004 12.07.18
...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
INTERCEPTS 2 SNAP 1
XCOUNT ON
XTIME ON PFLOW ON
XREPORT ON
SOURCEMAP ALL INSTRMAP ALL
CAPC015I ANALYZER REPORTER WILL BE CALLED AUTOMATICALLY IF ANY PROGRAMS REQUEST COUNTS AND/OR TIMINGS. CAPC012I INPUT OPTION DISPLAY COMPLETE.
Execution Monitor Summary
126 User Guide
Execution Monitor Summary
This report is produced by the Execution Monitor at termination, just prior to
returning to the operating system. It is divided into two major sections.
CA EXECUTION MONITOR SUMMARY PAGE 35
CA OPTIMIZER/II R7 1005AOX00 23 APR 2004 12.07.19
A L
EXECUTION OPTIONS IN EFFECT: EXECUTION ON: Z/OS
ACB OFF ACTONLY OFF
AMB OFF
AMBL OFF ASMINST ON
BINDER ON
BINFRMT DEC CEEDUMP ON
DB2ACTIV OFF
DCB OFF DEB OFF
DUMP ON
EXCEED NOSTOP FILES ON
FIRST128 OFF
GRPADDR ON IMS NO
INTERCEPT 2
IOB OFF LINKAGE ALL
LOCALSTOR ALL
MEMMAP ON
MERGEDB ON
MRGAUTO ON
MRGBASED ON
MRGCNTLD ON
MRGDSECT ON
MRGFILES ON
MRGLINK ON
MRGLOCAL ON
MRGPARMS ON MRGSTAT ON
MRGWORK ON
MREPORT ALL MSAMPLE 10000
MTIME 0
OCCURS 1 PARMCHK ON
PFLOW ON
PLH OFF PRTLIB CDE.DEVL.OPT31.PRTLIB
PRTREPT BOTH
REGMAX (128,256) RPL OFF
SAVEAREA ON
SAVEHEAP OFF SHOWHEAP OFF
SHOWUNMRG TBLS
SNAP 1 STIMERM OFF
SYMDSN AD1DEV.MIKED.PROTSYM
UCB OFF
VSAMIDX OFF
WORKSTOR ALL
XCOUNT ON
XREPORT OFF
XTIME ON
Execution Monitor Summary
Chapter 3: Using Detector 127
LEGEND FOR OPTIMIZER OPTIONS:
B=DBGSLEEP F=FDCHECK S=SUBRNGCK
C=XCOUNT P=PFLOW T=XTIME
D=DTECT R=PARMCHK W=WSINIT
B G H I J K
COBOL C D E F COUNT NUMBER NUMBER RUN-TIME OPTIONS RUN-TIME OPTIONS
PROGRAM COMPILATION COMPILER SPACE OF TIMES OF TIMES SPECIFIED AT SPECIFIED AT
NAME DATE AND TIME USED REL (BYTES) -> ALLOCATED EXECUTED COMPILE TIME EXECUTION TIME
CAO2DEMO 23 APR,2004 12.02.38 COBOL II 4.0 3072 1 1 C,D,P,F,S,T,R,W CAO2PCHK 11 OCT,1990 14.18.54 COBOL II 3.0 1024 1 1 C,D,F,S,T,R,W
The Execution Monitor Summary report provides the following information for
every COBOL program running under Detector or Analyzer:
A
The first part of the report lists in alphabetical order the options that were in
effect during this execution of the application.
B
The second part of the report lists various attributes of all the optimized
COBOL programs encountered by the Execution Monitor during the
execution of the application. Entry to any program compiled/optimized with
Detector or Analyzer options is listed here.
C
Compile date, which helps identify the version of the program.
D
Compile-time, which helps identify the version of the program.
E
The COBOL compiler used for this program.
F
The release for the COBOL compiler is indicated here.
G
The amount of main storage required to store XCOUNT data.
H
Number of times the Execution Monitor was required to allocate XCOUNT
space.
I
Number of times the program was executed during the run.
J
Compile-time options in effect for the program.
Detector Facilit ies
128 User Guide
K
Runtime options in effect for the program.
L
The operating system under which the application executed is shown as
MVS, MVS/XA, MVS/ESA, OS/390, or z/OS.
Detector Facilities
This section describes the Detector facilities.
Merged Versus Dumped Data Displays
Detector displays storage areas for different sections of a program. If symbolic
information is available for the program, a variety of merging options are
provided for mapping variable names and definitions onto the corresponding
storage areas. Otherwise, storage areas are displayed in dump format.
Merged Display
The merging options are:
MERGEDB ON|OFF
Merges symbolic names onto database reports.
MRGAUTO ON|OFF
Merges symbolic names onto PL/I automatic storage.
MRGBASED ON|OFF
Merges symbolic names onto PL/I based variable storage.
MRGCNTLD ON|OFF
Merges symbolic names onto PL/I controlled storage.
MRGDATA ON|OFF
Merges symbolic names onto all data areas.
MRGDSECT ON|OFF
Merges symbolic names onto Assembler DSECT storage.
MRGFILES ON|OFF
Merges symbolic names onto file section for COBOL.
MRGLINK ON|OFF
Merges symbolic names onto linkage section for COBOL.
Detector Facilit ies
Chapter 3: Using Detector 129
MRGLOCAL ON|OFF
Merges symbolic names onto local storage for COBOL.
MRGPARMS ON|OFF
Merges symbolic names onto PL/I parameter storage.
MRGSTAT ON|OFF
Merges symbolic names onto PL/I static storage.
MRGWORK ON|OFF
Merges symbolic names onto working storage for COBOL.
The following example shows a merged data display for the WORKING-STORAGE
section of a COBOL program.
***************************
* WORKING-STORAGE SECTION *
*************************** A D E
LINE# LEVEL/FIELD NAME VALUE/LOCATION DEFINITION
------ -------------------------------- ------------------------ ------------------------------------ 000136 77 FILLER G *THIS PROGRAM IS PROPRIETARY PROP * X(80)
B C (+000032) *ERTY OF CA INTE *
(+000064) *RNATIONAL, INC. * 000139 77 FILLER * COPYRIGHT (C) 1986-1999 BY COMP * X(80)
H (+000032) *UTER ASSOCIATES INTERNATIONAL, I *
(+000064) *NC. *
000142 77 ERROR-FLAG ZEROS X(1)
000143 77 DATA-PICX10 ALL '&' X(10)
000144 77 ROW-3D 1 99 BINARY
000145 77 COLUMN-3D 1 99 BINARY
000146 77 RANGE-3D 1 99 BINARY
000148 01 PARAMETER-ONE BLW=0000+0000D0 (0E77A528) F
000149 03 FILLER *PARAMETERONE * X(12)
000154 01 PARM-PASSED-BY-JCL BLW=0000+0000E0 (0E77A538)
000155 03 PARM-MSG *WSINIT * X(8) 000156 03 PARM-FLAG *WSINIT * X(8)
000157 03 PARM-MODE *DTE * X(3)
000159 01 TABLE-1 BLW=0000+0000F8 (0E77A550) 000160 05 ARRAY(1) BLW=0000+0000F8 (0E77A550) OCCURS 5
000161 10 DATA-NAME1(1) ALL '&' XXX
000162 10 DATA-NAME2(1) I ALL '&' XXX <UNMERGED DATA FOR ARRAY> J X '50505050505050505050505050505050' LENGTH 24
(+000016)X '5050505050505050'
: :
: :
000315 01 LIST-1M BLW=0001+003860 (0E77ECB8) PACKED-DECIMAL
000316 03 LIST-1(1) ? X '50505050' S9(6) PACKED-DECIMAL OCCURS 100
<UNMERGED DATA FOR LIST-1> X '50505050505050505050505050505050' LENGTH 396 LINES 000016-000368 SAME AS ABOVE
(+000384) X '505050505050505050505050'
INX 473380382 INDEX=0001 K
Detector Facilit ies
130 User Guide
A merged data display for COBOL contains the following information:
A
Header describing the report columns.
B
The source line number where the data item was defined.
C
The level number and name of the data item.
D
The definition for the field. For COBOL, this includes the PICTURE and USAGE
clauses, and any REDEFINES or OCCURS clauses for the field.
E
For some fields, may indicate one of the following USAGE types of the data
item:
■ COMP and COMP-4 items are identified as BINARY.
■ COMP-1 items are identified as FLOATING-POINT.
■ COMP-2 items are identified as LONG FLOATING-POINT.
■ COMP-3 items are identified as PACKED-DECIMAL.
■ DISPLAY-1 items are identified as DBCS.
F
For group items, the base locator and displacement of the item. The address
of the item is also identified, in parentheses. (The base locator prints as BL,
BLL, or SBL for OS/VS COBOL and as BLF, BLW, BLL, BLK, BLV, or BLX for
COBOL II and above. For COBOL II and above, the displacement may exceed
4 KB.) If the GRPADDR option is set to OFF, this information is suppressed.
Detector Facilit ies
Chapter 3: Using Detector 131
G
For elementary items, the value of the item. The value is displayed in a
format determined by the USAGE of the data item and the validity of the
data.
For example:
DISPLAY data is shown in display format
■ PACKED-DECIMAL, BINARY, and INDEX data are shown in decimal
display format (DEC) or hexadecimal format (HEX), depending on the
value of the BINFRMT option.
■ POINTER, PROCEDURE-POINTER, FLOATING-POINT and DBCS data are
shown in hexadecimal format (for example, X'nnnnnnnn').
If the value of a data item is invalid, a question mark(?) precedes the data
value and the data is displayed in hexadecimal format.
If the address of a data item is invalid, a question mark(?) precedes the data
value column. The words 'INVALID ADDRESS' are displayed in the value
column, followed by the address, in parentheses.
H
If the data is too long to fit on the current line (32 bytes for display format,
16 bytes for hexadecimal format) it is continued on the next line. The offset
of the continued data (from the beginning of the data item) is displayed, in
decimal, on each successive line.
I
If the value specified in the OCCURS option is less than the number of
occurrences defined to the table, the first n occurrences of the table are
displayed in merged format (where n is the OCCURS option value). The rest
of the table is identified as '<UNMERGED DATA FOR tablename>'. The length
is displayed in the DEFINITION column and the data is displayed in
hexadecimal format.
If the SHOWUNMRG option is set to OFF, the unmerged data for the table is
suppressed.
The OCCURS option was set to the default value of 1 for this report. The
maximum value for the OCCURS option is 16777215.
Detector Facilit ies
132 User Guide
J
If the COBOL program contains data that does not map to a data item (such
as slack bytes or unmerged data items from a COPY... SUPPRESS
statement), the data is identified as '<UNMERGED DATA>'. The length is
displayed in the DEFINITION column and the data is displayed in
hexadecimal format.
If the SHOWUNMRG option is set to TBLS or OFF, the unmerged data is
suppressed.
K
If an INDEXED clause is specified on an OCCURS data item, the index name,
cell number, and current value is displayed on the line following the OCCURS
data item. If the current index value cannot be determined, 'N/A' is displayed
in the value column.
When displaying a variable length table, if the size of the table has not yet been
defined or cannot be determined, the maximum table size is used.
Detector Facilit ies
Chapter 3: Using Detector 133
Dumped Display
An example of a dumped report follows:
***************************
* WORKING-STORAGE SECTION *
***************************
B
BLW=0000 +000000 E3C8C9E2 40D7D9D6 C7D9C1D4 40C9E240 D7D9D6D7
D9C9C5E3 C1D9E840 D7D9D6D7 *THIS PROGRAM IS PROPRIETARY
PROP *
C D+000020 C5D9E3E8 40D6C640 C3D6D4D7 E4E3C5D9 40C1E2E2
D6C3C9C1 E3C5E240 C9D5E3C5 *ERTY OF CA INTE `*
+000040 D9D5C1E3 C9D6D5C1 D36B40C9 D5C34B40 40C3D6D7
E8D9C9C7 C8E3404D C35D40F1 *RNATIONAL, INC. COPYRIGHT (C) 1`*
+000060 F9F8F660 F1F9F9F9 40C2E840 C3D6D4D7 EE4E3C5D9
40C1E2E2 D6C3C9C1 E3C5E240 *986-1999 BY CA *
+000080 C9D5E3C5 D9D5C1E3 C9D6D5C1 D36B40C9 D5C34B40
40404040 40404040 40404040*INTERNATIONAL, INC. `*
+0000A0 F0505050 50505050 50505050 50505050 50505050
50505050 00015050 50505050
*0&&&&&&&&&&&&&&&&&&&&&&&..&&&&&&&*
+0000C0 00015050 50505050 00015050 50505050 D7C1D9C1
D4C5E3C5 D9D6D5C5 50505050
*..&&&&&&..&&&&&&PARAMETERONE&&& *
+0000E0 E6E2C9D5 C9E34040 E6E2C9D5 C9E34040 C4E3C550
50505050 50505050 50505050*WSINIT WSINIT DTE&&&&&&&&&&&&&&*
+000100 50505050 50505050 50505050 50505050 50505050
50505050 50505050 50505050
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*
LINES 00000120-00000FC0 SAME AS ABOVE
+000FE0 50505050 50505050 50505050 50505050 50505050
50505050 50505050 50505050
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*
ADDRESS 0C154088 LENGTH 81920 (X'00014000')
BLW=0001+000000 50505050 50505050 50505050 50505050 50505050
50505050 50505050 50505050
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*
LINES 00000020-00013FC0 SAME AS ABOVE
+013FE0 50505050 50505050 50505050 50505050 50505050
50505050 50505050 50505050
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*
Detector Facilit ies
134 User Guide
A dumped report contains the following information:
A
Address of the dumped storage.
B
Length of the dumped storage in decimal and hexadecimal.
C
The base locator cell associated with the dumped storage (The base locator
prints as BL, BLL, or SBL for OS/VS COBOL and as BLF, BLW, BLL, BLK, BLV,
or BLX for COBOL II and above.)
D
The displacement of the storage from the specified base locator, in
hexadecimal. (For COBOL II and above, the displacement can exceed 4 KB.)
E
The data in hexadecimal format.
F
The data in display format.
Production-time Enabling of Debugging Facilities (DBGSLEEP/DBGAWAKE)
The DBGSLEEP/DBGAWAKE feature of Detector allows you to enable debugging
facilities in otherwise production status programs. This eliminates the necessity
of recompiling, reoptimizing, or linking to the COBOL application.
■ Introduction
Debugging facilities (FDCHECK, PARMCHK, PFLOW, SUBRNGCK, XCOUNT
and/or XTIME) are primarily used during the software development cycle.
Once a program is working, it is typically moved into production status.
If the program should abend while in production, the debugging facilities
available to an optimized program can be used to help solve the problem.
However, when the program was last compiled, perhaps all debugging
oriented parms were omitted. If they were, the program must be
recompiled/optimized/linked to gain access to these facilities.
Detector Facilit ies
Chapter 3: Using Detector 135
■ DBGSLEEP
This facility directly addresses the aforementioned problem with production
programs. Simply add DBGSLEEP to whatever combination of facilities you
were using during development for your final compilation. These facilities
require no CPU overhead until activated. When a program is compiled for the
last time, prior to entering production status, DBGSLEEP is added to silence
the debugging functional calls. This is accomplished by specifying DBGSLEEP
at compile/optimize time.
DBGSLEEP causes Optimizer to prefix PFLOW, SUBRNGCK, and XCOUNT
code in the object module with an unconditional branch, thereby making the
inline code dormant; however, execution remains very efficient. In RENT
programs, a different technique is used.
■ DBGAWAKE
DBGAWAKE can be specified at execution-time to awaken these now latent
debugging facilities in one, some, or all programs in the application. Suppose
a complex COBOL application abends sometime after being placed in
production and a cursory analysis of the operating system dump yields no
insight into the cause of the problem. Add DBGAWAKE to the CAIOPTS file
and rerun the application using the same files; this enables all the latent
debugging facilities, providing maximum COBOL diagnostic information.
Subscript Range Checking (SUBRNGCK)
The Subscript Range Checking feature of CA Optimizer/II performs tests in the
object code to verify the validity of subscripts and indexes before they are used.
Invoke this feature by specifying the SUBRNGCK option in the CA Optimizer/II
option list at compile-time.
CA Optimizer/II tests each subscript and index used in a COBOL program,
compiled and optimized with the SUBRNGCK option, before it is used to
reference the subscripted data item. A subscript value is considered valid if it is
greater than zero and less than or equal to the number of occurrences specified
for the data item in its OCCURS clause. An index value is considered valid if it is
greater than or equal to zero, and less than or equal to the displacement
corresponding to the number of occurrences specified for the data item's
OCCURS clause. If the data item has an OCCURS DEPENDING ON clause, the
current value of the depending-on variable is used for the upper bound test. If
the depending-on variable does not contain a value prior to the reference to the
subscripted or indexed table, the SUBRNGCK considers the current size of the
table as undefined and will flag an error referencing the subscripted or indexed
table.
Detector Facilit ies
136 User Guide
If a subscript or index is found to be invalid, the program terminates with a S0C1
system abend code. Under Detector, the S0C1 abend is intercepted and a special
abend report is produced specifically for subscript range violations. Detector
translates the S0C1 abend into a U1125 abend which is uniquely associated with
subscript range violations. This feature stops the program from executing when
the subscript is invalid before it destroys enough data to cause some other error.
Note: Only subscripts that are calculated at runtime are checked. Literal
subscripts are not checked as these are resolved at compile-time. The optimized
program can only perform range checking tests on data items which follow ANSI
COBOL rules. The optimized program only checks coincident tables for subscripts
less than 1 because the upper range cannot be determined accurately.
Coincident tables are subscripted data names whose first elements have the
same BLF, BLW, or BLL and displacement in the data map.
Detection of Uninitialized Working-Storage (WSINIT)
Many times there are problems in execution because data items are used before
they are assigned a value. Often it is unclear whether the data item was never
given a value or whether it was assigned a value of zero. CA Optimizer/II
removes this confusion by causing all Working-Storage variables which are not
initialized by a VALUE clause to start execution with each byte set to X'50'. If
such a data item is printed, it appears as a string of ampersands (&). If you try
to perform arithmetic operations on uninitialized data items other than type
COMP, (binary), the program abends with a S0C7 abend code. Under Detector,
when a S0C7 abend occurs, Detector analyzes the cause of the abend. If WSINIT
was specified at compile-time and the cause was due to uninitialized Working
Storage, Detector will indicate this on the first page of the Detector Abend
report. This feature makes it much more difficult to use uninitialized data items.
To invoke this feature, specify WSINIT in the CA Optimizer/II option list at
compile-time.
Detection of Invalid Record Area References (FDCHECK)
When a COBOL program moves data into the record area of an unopened file or
into an input file that is at end-of-file, several types of errors can occur. If the
record area is not within the program (this is the usual case for files in the
program which do not use a READ INTO option on a READ verb, or a WRITE
FROM option on the WRITE verb), the destination of the data is unpredictable.
Some possibilities are an S0C4 abend or destruction of actual program code
resulting in a later S0C1 abend. CA Optimizer/II ensures that any attempt to
move data into the record of an unopened file or an input file at end-of-file,
results in an abend. This detection facility includes both fetch and store
protection.
Detector Facilit ies
Chapter 3: Using Detector 137
For example, if a data item in a record area of an unopened file is used in an IF
statement, Detector's FDCHECK facility will intercept this as an invalid record
area reference. Under Detector the abend is intercepted and a special abend
report is produced specifically for invalid record area references. Detector
translates the violation into a U1128 abend which is uniquely associated with
FDCHECK. The report includes not only the source statement which caused the
error, but also the FD whose record area is being referenced. To invoke this
feature, specify FDCHECK in the CA Optimizer/II option list at compile-time.
Sometimes, FDCHECK does not identify an invalid reference to the record area of
a closed file. This is because the record area assigned to a file can exist in either
of two places. In one case, the area resides within the COBOL program itself,
while in the other case, it is allocated when the file is opened.
If the record area resides within the COBOL program, the BL cell assigned to that
record area always contains the address of the record area and is never changed.
In this case, no FDCHECK code is generated because no storage violation is
possible, and also because the address of the file record would be lost if the BL
cell were modified.
If the record area is allocated when the file is opened, the BL cell which is
assigned to the record area does not contain a valid address unless the file is
OPEN. In this case, the FDCHECK facility will force a recognizable but invalid
address in the BL cell when the program is entered, and again before every
operation on the file. This will allow DETECTOR to catch any references to the
unopened file buffer and report on the error.
Parameter List Validity Checking (PARMCHK)
Parameter List Validity Checking is a Detector feature that performs the following
functions:
■ Compares the number of parameters being passed to an optimized program
with the number of parameters the Optimized program is expecting. When a
count violation occurs, a CAPD119W error message is produced.
■ Checks the parm list addresses to insure references to them will not cause
S0C4 abends at a later time. In the case of an address violation, a
CAPD120W error message is produced.
Detector Facilit ies
138 User Guide
■ Issues a message identifying the calling and called programs
■ Reduces the addressing exceptions resulting from incorrect parm lists being
passed between programs. PARMCHK will not terminate the program
execution when a violation occurs, but will simply print a warning message.
Up to 16 occurrences of parameter list violations are reported, after which
the mechanism is automatically shut off for the duration of the application
execution. To invoke this feature, specify PARMCHK at compile-time.
Note: The PARMCHK execution-time default for CA Optimizer/II is ON.
PARMCHK processing will automatically occur for any optimized OS/VS
COBOL program if Detector is active.
Parameter list validity checking is not performed on CALLs to nested
programs.
Paragraph Flow Analysis (PFLOW)
PFLOW is optional; however, it is recommended that you use it in all debugging
runs.
At compile-time, PFLOW requests a Detector Paragraph Flow report of the last
nnnnn paragraphs executed. It follows the Detector Abend or Snap report. You
can override it by specifying the PFLOW OFF option at execution-time. PFLOW
turns on DTECT. If NODTECT, CICS, IDMSDC, or, TPMON is specified, PFLOW is
suppressed.
When used during execution-time, it generates an optional section of the
Detector Abend report which lists the source name and address of the last nnnnn
paragraphs executed up to the time of abend. 'nnnnn' is a programmer-specified
value rounded up to the next power of two, not to exceed 32,768. The default at
compile and execution-time is 64.
For OS/VS Cobol programs, Detector Paragraph Flow reports are limited to the
last 64 paragraphs executed. If you specified PFLOW at compile-time, you can
change the size of the PFLOW table at execution-time as described above.
SNAP
SNAP is controlled by inserting CALLs to CAODSNAP at points you choose in your
program and by the SNAP option at execution-time. For programmers familiar
with CA Optimizer OS, CALLs to CPXMSNAP are still valid as CPXMSNAP. When
specifying the execution option, 'SNAP nnnn', remember nnnn defines the sum of
all SNAP CALLs to take for all programs in the application.
Usage Considerations
Chapter 3: Using Detector 139
INTERCEPTS
This option provides you with all the information you need to correct a data
exception or decimal divide exception. After Detector generates the information
for the Intercepts report, it corrects the offending data item. In the case of a data
exception, it plugs the item in error with the value 1. With a decimal divide
exception, Detector changes the divisor to 1.
Detector corrects the bad data to prevent multiple intercepts for the same item.
After correcting the data, Detector reexecutes the abending instruction so that
predictions can be made concerning the outcome.
Usage Considerations
This section provides information for the following:
■ Detector with IMS
■ Dynamic allocation
■ Hierarchy of information
■ Restrictions
Detector with IMS
Detector can be used in IMS environments. A complete discussion on how to use
Detector under IMS can be found in the Installation Guide.
Dynamic Allocation
This subsection covers dynamic allocation of DD statements for both Detector
and Analyzer.
If you do not provide the required DD statements, the Execution Monitor uses
the dynamic allocation facilities of the operating system to allocate them for you.
After reviewing the options' specifications used here as defaults, you will
ordinarily set up your application such that the data sets are dynamically
allocated for you. If any of the options for any data set conflict with your
requirements, override the specification by supplying a DD statement (or for a
CLIST, an ALLOCATE statement).
Usage Considerations
140 User Guide
The following table describes the dynamic allocation specifications used in
standard JCL keyword/value notation:
File Allocation Specifications Usage Notes
CAITIMSV DISP=(NEW,DELETE,DELETE),
DSN=&&TIMSV,
SPACE=(TRK,(30,30),RLSE),
UNIT=SYSDA
See note 1 and 8.
See note 2 and 8.
See note 3 and 8.
CAIPRTLB DISP=SHR,DSN=your_repository_dsn See note 4 and 8.
CAIPRINT SYSOUT=* See notes 5, 6, and
8.
CAIPRNT1 SYSOUT=* See note 5 and 8.
CAIPRNT2 SYSOUT=* See note 5 and 8.
SYSUDUMP SYSOUT=* See note 5.
CAISYM DISP=SHR,DSN=your_symbolic.file.dsna
me
See note 7 and 8.
Notes:
1. This data set is allocated if:
■ The DD statement for CAITIMSV is required (for counts and/or timings)
■ XREPORT ON is in effect, and
■ The DD statement is omitted.
The Analyzer opens this file for output, writes the counts and/or timings data
to it during the application execution, and closes the file. Analyzer Reporter
opens the file for input, processes the counts and timings data records, and
produces the Analyzer reports. When the job step ends in any fashion, the
data set is deleted.
2. The amount of space required is a function of many variables. For dynamic
allocation, the space allocated has been set high enough to accommodate
any application.
The UNIT name used during dynamic allocation is an installation option. The
default is SYSDA. If you require a different UNIT name, contact your
Systems Programmer or supply your own DD or ALLOCATE statement.
The data set name used during dynamic allocation is supplied as follows:
■ From the user exit, CAOUPRT. For more information, see the chapter
―User Exits‖ in the Installation Guide.
■ From the value of the PRTLIB keyword option in the CAIOPTS file.
Usage Considerations
Chapter 3: Using Detector 141
■ From the PRTLIB option defined in default CSECT CAODFRX. The source
for CAOUDFRX can be found in library CAI.PPOPTION.
In each of the above cases, the data set must have been created using the
JCL provided for the Allocate CAIPRINT Repository Library installation step.
For more information, see the chapter ―Installation Steps‖ in the Installation
Guide.
3. The SYSOUT class used during dynamic allocation is an installation option.
The default is *. This is the default SYSOUT class specified in the JCL
MSGCLASS. If you require a different SYSOUT class, you can either see your
systems programmer, or you can supply your own DD or ALLOCATE
statement.
The destination of a dynamically allocated CAIPRINT DD can be controlled
using the CAOCUDSN user exit. This exit allows a data set name, unit and
volume to be specified based on criteria such as the job name or userid.
Information regarding CAOCUDSN can be found in the chapter ―User Exits‖
in the Installation Guide.
4. This DD is dynamically allocated only if it does not already exist in your JCL
and you have specified a value for the SYMDSN keyword in CAIOPTS.
5. Your installation may have selected an alternate name for this DD in your
defaults table CAOUDFRX. See your system administrator if you are not
sure.
Hierarchy of Information
When Detector produces an Abend report, all of the programs that are active at
the time of the abend are included, unless the ACTONLY option is set to ON, or
unless individual programs have been excluded from reporting in your
installation defaults.
Several factors affect how much information is provided for each program,
including:
■ For COBOL or PL/I programs, storage areas and control blocks are broken
out and formatted, and compiler statistics are provided.
■ If your PROTSYM (or CSL) contains symbolic information for an active
COBOL, PL/I, or Assembler program, the reports are enhanced to include the
last executed source statement, the names and values of the variables, and
more.
■ For programs that were optimized with the DTECT option, Detector displays
record counts for files and identifies the location of the last external transfer
of control. Paragraph flow analysis is also included when the PFLOW option is
also used.
Usage Considerations
142 User Guide
Restrictions
Detector cannot operate under CICS, HOGAN, IDMSDC, SHADOW, CMS or when
multitasking is used, with the exception of IMS/VS message processing regions.
For the effective use of Detector, you must use standard IBM-type program
linkage conventions. For information on how to set up Detector for use in IMS
environments, see the chapter ―Special Environments‖ in the Installation Guide.
In an operating environment where your own in-house systems have taken
responsibility for catching abends, it is possible to obtain the full Detector Abend
report. See the chapter ―Special Usage Considerations‖ in the Installation Guide.
Chapter 4: Using Extended Detector 143
Chapter 4: Using Extended Detector
Extended Detector operates both in production and test environments as a
productivity tool for programmers. Like Detector, it provides you with valuable
diagnostic information to simplify the debugging process. Unlike Detector, there
are no compile-time requirements or JCL changes, and no execution-time
overhead exists.
Once installed, Extended Detector is automatically available to every user.
Exclusion criteria may be selected at installation time to allow for system dumps
instead of Extended Detector reports for certain abends.
Extended Detector provides reports when a system dump has been requested as
the result of an abend or when a SNAP request has been made by a call to
CAODSNAP. Until that time, there is no intervention of any kind. See Extended
Detector with Language Environment (LE) for additional information.
Extended Detector provides reports for all types of programs. There is no
requirement that the program be optimized using CA Optimizer/II, nor is there a
requirement that the program be COBOL, PL/I, or Assembler. There are several
levels of information which might be available depending on the type of program
which has abended. See Hierarchy of Information later in this chapter for
additional information.
The content of an Extended Detector report is completely controlled by the
installation defaults and override options. It is also possible to receive a system
dump in addition to Extended Detector reports.
Extended Detector Options
You may change the default value of most Extended Detector options by coding
an override in the options file at execution-time. The options file has a default
ddname of CAIOPTS (which can be customized at installation time). At
execution-time, your options file can be dynamically allocated if desired. This
allows each user to customize their options differently without coding any
additional JCL.
Extended Detector Options
144 User Guide
The following table provides a listing of all Extended Detector options available
as overrides at execution-time:
Extended Detector Options
Execution-time
View-time
Standard Options
BLLMAX REGMAX
DB2ACTIV RPTSZ80
DUMP SAVEHEAP
PRTLIB SNAP
PRTREPT SYMDSN
Formatting Options
ASMINST MRGDATA
BINFRMT MRGDSECT
FILES MRGFILES
FIRST128 MRGLINK
GRPADDR MRGLOCAL
LINECNT MRGPARMS
LINKAGE MRGSTAT
LOCALSTOR MRGWORK
MEMMAP OCCURS
MERGEDB SAVEAREA
MRGAUTO SHOWHEAP
MRGBASED SHOWUNMRG
MRGCNTLD WORKSTOR
Data Management Control
Blocks
BLOCKS IOB
DCB UCB
DEB
VSAM Control Blocks
ACB PLH
AMB RPL
AMBL VSAMIDX
Log and Notify Options
LOGROS LOGUNI
LOGTSO WTO
ASMINST
BINFRMT
FILES
FIRST128
GRPADDR
LINECNT
LINKAGE
LOCALSTOR
MEMMAP
MERGEDB
MRGAUTO
MRGBASED
MRGCNTLD
MRGDSECT
MRGFILES
MRGLINK
MRGLOCAL
MRGPARMS
MRGSTAT
MRGWORK
OCCURS
SAVEAREA
SHOWHEAP
SHOWUNMRG
WORKSTOR
Extended Detector also supports the following compile-time options:
Option Description
SUBRNGCK Detects out-of-range subscripting or indexing.
FDCHECK Detects invalid references or modifications of file record areas.
WSINIT Detects data related errors caused by uninitialized
WORKING-STORAGE.
These compile-time options usually force the DTECT option when used, which
causes a Detector Report instead of an Extended Detector Report. If you want to
use any of these options without forcing the DTECT option at compile-time, you
must select EDS=YES in your compile-time installation defaults (CAOUDFOX).
JCL Requirements
Chapter 4: Using Extended Detector 145
JCL Requirements
By default, Extended Detector does not require any additional JCL at
execution-time. All CA Optimizer/II Runtime Library modules should be made
available at installation time (through LPA or LINKLIST), and Extended Detector
itself is made available using CA Common Services for z/OS. For more
information, see the Installation Guide.
Because Extended Detector remains dormant until a dump is requested as the
result of an abend, you must include a SYSUDUMP DD statement in your JCL to
receive Extended Detector reports. If you want to suppress the system dump,
specify DUMP OFF in your options file overrides or DUMP=OFF in your installation
defaults (CAOETABL).
The repository used by Extended Detector has a default name of CAIPRTLB which
may be customized at installation time. This file is dynamically allocated, if not
included in the JCL, using the data set name specified at installation time. User
exit CAOCUPRT may be used to select a repository library based upon criteria
such as the job name or userid. The user may also override the default repository
library by specifying the PRTLIB execution option.
The report file used by Extended Detector has a default name of CAIPRINT which
may be customized at installation time. This file is dynamically allocated, if not
included in the JCL. The SYSOUT class for dynamic allocation is also an
installation option with a default value of SYSOUT=*.
The options file has a default name of CAIOPTS which can be customized at
installation time. This file can also be dynamically allocated if not included in the
JCL at execution-time. The high-level qualifier of the options file for dynamic
allocation is equal to the userid while the remainder of the data set name is
selected at installation time. The default name is userid.CAIOPTS.
Symbolic information is obtained from the PROTSYM or CSL files defined in your
installation defaults. To use a symbolic file that has not been defined in your
defaults, include a CAISYM DD statement for that symbolic file, or use the
SYMDSN option in CAIOPTS to dynamically allocate the file. Your installation may
have selected an alternate name for CAISYM, so check with your system
administrator.
Suppressing Extended Detector Reports
146 User Guide
Suppressing Extended Detector Reports
In addition to the exclusion criteria provided with the defaults member
CAOETABL, you can suppress an Extended Detector report for any job step.
To suppress abend reports, add a DD statement to your JCL.
The STOPDD option in CAOETABL defines the name of the DD. The default value
is CAOESTOP. The following is an example of using this DD with the default
value:
//CAOESTOP DD DUMMY
When the DD statement specified in your defaults table is present, CA SymDump
Batch is bypassed and your standard dump facility is invoked.
Extended Detector Reports
The reports produced by Extended Detector are almost identical to those
produced by Detector. Only Abend and Snap reports are provided. Intercepts are
not supported by Extended Detector.
The following lists the Extended Detector reports available by program:
All Programs
■ Abend Report Box *
■ Module Call Sequence
■ Save Area Trace
■ LE Heap Storage
■ Open Files Report
■ Options Summary
COBOL Programs
■ File Section *
■ WORKING-STORAGE Section *
■ LOCAL-STORAGE Section *
■ Linkage Section *
■ Memory Map
■ Registers
Extended Detector Reports
Chapter 4: Using Extended Detector 147
PL/I Programs
■ Procedure Variables *
■ Registers
■ DSA
■ Static Program Storage *
■ External Storage *
■ Heap Storage
■ Program Control Blocks
Assembler Programs
■ Registers
■ Storage Areas *
■ All Other Programs
■ Abending Instruction
■ Operand Values
■ Registers at Abend
* May include symbolic information if available.
A sample of each report is provided in the chapter "Using Detector."
WARNING! Each call to CAODSNAP generates a separate SNAP report in your
central VSAM repository. If your program contains multiple SNAP calls or a SNAP
call within a loop, you can write the output to the CAIPRINT DD alone, to avoid
flooding the repository. See the PRTREPT option description in Chapter 11.
Hierarchy of Information
148 User Guide
Hierarchy of Information
When Extended Detector produces an abend report, all of the programs that are
active at the time of the abend are included, unless the ACTONLY option is set to
ON, or unless individual programs have been excluded from reporting in your
installation defaults.
Several factors affect how much information is provided for each program,
including:
■ For COBOL or PL/I programs, storage areas and control blocks are broken
out and formatted, and compiler statistics are provided.
■ If your PROTSYM (or CSL) contains symbolic information for an active
COBOL, PL/I, or Assembler program, the reports are enhanced to include the
last executed source statement, the names and values of the variables, and
more.
■ For programs that were optimized with the DTECT option, Detector displays
record counts for files and identifies the location of the last external transfer
of control. Paragraph flow analysis is also included when the PFLOW option is
also used.
Extended Detector with Language Environment (LE)
If your application is executing under the Language Environment (LE) runtime, it
is possible to receive Extended Detector reports even when an abend and system
dump do not occur.
Because LE applications can sometimes terminate abnormally without an abend
or system dump, two callable interfaces have been provided, (CAOECEEX and
CEEBXITA, respectively).
To use one of these interfaces, you must modify the appropriate LE user exit as
described in the Installation Guide.
For abending LE applications, Extended Detector functions as usual with no
additional considerations.
Note: The LE option TERMTHDACT(UADUMP) generates a U4039 abend when an
unhandled condition occurs of severity 2 or greater. Extended Detector will not
report on this abend.
Usage Considerations/Restrictions
Chapter 4: Using Extended Detector 149
Usage Considerations/Restrictions
Extended Detector does not provide any reporting for programs that abend
under CICS or other teleprocessing environments.
For the most productive use of Extended Detector, we recommend that your
applications use standard IBM-type program linkage conventions whenever
possible.
Chapter 5: Using the CAIPRINT Repository Viewer 151
Chapter 5: Using the CAIPRINT
Repository Viewer
The CAIPRINT Repository Viewer can be used to view Detector and Extended
Detector reports that have been written to your central VSAM repository. Each
report is automatically written to the repository defined in your runtime defaults
member, CAOUDFRX, if the PRTREPT option is set to REPOS or BOTH.
The CAIPRINT Repository Viewer provides the following benefits:
■ A single interface for viewing, printing, and maintaining Detector and
Extended Detector reports
■ Easy access to multiple CAIPRINT repositories
■ View-time control over the formatting options
■ View-time addition of symbolic information to your reports
■ Utilities for adding, viewing, printing, and maintaining symbolic information
Start the Viewer
During installation, the ISPF Primary Option menu should be updated to include
a selection for the CAIPRINT Repository Viewer. If this has not been completed,
see the Installation Guide.
Select the appropriate option from the menu to start the viewer.
The Report Index
152 User Guide
The Report Index
The Report Index panel displays all Detector and Extended Detector reports that
have been written to the selected repository, sorted in descending order by date
and time.
CA Optimizer/II r8.5 ------------- Report Index ---------------- Line 1 of 68
Command ===> Scroll ===> CSR
CAPI100I Repository contains 68 report(s) ------------------------------------- Repository Dsname: CAI.PRTLIB
1754 Data Records 680 Used 38.7% Full
Filter: Jobname * Step/Tsk * Program * Offset * Comp * UserID * Lock * System *
------------------------------------------------------------------------- Lvl 1
Cmd JobName Step/Tsk Program Offset Comp Date Time UserId
. WANDA07D TESTCOB2 SUBCOB 000026A S=0C7 2007/03/05 12.41 TSTUSR7
. USRSC01A STEP1 CARXDEMA 000013C S=0C7 2007/03/02 18.35 TSTUSR1
. USER002R RUN n/a n/a RC=0000 2007/03/02 18.34 TSTUSR3
. WANDA07D TESTCOB2 SUBCOB 000026A S=0C7 2007/03/02 18.20 TSTUSR7
. WANDA07C TESTCOB2 SUBCOB 000026A S=0C7 2007/03/02 17.09 TSTUSR7
. WANDA07C TESTCOB2 SUBCOB 000026A S=0C7 2007/03/02 16.25 TSTUSR7
. WANDA07A S0C1 RENTSCAN 0000AFA S=0C2 2007/03/01 11.00 TSTUSR7
. USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/03/01 10.41 TSTUSR3
. USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/03/01 10.34 TSTUSR7 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/02/28 10.06 USER01
. WANDA07Z S0C1 TESTSCAN 0000AFA S=0C2 2007/02/28 09.43 USER01
. USRSC01B RUN CARXDEMA 000013C S=0C7 2007/02/23 14.34 USER02 . USRSC01A RUN CEEPLPKA 00BAE7A U=0666 2007/02/23 14.33 USER02
. USRSC01A STEP1 CARXDEMA 000013C S=0C7 2007/02/23 14.28 USER02
. USRSC01A RUN ABEND1 0000014 U=0001 2007/02/21 15.26 TSTUSR2
When the viewer is started for the first time, the repository data set name is
determined using your installation defaults. For all subsequent executions, the
value is retrieved from your personal user profile.
The Report Index
Chapter 5: Using the CAIPRINT Repository Viewer 153
Select a Repository
You have an option of selecting a repository of your choice.
To select a repository
1. Use the SETINDEX command to switch to a different repository.
You are prompted for the new repository name as shown in the following
screen:
CA Optimizer/II r8.5 -----------Report Index ------------------- Line 1 of 68 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- Repository +------------------------------------------------------+ 1754 Da | | Filter: Jo | Enter Repository Dsname: | Co | | ---------- | ===> | ----- Lvl 1 Cmd JobNa | | UserId . WANDA +------------------------------------------------------+ 1 TSTUSR7 . USRSC01A STEP1 CARXDEMA 000013C S=0C7 2007/03/02 18.35 TSTUSR1 . USER002R RUN n/a n/a RC=0000 2007/03/02 18.34 TSTUSR3 . WANDA07D TESTCOB2 SUBCOB 000026A S=0C7 2007/03/02 18.20 TSTUSR7 . WANDA07C TESTCOB2 SUBCOB 000026A S=0C7 2007/03/02 17.09 TSTUSR7 . WANDA07C TESTCOB2 SUBCOB 000026A S=0C7 2007/03/02 16.25 TSTUSR7 . WANDA07A S0C1 RENTSCAN 0000AFA S=0C2 2007/03/01 11.00 TSTUSR7 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/03/01 10.41 TSTUSR3 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/03/01 10.34 TSTUSR7 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/02/28 10.06 USER01 . WANDA07Z S0C1 TESTSCAN 0000AFA S=0C2 2007/02/28 09.43 USER01 . USRSC01B RUN CARXDEMA 000013C S=0C7 2007/02/23 14.34 USER02 . USRSC01A RUN CEEPLPKA 00BAE7A U=0666 2007/02/23 14.33 USER02 . USRSC01A STEP1 CARXDEMA 000013C S=0C7 2007/02/23 14.28 USER02 . USRSC01A RUN ABEND1 0000014 U=0001 2007/02/21 15.26 TSTUSR2
2. Enter the new data set name, fully qualified and enclosed in single quotation
marks, or leave this field blank to view the default repository for the current
system.
Report Index Fields
A static information area is displayed at the top of the display, immediately
below the command line and separated by dashed lines. The following
information is displayed in this area:
Repository Dsname
The data set name of the currently selected repository.
Data Records
The number of data records available in the selected repository.
The Report Index
154 User Guide
Used
The number of used data records in the selected repository.
Full
The percentage of used data records.
Filters
Lists eight updatable fields (Jobname, Step/Tsk, Program, Offst, Comp,
UserID, Lock, System) that can be used to filter the list of reports that can be
selected.
The final static line in this display is the highlighted header line, containing all of
the column headers for the report list.
The data portion of the display is both horizontally and vertically scrollable and
can be sorted in ascending or descending order on any column header. For all
reports in the list, the following information is displayed:
Job
The name of the job that produced the report.
Step
The name of the step that produced the report.
Program
The name of the abending program that caused the report to be produced.
Offset
The offset in the abending program where the abend occurred.
Comp
The completion code from the step that produced the report.
Date
The date on which the report was produced.
Time
The time at which the report was produced.
Userid
The name of user that submitted the job that produced the report.
Lock
The name of the user that owns a lock on the report to prevent deletion.
System
The name of the system on which the report was created.
The Report Index
Chapter 5: Using the CAIPRINT Repository Viewer 155
Asid
The address space ID of the job which created the report.
#Recs
The number of physical repository records occupied by the report.
S I P
Indicates whether the report contains Snaps, Intercepts, or Parmchk.
Primary Commands
The following primary commands are available from the Report Index panel:
Command Description
BOTTOM Scrolls the display to the last line.
DOWN Scrolls the display forward.
FIND Locates text in the current display.
FM Invokes CA File Master Plus to view a data set.
HELP Requests help for a command, message, or topic.
KEEP Adds data from the current display to the Keep Window.
LEFT Scrolls the display to the left.
OPTIONS Displays the current installation options in effect.
PRINT Prints all or part of the current display.
PROFILE Views and updates display preferences.
REFRESH Refreshes the current display.
RFIND Repeats a previous FIND command.
RIGHT Scrolls the display to the right.
SET Selects a new repository.
SORT Sorts the current display on any column heading.
SYM Displays the Symbolic Utilities menu.
TOP Scrolls the display to the first line.
UP Scrolls the display backward.
A description of each primary command can be found later in this chapter.
For online help for any primary command, enter HELP command-name.
The Report Index
156 User Guide
Line Commands
The following line commands can be entered in the Cmd column:
Command Description
D Deletes a report from the repository.
L Locks a report to prevent accidental deletion.
N Opens the electronic notepad for a report.
O Dynamically modifies the formatting options for a report.
P Prints a report to a printer, file, or other destination.
S Selects a report for viewing.
U Unlocks a report to allow deletion.
The Report Index
Chapter 5: Using the CAIPRINT Repository Viewer 157
Delete a Report
You can delete a report that is not required from the repository.
To delete a report from the repository
1. Type the D line command.
You are prompted for confirmation to prevent accidental deletion as shown
next:
CA Optimizer/II r8.5 ------------ Report Index ----------------- Line 1 of 68 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- Repository +----------------------------------------------------+ 1754 Dat | Press ENTER to confirm the delete request for | Filter: Job | the selected report: | * Com | | * ----------- | Program: CARXDEMA Offset: 000013C Comp: S=0C7 | ------ Lvl 1 Cmd JobNam | Created: 2007/02/23 at 14.28 | e UserId . WANDA0 | | 41 TSTUSR7 . USRSC0 | Press END to cancel the delete request. | 35 TSTUSR1 . USER00 | | 34 TSTUSR3 . WANDA0 | Display this message? (Y/N) ===> Y | 20 TSTUSR7 . WANDA0 +----------------------------------------------------+ 09 TSTUSR7 . WANDA07C TESTCOB2 SUBCOB 000026A S=0C7 2007/03/02 16.25 TSTUSR7 . WANDA07A S0C1 RENTSCAN 0000AFA S=0C2 2007/03/01 11.00 TSTUSR7 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/03/01 10.41 TSTUSR3 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/03/01 10.34 TSTUSR7 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/02/28 10.06 USER01 . WANDA07Z S0C1 TESTSCAN 0000AFA S=0C2 2007/02/28 09.43 USER01 . USRSC01B RUN CARXDEMA 000013C S=0C7 2007/02/23 14.34 USER02 . USRSC01A RUN CEEPLPKA 00BAE7A U=0666 2007/02/23 14.33 USER02 d USRSC01A STEP1 CARXDEMA 000013C S=0C7 2007/02/23 14.28 USER02 . USRSC01A RUN ABEND1 0000014 U=0001 2007/02/21 15.26 TSTUSR2
2. Press Enter to delete the report, or END to cancel the request.
To suppress confirmation for the remainder of the session, enter N in the Display
this message? field located at the bottom of the confirmation window.
To suppress all delete confirmations for your ID, use the PROFILE command.
The Report Index
158 User Guide
Locking and Unlocking Reports
You can lock a report to ensure that it is not edited or deleted by other users.
To lock or unlock reports
1. Type the L line command.
Your userid appears in the Lock column, indicating that you have requested
a lock for the report. While a report is locked, it cannot be deleted from the
repository.
2. Type the U line command to unlock a report that was previously locked.
Use the Electronic Notepad
Use the N line command to open the Electronic Notepad for a report. The
Electronic Notepad can be used as a scratch pad while debugging a problem.
Your notes are stored in your user profile, are unique to the selected report, and
can only be viewed from your own userid.
For a complete description of the Electronic Notepad, see Using the Electronic
Notepad (see page 173).
Modify Formatting Options
When a report is created, your installation defaults and CAIOPTS overrides are
used to select formatting options for the report. Using the Repository Viewer,
you can change many of these formatting options dynamically to control the
format and content of your reports.
The Report Index
Chapter 5: Using the CAIPRINT Repository Viewer 159
Enter the O line command to display the Report Options panel.
CA Optimizer/II r8.5------ Report Options ------------- Line 1 of 15 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- JobName RYARO02S StepName RUN UserId RYARO02 Date 2004/03/05 Program PLITEST1 Offset 0001002 Comp S=0C7 Time 14.50 ------------------------------------------------------------------------- Lvl 2 Display Options Merging Options ASMINST ===> ON BINFRMT ===> DEC FILES ===> ON GRPADDR ===> ON FIRST128 ===> OFF MERGEDB ===> ON LINECNT ===> 60 MRGAUTO ===> OFF LINKAGE ===> ON MRGBASED ===> OFF LOCALSTOR ===> ON MRGCNTLD ===> OFF MEMMAP ===> ON MRGDSECT ===> OFF RPTSZ80 ===> OFF MRGFILES ===> ON SAVEAREA ===> ON MRGLINK ===> ON SHOWHEAP ===> OFF MRGLOCAL ===> ON WORKSTOR ===> ON MRGPARMS ===> OFF MRGSTAT ===> OFF MRGWORK ===> ON OCCURS ===> 1 SHOWUNMRG ===> NONE -------------------------------------------------------------------------------
The following formatting options can be modified:
Display Options
ASMINST ON|OFF
Displays the abending Assembler instruction.
FILES ON|OFF
Displays the Open Files report.
FIRST128 ON|OFF
Displays only the first 128 bytes of each record.
LINECNT nnn
The number of lines per formatted page.
LINKAGE ON|OFF
Displays the linkage section for COBOL programs.
LOCALSTOR ON|OFF
Displays local storage for COBOL programs.
MEMMAP ON|OFF
Displays the TGT, DSA, and PGT memory maps.
RPTSZ80 ON|OFF
Formats when possible using 80-byte output.
The Report Index
160 User Guide
SAVEAREA ON|OFF
Displays the Save Area Trace report.
SHOWHEAP ON|OFF
Displays LE or PL/I heap storage.
Note: SHOWHEAP ON requires SAVEHEAP ON at execution time for LE
enabled COBOL or Assembler programs.
WORKSTOR ON|OFF
Displays the working storage for COBOL programs.
Merging Options
BINFRMT DEC|HEX
Displays binary values as decimal or hexadecimal.
GRPADDR ON|OFF
Displays the group address for 01-items.
MERGEDB ON|OFF
Merges symbolic names onto Database reports.
MRGAUTO ON|OFF
Merges symbolic names onto PL/I automatic storage.
MRGBASED ON|OFF
Merges symbolic names onto PL/I based variable storage.
MRGCNTLD ON|OFF
Merges symbolic names onto PL/I controlled storage.
MRGDSECT ON|OFF
Merges symbolic names onto Assembler DSECT storage.
MRGFILES ON|OFF
Merges symbolic names onto file section for COBOL.
MRGLINK ON|OFF
Merges symbolic names onto linkage section for COBOL.
MRGLOCAL ON|OFF
Merges symbolic names onto local storage for COBOL.
MRGPARMS ON|OFF
Merges symbolic names onto PL/I parameter storage.
MRGSTAT ON|OFF
Merges symbolic names onto PL/I static storage.
The Report Index
Chapter 5: Using the CAIPRINT Repository Viewer 161
MRGWORK ON|OFF
Merges symbolic names onto working storage for COBOL.
OCCURS nnn|MAX
Number of table elements to display for each array.
SHOWUNMRG ON|OFF|TBLS
Displays storage for unmerged data.
Modify the formatting options as desired and press END to save your changes to
the repository or CANCEL to return to the Report Index panel without saving.
The Report Index
162 User Guide
Print a Report
You have an option of printing a report to a printer, file, or other destination.
To print a report
1. Type the P line command to send a report to a printer, file, or other
destination.
The Print Options pop-up window displays:
CA Optimizer/II r8.5 ------------ Report Index ----------------- Line 1 of 68 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- Repo +------------------------------------------------------------------+ 1 | | Filt | Print Options: * Press ENTER to PRINT * | | | ---- | Printer ===> SYSTEM1A.USER01 | Lvl 1 Cmd | or | rId P | Dsname ===> 'USER01.RPTFILE' | USR7 . | Member ===> NEWMEM Disposition ===> NEW | USR1 . | | USR3 . | Copies ===> 001 | USR7 . | Class ===> X | USR7 . | PageDef ===> | USR7 . | FormDef ===> | USR7 . | Chars ===> | USR3 . | | USR7 . | Format Y/N ===> Y | R01 . | | R01 . | | R02 . | | R02 . | | R02 . +------------------------------------------------------------------+ USR2
2. Complete the following fields and press Enter to print the report, or CANCEL
to return to the Report Index panel without printing.
Printer
The destination to which the printed output is sent. You can specify a
printer name, node.userid, or blank to spool the printed output to your
TSO userid.
Dsname
The name of a data set to which the printed output is written.
Member
If you are printing the report to a partitioned data set, enter the member
name in this field.
The Report Index
Chapter 5: Using the CAIPRINT Repository Viewer 163
Disposition
Specify the disposition of the data set to which the output should be
printed. This field is relevant only if printing to a data set. If the value is
NEW or MOD, a second window pops up to request allocation
parameters.
Values: SHR, OLD, NEW, and MOD
Note: For a description of the fields on the window, see the PRINT
command.
Copies
Lets you define the number of copies to be printed.
Class
Lets you define the sysout class to use to allocate the print data set.
PageDef
Lets you define the name of the library member that PSF uses to define
the page layout for printing on a 3800 Printing Subsystem Model 3.
FormDef
Lets you define the name of the library member that PSF uses to define
the form layout for printing on a 3800 Printing Subsystem Model 3.
Chars
Lets you define the name of the character arrangement tables for
printing on a 3800 Printing Subsystem Model 3.
Format
Lets you specify whether to print reports for viewing at your installation.
Default: Y
Values:
Y
Prints reports for viewing at your installation.
N
Does not print reports for viewing. Set this field to N only when
instructed to do so by CA Technical Support for diagnostic purposes.
The Report Tree
164 User Guide
3. Press CANCEL to return to the Report Index panel without printing.
Usage Notes:
■ When one of more fields are changed before pressing Enter, the fields are
validated and redisplayed along with the message Press Enter to Print. To
continue, press Enter again.
■ Reports are printed using the formatting options defined in the repository.
Use the O line command prior to printing to confirm these options.
Select a Report for Viewing
Use the S line command to select a report for viewing.
When a report is selected for viewing, the report data is formatted using your
customized formatting options and the available symbolic information. The
report is then loaded into memory, a table of contents called the Report Tree is
built, and the Report Tree panel displays.
The Report Tree
The Report Tree panel displays all of the key report sections within your report,
sorted in the order in which they appear. It provides a Óshort cut• to any
section within the selected report.
CA Optimizer/II r8.5-- Report Tree -------------------- Line 1 of 13 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- JobName RYARO02A StepName RUN UserId RYARO02 Date 2004/03/05 Program CAO2DEMO Offset 00041B6 Comp S=0C7 Time 15.07 Report Contains: Intercept(s), Snap(s), Parmchk ------------------------------------------------------------------------- Lvl 2 Cmd LineNo. Description . 1 - Job=RYARO02A . 1 |-Input Options Display . 62 + |-Intercept Report . 233 + |-Snap of CAO2DEMO . 1128 |-Parmchk Report . 1183 - |-Abend S=0C7 (CAO2DEMO) . 1197 | |-Abending Statement . 1212 | |-Abending Instruction . 1230 | |-Module Call Sequence . 1242 + | |-Program CAO2DEMO . 12793 + | |-Open Files . 12809 | |-Save Area Trace . 12833 |-Execution Options -------------------------------------------------------------------------------
The Report Tree
Chapter 5: Using the CAIPRINT Repository Viewer 165
To instantly position your display to any section with the report, enter S in the
Cmd column next to that section and press Enter. To position your display to the
top of the report, enter S next to the first entry in the Report Tree.
Once your display is positioned within the report, you can reposition your display
using the standard positioning commands (UP, DOWN, FIND, RFIND, LOCATE) or
press End to return to the tree and select a different short cut.
Report Tree Fields
A static information area is displayed at the top of the panel, immediately below
the command line and separated by dashed lines. The following information is
displayed in this area:
Job Name
Name of the job for which the report was created.
Step Name
Name of the step for which the report was created.
Userid
Name of the user owning the job for which the report was created.
Date
Date on which the report was created.
Program
Name of the program in control at the time of the error.
Offset
Offset within the program at the time of the error.
Comp
Completion code (S=xxx, U=dddd, or RC=dddd).
Time
Time at which the report was captured.
Report Contains
This field appears when a report contains one or more snapshots, and for
reports created by CA Optimizer or CA Optimizer/II, when a report contains
INTERCEPTS or PARMCHK violations.
The final static line in this display is the highlighted header line, containing all
of the column headers for the Report Tree panel.
The data portion of the display is scrollable but cannot be sorted. For each
entry in the Report Tree, the following information is displayed:
The Report Tree
166 User Guide
LineNo
The line number within the report where the report section corresponding to
the tree entry begins.
Description
A brief description of the report section, generally matching the header
found at the top of the section in the report.
Primary Commands
The following primary commands are available from the Report Tree panel:
Command Description
BOTTOM Scrolls the display to the last line.
DOWN Scrolls the display forward.
FIND Locates text in the current display.
FM Invokes CA File Master Plus to view a data set.
HELP Requests help for a command, message or topic.
KEEP Adds data from the current display to the Keep Window.
LEFT Scrolls the display to the left.
OPTIONS Displays the current installation options in effect.
PRINT Prints all of part of the current display.
PROFILE Views and updates display preferences.
RFIND Repeats a previous FIND command.
RIGHT Scrolls the display to the right.
SYM Displays the Symbolic Utilities menu.
TOP Scrolls the display to the first line.
UP Scrolls the display backward.
VIEW Displays symbolic listing for a program.
A description of each primary command can be found later in this chapter.
For online help for any primary command, enter HELP command-name.
The Report Tree
Chapter 5: Using the CAIPRINT Repository Viewer 167
Line Commands
The following line commands are available from the Report Tree panel:
Command Description
+ Expands an entry in the tree to view its subordinate sections.
- Collapses an entry in the tree to hide its subordinate sections.
! Explodes an entry in the tree by first expanding the entry and
then expanding each of its subordinates, recursively, until all of
the sections are visible.
/ Toggles an entry between the expanded and collapsed views.
S Selects a report section for viewing.
Expand and Collapse the Tree View
Some report sections are logical subsets of other larger sections, and this
relationship is represented in the tree using indentation and an increasing
number of vertical bars.
In the example below, an Abend report for program CAO2DEMO, which begins on
line 1183, has six subordinate report sections.
. 1183 - |-Abend S=0C7 (CAO2DEMO)
. 1197 | |-Abending Statement
. 1212 | |-Abending Instruction
. 1230 | |-Module Call Sequence
. 1242 + | |-Program CAO2DEMO
. 12793 + | |-Open Files
. 12809 | |-Save Area Trace
The Abend report for program CAO2DEMO is displayed with only one vertical bar.
Each of the six subordinate sections are displayed with two vertical bars,
demonstrating that they are each logically part of the Abend report.
A section in the report tree is expanded when its subordinate sections are visible
in the display, and collapsed when its subordinate sections are not visible. An
expanded section is identified in the display by the Ó-Ó symbol immediately to
the right of the line number, while a collapsed section is identified by a Ó+•
symbol. When neither symbol appears, the report section has no subordinate
sections.
View a Report
168 User Guide
This example shows the same report tree, except that the entry for Program
CAO2DEMO has been expanded to show its subordinate sections. This view now
contains a direct Óshort cut• to all of this program's data sections and other key
reports.
. 1183 - |-Abend S=0C7 (CAO2DEMO) . 1197 | |-Abending Statement . 1212 | |-Abending Instruction . 1230 | |-Module Call Sequence . 1242 - | |-Program CAO2DEMO . 1267 + | | |-File Section . 1275 | | |-Working-Storage Section . 12482 | | |-External Working-Storage Section . 12491 | | |-Linkage Section . 12505 | | |-Registers at Abend . 12542 + | | |-Memory Maps . 12754 | | |-Perform Return Addresses . 12776 | | |-Paragraph Flow Analysis . 12793 + | |-Open Files . 12809 | |-Save Area Trace . 12833 |-Execution Options
By expanding and collapsing the Report Tree view, you can easily zoom in to
easily locate any areas of interest within your report.
View a Report
When you use the S line command from the Report Tree panel, your display is
positioned directly to the selected section of the report as shown next:
CA Optimizer/II r8.5-- Report ------------------- Line 1183 of 12911 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- JobName RYARO02A StepName RUN UserId RYARO02 Date 2004/03/05 Program CAO2DEMO Offset 00041B6 Comp S=0C7 Time 15.07 Report Contains: Intercept(s), Snap(s), Parmchk ------------------------------------------------------------------------- Lvl 3 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... **************************** * * S-00C7 * * A B E N D *------------* * * CAO2DEMO * **************************** ******************************************************************************** * DESCRIPTION: S0C7 - A NUMERIC FIELD CONTAINED NON-NUMERIC DATA. * PROBABLE CAUSES: 1.NUMERIC DATA WAS NOT INITIALIZED. * * 2.A SUBSCRIPT OR INDEX CONTAINED AN INVALID VALUE. * * 3.A COMP-3 FIELD HAD AN INVALID SIGN. * * 4.A GROUP MOVE OVERLAYED A NUMERIC FIELD WITH NON-NUMERIC DATA * ******************************************************************************** ********************** * ABENDING STATEMENT * **********************
View a Report
Chapter 5: Using the CAIPRINT Repository Viewer 169
Report View Fields
The static information area displayed at the top of the Report Tree panel
continues to display while viewing the report.
The final static line in this display is the highlighted ruler, which scrolls left and
right automatically as you scroll the data.
The data portion of the display is both vertically and horizontally scrollable when
the report length or width cannot be fully accommodated by your screen
dimensions.
Primary Commands
The following primary commands are available from the Report Tree panel:
Command Description
BOTTOM Scrolls the display to the last line.
DOWN Scrolls the display forward.
FIND Locates text in the current display.
HELP Requests help for a command, message or topic.
KEEP Adds data from the current display to the Keep Window.
LEFT Scrolls the display to the left.
LOCATE Scrolls the display to a previously tagged position.
NOTES Opens the Electronic Notepad for this report.
OPTIONS Displays the current installation options in effect.
PRINT Prints all of part of the current display.
PROFILE Views and updates display preferences.
RFIND Repeats a previous FIND command.
RIGHT Scrolls the display to the right.
SYM Displays the Symbolic Utilities menu.
TAG Uses TAG or Ó.label• to equate a label to a position.
TOP Scrolls the display to the first line.
UP Scrolls the display backward.
VIEW Displays symbolic listing for a program.
Advanced Techniques
170 User Guide
A description of each primary command can be found later in this chapter.
For online help for any primary command, enter HELP command-name.
Advanced Techniques
Several easy-to-master techniques involving simple primary commands can
make your report viewing sessions more productive. We recommend that you
set your PF keys to some of these primary commands to facilitate their use:
■ The Keep Window and the Electronic Notepad can help with your diagnostic
procedure. Learn to use the KEEP command to copy data from any display
into your Keep Window.
■ The NOTES command allows you to maintain notes for each report as you
view.
■ The TAG and LOCATE commands allow you to quickly maneuver through
different sections of a report.
This section provides a detailed description of each of these advanced
techniques.
Set PF Keys
Using PF keys to execute some of the more common commands helps save time
and reduce keystroke errors when entering commands.
To set your PF keys
1. Type KEYS on any Repository Viewer command line and press Enter. The PF
Keys panel displays, allowing you to change your PF key settings for the
product.
Note: If your Repository Viewer was invoked using the NEWAPPL keyword, it
executes under its own unique application ID and therefore has its own
unique set of PF key settings. Therefore, setting your PF keys for the viewer
will not affect your settings for other ISPF applications.
Advanced Techniques
Chapter 5: Using the CAIPRINT Repository Viewer 171
The PF Keys panel is shown next:
PF Key Definitions and Labels - Primary Keys Command ===> More: + Number of PF Keys . . . 24 Terminal type . . 3278 Enter "/" to select . . (Enable EURO sign) PF1 . . . HELP PF2 . . . SPLIT PF3 . . . END PF4 . . . DUMP PF5 . . . RFIND PF6 . . . MAP PF7 . . . UP PF8 . . . DOWN PF9 . . . SWAP PF10 . . LEFT PF11 . . RIGHT PF12 . . RETRIEVE PF1 Label . . PF2 Label . . PF3 Label . . PF4 Label . . PF5 Label . . PF6 Label . . PF7 Label . . PF8 Label . . PF9 Label . . PF10 Label . . PF11 Label . . PF12 Label . .
2. Use the PF Keys panel you can assign any PF key to any primary command.
It is recommended to only reassign those keys whose functions are not used
by the viewer. For example, some of your PF keys may already be assigned
to some of these functions which are used by the viewer:
■ DOWN
■ END
■ HELP
■ LEFT
■ RFIND
■ RETRIEVE
■ RIGHT
■ SPLIT
■ SWAP
However, you can replace the following keys, which are not used by the
viewer:
■ RCHANGE
■ RETURN
We strongly recommend that you set one of your available PF keys to KEEP to
facilitate the use of this cursor-sensitive command.
Advanced Techniques
172 User Guide
Use the Keep Window
The Keep Window is a dynamic area located just above the highlighted header
line on any display. The size of the window is dynamic depending on the number
of data lines added. When the window is empty, its borders are not displayed.
You can copy any data line from any viewer display into this area, causing that
data line to remain in view even after you exit the display.
Examples of data you might add to your Keep Window include:
■ Text from a HELP command
■ Source statements from the SYM command
■ Key data values from anywhere in your report
■ Compile and link information for a program
To add a data line to your Keep Window, first enter KEEP on the command line,
then place your cursor on the desired data line and press Enter. Alternatively, if
you have set a PF key for KEEP, place your cursor on any data line and press that
key. The data line is added automatically to your Keep Window.
The following example shows compile nd link information and symbolic file
information for program CAO2DEMO added to the Keep Window:
CA Optimizer/II r8.5-- Report ------------------- Line 1246 of 12911 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- JobName RYARO02A StepName RUN UserId RYARO02 Date 2004/03/05 Program CAO2DEMO Offset 00041B6 Comp S=0C7 Time 15.07 Report Contains: Intercept(s), Snap(s), Parmchk ----------------------------------- (Keep) ------------------------------------ * PROGRAM CAO2DEMO * COMPILED ON 11 FEB,2004 AT 17.52.54 WITH COBOL FOR Z/OS 3.1.1 SYMBOLIC INFORMATION RETRIEVED FROM AD1DEV.MIKED.PROTSYM ------------------------------------------------------------------------- Lvl 3 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... COMPILED ON 11 FEB,2004 AT 17.52.54 WITH COBOL FOR Z/OS 3.1.1 COMPILE OPTIONS: ADV, APOST, NOAWO, DATA(31), DBCS, NODECK, NODUMP, DYNAM, NOFASTSRT, NOLIB, LIST, MAP, NONAME, NONUMBER, OBJECT, NOOFFSET, NOOPTIMIZE, NUMPROC(PFD), RENT, SEQUENCE, SOURCE, NOSSRANGE, NOTERM, NOTEST, TRUNC(STD), NOVBREF, NOWORD, XREF, ZWB OPTIMIZED WITH CA OPTIMIZER/II R3.1 OPTIMIZER/II OPTIONS: NOCICS, NODBGSLEEP, DTECT, NOIDMSDC, FDCHECK, PARMCHK, PFLOW, SUBRNGCK, NOTPMON, WSINIT, XCOUNT, XTIME SYMBOLIC INFORMATION RETRIEVED FROM AD1DEV.MIKED.PROTSYM
Advanced Techniques
Chapter 5: Using the CAIPRINT Repository Viewer 173
Each user has a separate Keep Window for each report they view. The contents
of each is saved in the user profile when a report viewing session is ended, and
is restored to the same state the next time that same dump is selected for
viewing.
Note: You can also use the KEEP command from the Report Index panel, but
that window is maintained separately, is not preserved across sessions, and
cannot be viewed while a report is loaded.
To remove a data line from the Keep Window, first enter KEEP on the command
line, place your cursor on the line being removed, and press Enter. If you have a
PF key set for KEEP, place your cursor on the line being removed and press that
key.
To prevent your Keep Window from being displayed without removing its
contents, enter KEEP OFF on the command line and press Enter. Then enter
KEEP ON to restore the display at any time. The status of your window display
(ON or OFF) is also saved in the user profile for each report you view.
Note: When the Keep Window status is OFF, the data in your Keep Window is not
lost; it is simply not displayed until the window display is reactivated. Data
cannot be added or removed from the Keep Window while its status is OFF.
On some terminals, adding several lines to your Keep Window can dramatically
reduce the number of visible lines of report data. If this is a problem, you can use
the PROFILE command to suppress the information area at the top of the display.
Use the Electronic Notepad
The Electronic Notepad allows users to maintain notes for each report they view.
The notepad is free-format and dynamically sized, allowing you to enter any of
your thoughts, ideas, or comments while viewing the report. You can also copy
and paste report information into the notepad for easy retrieval.
Notepad records are 126 bytes wide to fill a 132-column screen format, and are
horizontally scrollable for 80-column displays. You can enter any kind of data in
the notepad because there is no syntax checking.
To open a notepad from the Report Index panel, enter N in the Cmd column next
to the report entry and press Enter.
To open a notepad for an open report while viewing, enter NOTES on the
command line and press Enter.
Advanced Techniques
174 User Guide
The first time you open the notepad for a report, the following message displays:
CA Optimizer/II r8.5 ------------ Report Index ----------------- Line 1 of 68 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- Repositor +--------------------------------------------------------+ 1754 D | | Filter: J | No notes were found for the report you selected. | C | | --------- | Press ENTER to start a new notepad for this report. | ---- Lvl 1 Cmd JobN | | UserId N WOND | Program: SUBCOB Offset: 000026A Comp: S=0C7 | TSTUSR7 . DAVS | | TSTUSR1 . RYAR | Press END to cancel the notes request. | TSTUSR3 . WOND | | TSTUSR7 . WOND +--------------------------------------------------------+ TSTUSR7 . WANDA07C TESTCOB2 SUBCOB 000026A S=0C7 2007/03/02 16.25 TSTUSR7 . WANDA07A S0C1 RENTSCAN 0000AFA S=0C2 2007/03/01 11.00 TSTUSR7 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/03/01 10.41 TSTUSR3 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/03/01 10.34 TSTUSR7 . USER002A RUN CAOEDEMO 0003D48 S=0C7 2007/02/28 10.06 USER01 . WANDA07Z S0C1 TESTSCAN 0000AFA S=0C2 2007/02/28 09.43 USER01 . USRSC01B RUN CARXDEMA 000013C S=0C7 2007/02/23 14.34 USER02 . USRSC01A RUN CEEPLPKA 00BAE7A U=0666 2007/02/23 14.33 USER02 . USRSC01A STEP1 CARXDEMA 000013C S=0C7 2007/02/23 14.28 USER02 . USRSC01A RUN ABEND1 0000014 U=0001 2007/02/21 15.26 TSTUSR2
Press Enter to create a new notepad for the report, or press END to cancel the
request.
A new notepad, like the one shown next, initially contains ten blank records:
CA Optimizer/II r8.5-- Notes -------------------------- Line 1 of 10 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- Program: ASM0C7 Offset: 000005E Comp: S=0C7 Last Update: None ------------------------------------------------------------------------- Lvl 2 Cmd ....+....1....+....2....+....3....+....4....+....5....+....6....+....7.... . . . . . . . . . . -------------------------------------------------------------------------------
Advanced Techniques
Chapter 5: Using the CAIPRINT Repository Viewer 175
The information area located at the top of the display identifies the report for
which the notepad was created.
The final static line in this display is the highlighted ruler, which scrolls left and
right automatically as you scroll your notes.
The data portion of the display is both vertically and horizontally scrollable when
the length or width of the notepad cannot be fully accommodated by your screen
dimensions.
Use the I line command to insert a new blank record following any existing record
in the notepad. Use the D line command to delete an existing record from the
notepad.
When you have completed your updates, press END to save your updates and
return to the display from which the notepad was entered. Use CANCEL to exit
without saving your changes.
Use TAG and LOCATE
For large reports, it may be necessary to create placeholders for sections of the
report that do not appear in the Report Tree panel.
Use the TAG primary command to define a tag or label for any location in your
report. You are prompted for a tag name, as shown next:
CA Optimizer/II r8.5-- Report ------------------- Line 1281 of 12911 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- JobName RYARO02A +----------------------------------------+ ate 2004/03/05 Program CAO2DEMO | | ime 15.07 Report Contains: | Enter Tag Name: | ----------------- | ===> | ------------ Lvl 3 ....+....1....+.. | | ...+....7....+.... 000136 77 FILLER +----------------------------------------+ PROPRIETARY PROP* (+000032) *ERTY OF CA INTE* (+000064) *RNATIONAL, INC. * 000139 77 FILLER * COPYRIGHT (C) 1986-1999 BY COMP* (+000032) *UTER ASSOCIATES INTERNATIONAL, I* (+000064) *NC. * 000142 77 ERROR-FLAG ZEROS 000143 77 DATA-PICX10 SPACES 000144 77 ROW-3D 1 000145 77 COLUMN-3D 1 000146 77 RANGE-3D 1 000148 01 PARAMETER-ONE BLW=0000+0000D0 (121B2188) 000149 03 FILLER *PARAMETERONE* 000154 01 PARM-PASSED-BY-JCL BLW=0000+0000E0 (121B2198) 000155 03 PARM-MSG *WSINIT * 000156 03 PARM-FLAG *WSINIT *
Advanced Techniques
176 User Guide
Enter a name for your tag, from 1 to 32 characters, then press Enter to create
your tag. Leading periods are ignored.
Alternatively, you can create a tag using the .label method by entering your tag
name on the command line with a leading period. For example, to create a tag
named ÓEF• for a variable named ERROR-FLAG, position your display to that
variable and enter .EF on the command line. Then press ENTER to create the tag.
Note: If you create a tag with a duplicate name, the new tag replaces the
previously existing tag.
Once you have created your tag, you can position your display immediately to
that line using the LOCATE command or L as an abbreviation. In the example
above, enter L EF to locate the variable ERROR-FLAG. If you enter a LOCATE
command without any tag name, you are prompted for a tag name as shown
next:
CA Optimizer/II r8.5-- Report --------------------- Line 68 of 12911 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- JobName RYARO02A +----------------------------------------+ ate 2004/03/05 Program CAO2DEMO | | ime 15.07 Report Contains: | Enter Tag Name: | ----------------- | ===> | ------------ Lvl 3 ....+....1....+.. | | ...+....7....+.... ***************** +----------------------------------------+ * INTERCEPTED STATEMENT * ************************* CAPD113W SYMBOLIC MEMBER DATE/TIME DOES NOT MATCH CURRENT PROGRAM. PROGRAM: CAO2DEMO OFFSET: 004F1E LINE: 001376 MOVE 1 TO MASK3. END PROGRAM FORCING-THE-ABEND. IDENTIFICATION DIVISION. PROGRAM-ID. LOOP-COMPUTE INITIAL.
Tags are not stored in the user profile, so all tags are cleared when you exit a
report viewing session.
Symbolic Utilities
Chapter 5: Using the CAIPRINT Repository Viewer 177
Symbolic Utilities
Use the SYM primary command from anywhere in the Repository Viewer to
display the Symbolic Utilities menu as shown next:
CA Optimizer/II r8.5-- Report Index ------------------- Line 1 of 33 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- Rep +--------------------------------------------------------------------+ | Select a Symbolic Utility ===> | --- | | vl 1 Cmd | 1. List the contents of a symbolic file | Id . | 2. Add listings to a PROTSYM file | C01 . | 3. List globally defined symbolic files | C01 . | 4. Add or Remove supplemental symbolic files | C01 . | 5. Dynamic Symbolic Support for CA Endevor SCM | D01 . | | O02 . | Symbolic File Dsname: | O02 . | ==> | O02 . +--------------------------------------------------------------------+ O02 . RYARO02A RUN CAO2DEMO 00041B6 S=0C7 2004/03/05 14.47 RYARO02 . RYARO02S RUN PLITEST1 0001002 S=0C7 2004/03/04 16.29 RYARO02 . RYARO02S RUN PLITEST1 0001002 S=0C7 2004/03/04 16.18 RYARO02 . RYARO02P RUN PLITEST1 0001E22 S=0C7 2004/03/04 14.36 RYARO02 . RYARO02P RUN PLITEST1 0001C46 S=0C7 2004/03/04 14.35 RYARO02 . DAVSC01A RUN COMP2 00001E8 S=0C7 2004/02/25 17.46 DAVSC01 . DAVSC01A RUN COMP1 00003FE S=0C7 2004/02/24 18.06 DAVSC01 . DAVSC01A RUN COMP1 00003FE S=0C7 2004/02/24 17.46 DAVSC01 . DAVSC01A RUN COMP1 00003FE S=0C7 2004/02/24 17.37 DAVSC01 . DAVSC01A RUN COMP2 00001E8 S=0C7 2004/02/24 11.51 DAVSC01
The Symbolic Utilities can be used to:
■ List the contents of your symbolic files
■ Delete a member from a symbolic file
■ Print a program listing from a symbolic file
■ View a listing from a symbolic file
■ Add a listing to your PROTSYM file
■ List your globally defined symbolic files
■ Add or remove your supplemental symbolic files
■ Select one of the valid options from the menu to continue.
Symbolic Utilities
178 User Guide
List the Contents of a Symbolic File
Select SYM option 1 to list the contents of a symbolic file. For this option, you
must also enter the data set name for the PROTSYM or CSL file that you want to
view. To enter a fully-qualified data set name, enclose the name in single
quotation marks. Otherwise, your ZPREFIX value is appended to the name as the
high-level qualifier.
Note: Every time you access a symbolic file using one of the online utilities, the
data set name is stored in your profile.
Once you have entered a symbolic file name, press Enter to list the contents of
the file.
CA Optimizer/II r8.5-- PROTSYM Directory -------------- Line 1 of 42 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- PROTSYM Dsname: AD1DEV.MIKED.PROTSYM ------------------------------------------------------------------------- Lvl 2 Cmd Program Date Time Size Language Attributes . APF1 2003/07/16 18.44.00 11 HLASM . APF2 2003/07/16 18.34.00 10 HLASM . ASMTEST 2003/08/25 10.30.00 11 HLASM . ATTNTEST 2003/07/03 11.28.00 12 HLASM . BIGSEQ 2003/01/16 10.50.30 16 COBOL OS/390 . BIGVAR 2003/02/26 14.31.11 15 COBOL OS/390 . BLLSUB 2002/09/09 18.38.02 11 COBOL II . BLLTEST 2002/09/09 17.05.07 11 COBOL II . BLVTEST 2002/09/26 14.25.35 16 COBOL OS/390 . CALLDETH 2003/10/06 14.33.21 11 COBOL II . CAMRTPIP 2003/08/22 15.52.00 21 HLASM . CAOUMMAN 2003/12/09 12.50.00 43 HLASM . CAO2DEMO 2004/03/12 16.35.54 90 COBOL MVS CA-OPT . COMPODO 2003/09/04 15.46.56 32 COBOL II . DFSLET1 2003/10/08 16.39.00 10 HLASM . DISASMT 2003/11/05 17.07.00 26 HLASM . FSSC10 2004/03/03 17.37.14 64 COBOL II . IDECLARE 2002/08/28 15.15.44 42 COBOL OS/390
The PROTSYM (or CSL) Directory panel displays an entry for each available
member in your symbolic file.
Symbolic Utilities
Chapter 5: Using the CAIPRINT Repository Viewer 179
PROTSYM Members
For PROTSYM members, the following information is displayed:
Date and Time
When the program member was compiled.
Size
The number of PROTSYM records occupied by the member.
Language
Identifies the compiler used.
Attributes
Indicates whether a program was CA-optimized or loaded into the PROTSYM
with the NOPURGE option.
CSL Members
For CSL members, the following information is displayed:
Date and Time
When the program member was compiled.
Genlevel
Identifies the maintenance level of the Optimizer or postprocessor used to
create the member.
Release
Identifies the release number of the Optimizer or postprocessor used to
create the member.
Compiler
Identifies the compiler used.
Line Commands
The following additional functions can be performed by entering line commands
in the Cmd column on this panel:
Command Description
D Deletes a member from the symbolic file.
P Sends a listing to a printer, data set, or other destination.
S Selects a member for viewing.
Symbolic Utilities
180 User Guide
Delete a Member from a Symbolic File
To delete a member from a symbolic file
1. Select SYM option 1 to display the PROTSYM Directory or CSL Directory
panel.
2. Type the D line command to delete the member you want.
Because this action is potentially destructive, you are prompted for
confirmation before the member is deleted, as shown next:
CA Optimizer/II r8.5-- PROTSYM Directory -------------- Line 1 of 42 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- PROTSYM Ds +------------------------------------------------------+ ---------- | | ----- Lvl 2 Cmd Progr | Press ENTER to confirm delete for member ATTNTEST | butes . APF1 | or END to cancel the delete request. | . APF2 | | . ASMTE | Display this message? (Y/N) ===> Y | . ATTNT | | . BIGSE +------------------------------------------------------+ . BIGVAR 2003/02/26 14.31.11 15 COBOL OS/390 . BLLSUB 2002/09/09 18.38.02 11 COBOL II . BLLTEST 2002/09/09 17.05.07 11 COBOL II . BLVTEST 2002/09/26 14.25.35 16 COBOL OS/390 . CALLDETH 2003/10/06 14.33.21 11 COBOL II . CAMRTPIP 2003/08/22 15.52.00 21 HLASM . CAOUMMAN 2003/12/09 12.50.00 43 HLASM . CAO2DEMO 2004/03/12 16.35.54 90 COBOL MVS CA-OPT . COMPODO 2003/09/04 15.46.56 32 COBOL II . DFSLET1 2003/10/08 16.39.00 10 HLASM . DISASMT 2003/11/05 17.07.00 26 HLASM . FSSC10 2004/03/03 17.37.14 64 COBOL II . IDECLARE 2002/08/28 15.15.44 42 COBOL OS/390
3. Press Enter to delete the member, or END to cancel the request.
To suppress confirmation for the remainder of the session, enter N in the
Display this message? field located at the bottom of the confirmation pop-up
window.
To suppress all delete confirmations for your ID, use the PROFILE command.
Note: A password must be entered before a member can be deleted from a
PROTSYM file. The password is established during product installation. Check
with your system administrator before attempting to delete a PROTSYM
member. Once you have been given access to the correct password, use the
PROFILE command to store the password in your profile to avoid entering it
every time.
Symbolic Utilities
Chapter 5: Using the CAIPRINT Repository Viewer 181
Print a Program Listing from a Symbolic File
To send a program listing from a symbolic file to a printer, data set, or
other destination
1. Select SYM option 1 to display the PROTSYM Directory or CSL Directory
panel.
2. Type the P line command to print the desired program listing.
You are prompted for the destination, as shown next:
CA Optimizer/II r8.5 ------------ PROTSYM Directory ------------ Line 1 of 42 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- PROT +------------------------------------------------------------------+ ---- | | Lvl 2 Cmd | Print Options: * Press ENTER to PRINT * | P | | . | Printer ===> USILDAVC.USER01 | . | or | . | Dsname ===> 'USER01.APDSN' | . | Member ===> NEW Disposition ===> NEW | . | | . | Copies ===> 001 | . | Class ===> X | . | PageDef ===> | . | FormDef ===> | . | Chars ===> | . | | . | | . | | . | | . | | . | | . +------------------------------------------------------------------+
3. Fill in the fields as described below, then press Enter to print the member
listing:
Printer
Displays the destination to which the printed output is routed. This can
be specified as a printer name, node.userid, or blank to spool the printed
output to your own TSO userid.
Dsname
Displays the name of a data set to which the printed output is written.
Member
Displays the member name. If you are printing the listing to a partitioned
data set, enter the member name in this field.
Symbolic Utilities
182 User Guide
Disposition
Specifies the disposition of the data set to which the output should be
printed. This field is relevant only if printing to a data set. If the value is
NEW or MOD, a second window pops up to request allocation
parameters.
Values: SHR, OLD, NEW, and MOD
Note: For a description of the fields on the window, see the PRINT
command.
Copies
Displays the number of copies to be printed.
Class
Displays the sysout class that will be used to allocate the print dataset.
PageDef
Displays the name of the library member that PSF uses to define the
page layout for printing on a 3800 Printing Subsystem Model 3.
FormDef
Displays the name of the library member that PSF uses to define the
form layout for printing on a 3800 Printing Subsystem Model 3.
Chars
Displays the name of the character arrangement tables for printing on a
3800 Printing Subsystem Model 3.
Symbolic Utilities
Chapter 5: Using the CAIPRINT Repository Viewer 183
View a Program Listing from a Symbolic File
To view a program listing from a symbolic file
1. Select SYM option 1 to display the PROTSYM Directory or CSL Directory
panel.
2. Type the S line command to select the desired listing for viewing.
CA Optimizer/II r8.5-- CAO2DEMO --------------------- Line 1 of 2918 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- PROTSYM Dsname: AD1DEV.MIKED.PROTSYM ------------------------------------------------------------------------- Lvl 3 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... CA CAO2DEMO CA Optimizer/II 3.1 0403AOX00 PP 5688-197 IBM COBOL for MVS & VM 1 Invocation parameters: NONUM,NOSEQ,ADV,RENT,DYN PROCESS(CBL) statements: CBL NOCMPR2, DYN, RENT, APOST, NUMPROC(PFD), NONAME 0000100 *** COBOL FOR MVS OPTIONS *** *** OPTIMIZER/II OPTIONS *** NOADATA NOCICS ADV NOCXREF NOANALYZE NODBGSLEEP APOST NODCRDISP NOAWO NODECK BUFSIZE(27998) DTECT NOCMPR2 EXIT(NOPRTEXIT) NOCOMPILE(S) FDCHECK NOCURRENCY NOIDMSDC DATA(31) NOLIST NODATEPROC MAP
The static information area at the top of the display continues to show the
data set name of the selected symbolic file.
If your Keep Window is active and contains data, it continues to display.
The final static line in this display is the highlighted ruler, which scrolls left
and right automatically as you scroll the listing.
The data portion of the display is both vertically and horizontally scrollable
when the report length or width cannot be fully accommodated by your
screen dimensions.
Symbolic Utilities
184 User Guide
Add a Listing to a PROTSYM File
To add a listing to a PROTSYM file
1. Select SYM option 2 to add one or more listings to a PROTSYM file.
This option provides an online interface to the symbolic loader. It can be
used to add a single listing, a range of members, or an entire library at one
time. It supports program listings generated by any of the supported IBM
compilers and residing in any of the supported library formats.
The Add Listing to Protsym pop-up window prompts you for update
parameters, as shown next:
CA Optimizer/II r8.5-- Report Index ------------------- Line 1 of 33 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- Re +----------------------------------------------------------------------+ | Add Listing to Protsym | -- | | l 1 Cm | Protsym Dsname ===> 'AD1DEV.MIKED.PROTSYM' | d . | Listing Dsname ===> 'MIKED.QA.LST2' | 01 . | Library Type ===> PDS (PDS, SEQ, PAN, LIB, NDV) | 01 . | From Member ===> COB2DEMO | 01 . | To Member ===> | . | View Messages ===> ALL (ALL, NONE, RC) | 02 . | | 02 . +----------------------------------------------------------------------+ 02 . RYARO02A RUN CAO2DEMO 00041B6 S=0C7 2004/03/05 14.47 RYARO02 . RYARO02S RUN PLITEST1 0001002 S=0C7 2004/03/04 16.29 RYARO02 . RYARO02S RUN PLITEST1 0001002 S=0C7 2004/03/04 16.18 RYARO02 . RYARO02P RUN PLITEST1 0001E22 S=0C7 2004/03/04 14.36 RYARO02 . RYARO02P RUN PLITEST1 0001C46 S=0C7 2004/03/04 14.35 RYARO02 . DAVSC01A RUN COMP2 00001E8 S=0C7 2004/02/25 17.46 DAVSC01 . DAVSC01A RUN COMP1 00003FE S=0C7 2004/02/24 18.06 DAVSC01 . DAVSC01A RUN COMP1 00003FE S=0C7 2004/02/24 17.46 DAVSC01 . DAVSC01A RUN COMP1 00003FE S=0C7 2004/02/24 17.37 DAVSC01 . DAVSC01A RUN COMP2 00001E8 S=0C7 2004/02/24 11.51 DAVSC01
2. Fill in the fields as described below, then press Enter to update the PROTSYM
file:
PROTSYM Dsname
Enter the data set name of any PROTSYM file. When fully qualified, you
must enter the name in single quotation marks. Otherwise, the value of
ZPREFIX is added as the high-level qualifier.
Listing Dsname
Enter the data set name of your listing data set or library. When fully
qualified, you must enter the name in single quotation marks.
Otherwise, the value of ZPREFIX is added as the high-level qualifier.
Symbolic Utilities
Chapter 5: Using the CAIPRINT Repository Viewer 185
Library Type
Enter one of the following supported listing library types:
PDS
Partitioned data sets
SEQ
Sequential listing file
PAN
CA Panvalet library
LIB
CA Librarian library
NDV
CA Endevor SCM library
From Member
To add a single member, enter the member name in this field. For
multiple members whose names share a common prefix, enter the prefix
in this field with a single trailing asterisk (*) to indicate wild-carding. To
add a range of members, enter the first member of the range.
To Member
To add a range of members, enter the name of the last member in this
field. Otherwise, leave this field blank.
View Messages
Select one of the following options:
ALL
To view all messages generated while the listings are being added to
the PROTSYM file.
RC
To view a single message for each member containing the highest
return code produced while adding the member.
NONE
To suppress all messages.
Symbolic Utilities
186 User Guide
If you have requested to view output messages from the utility, the output
appears automatically once the utility has completed, as shown next:
CA Optimizer/II r8.5-- Add to PROTSYM ----------------- Line 1 of 28 Command ===> Scroll ===> CSR ------------------------------------------------------------------------------- PROTSYM Dsname: AD1DEV.MIKED.PROTSYM From: COB2DEMO Listing Dsname: MIKED.QA.LST2 To: ------------------------------------------------------------------------- Lvl 2 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... COB2DEMO POST-PROCESSING ENDED, IN25COB2 RETURNED 00000000 IN25COB2 6.2 - 02/18/2004 10.25 SYM036 PASSED PARAMETER STATEMENTS COB2DEMO,LISTER=ALL,CUTPRINT=ALL SYM010 PROCESSING HAS BEGUN FOR PROGRAM - COB2DEMO SYM006 LISTER=ALL REQUESTED SYM007 CUTPRINT=ALL REQUESTED NESTED PROGRAMS ID WS LS PD EP ------------------------------ ------ ------ ------ ------ ------ COB2DEMO 000003 000023 000864 000875 000000 SYM024 INPUT FILE PROCESSED SYM020 SYMBOLIC FILE UPDATED SUCCESSFULLY SYM021 117 SOURCE STATEMENTS SAVED SYM022 143 TOTAL RECORDS INSERTED INTO SYMBOLIC FILE SYM023 POST-PROCESSOR TERMINATED -----------------------------------------------------------------------------
3. Press END to return to the Add Listing to Protsym pop-up window.
Symbolic Utilities
Chapter 5: Using the CAIPRINT Repository Viewer 187
List Globally Defined Symbolic Files
Select SYM option 3 to list the names of the symbolic files which have been
globally defined in your installation defaults member, CAOUDFRX. These
symbolic files are automatically available for report formatting by any user or
job.
CA Optimizer/II r8.5-- Global Symbolic Files ----------- Line 1 of 5 Command ===> Scroll ===> CSR ------------------------------------------------------------------------- Lvl 2 Cmd Symbolic File Dsname Type . 'AD1DEV.OPT31.PROD.PROTSYM' Protsym . 'AD1DEV.OPT31.DEVL.PROTSYM' Protsym . 'AD1DEV.UTILITY.RROTSYM' Protsym . 'AD1DEV.OPT30.PROD.CSL' CSL . 'AD1DEV.UTILITY.CSL' CSL -------------------------------------------------------------------------------
Globally defined symbolic files can be PROTSYM or CSL format, and there is no
limit to the number of files that can be defined for your installation.
The following additional functions can be performed by entering line commands
in the Cmd column on this panel:
A
Adds listings to this symbolic file. This command displays the Add Listing To
PROTSYM pop-up window. Only listings can be added to PROTSYM files.
S
Selects a symbolic file for viewing. This command displays the PROTSYM
Directory or CSL Directory panel, depending on the file format.
To globally define additional symbolic files, contact your system administrator.
List Supplemental Symbolic Files
Select SYM option 4 to list the names of the symbolic files which you have locally
defined for your use. This option allows you to maintain and use your own
personal symbolic files for your own testing environments without affecting
other users.
Repository Viewer Commands
188 User Guide
Your locally defined supplemental symbolic files are stored in your user profile.
CA Optimizer/II r8.5-- Supplemental Symbolic Files ---- Line 1 of 16 Command ===> Scroll ===> CSR ------------------------------------------------------------------------- Lvl 2 Cmd Symbolic File Dsname Type . 'DAVSC01.TEST.PROTSYM' Protsym . 'AD1DEV.MIKED.PROTSYM' Protsym . 'CDE.DEVL.IB31.PROTSYM' Protsym . 'CDE.PROD.IB31.PROTSYM' Protsym . . . . . . . 'MIKED.QA.CSL' CSL . 'DAVSC01.CSL' CSL . 'RYARO02.CSL' CSL . . . -------------------------------------------------------------------------------
Locally defined supplemental symbolic files can be PROTSYM or CSL format, and
you can have up to 16 supplemental files defined at any one time.
To add a new file, enter the data set name on an empty line. When fully qualified,
you must enter the name in single quotation marks. Otherwise, the value of
ZPREFIX is added as the high-level qualifier.
To remove a supplemental symbolic file, clear the data set name from the line.
The following additional functions can be performed by entering line commands
in the Cmd column on this panel:
A
Adds listings to this symbolic file. This command displays the Add Listing To
PROTSYM pop-up window. Only listings can be added to PROTSYM files.
S
Selects a symbolic file for viewing. This command displays the PROTSYM
Directory or CSL Directory panel, depending on the file format.
Repository Viewer Commands
This section contains an alphabetical listing of the CAIPRINT Repository Viewer
primary commands.
Repository Viewer Commands
Chapter 5: Using the CAIPRINT Repository Viewer 189
FIND
Use the FIND command to locate a string in the current display.
Syntax
Find <string> [P|F|L] [col1 [col2]]
Synonyms
None.
Parameters
String
Lets you specify a 1- to 32-character text string (including quotes) that you
can use as a search argument. If it contains blanks or commas, it must be
enclosed in quotes.
P
Lets you locate the string by searching backward from the current cursor
position.
Values:
P or PREV
F
Lets you locate the first occurrence of the string by searching forward from
the top of the data.
Values:
F or FIRST
L
Lets you locate the last occurrence of the string by searching backward from
the bottom of the data.
Values:
L or LAST
col1
Lets you specify a 1-origin column number in which the string must begin, or
the 1-origin column number which begins the range of columns in which the
entire string must be found.
col2
Specify the 1-origin column number which ends the range of columns in
which the entire string must be found.
Repository Viewer Commands
190 User Guide
Usage Notes:
■ If the string is found, the cursor is positioned to the start of the string.
■ If the string was found on a line or in a column that was not previously in
view, the display is scrolled just enough to display the string.
■ Use the RFIND command, or FIND without an argument, to repeat the
previous search from the current cursor position.
■ If the previous search reached the top or bottom of the file without
successfully locating the search argument, a repeat find command starts
searching from the other end of the display, but always in the same direction
as the previous search.
■ Following a successful FIND command using the FIRST or LAST options,
RFIND can be used to locate the next or previous occurrence, respectively.
■ Searching for non-displayable data is not supported.
HELP
Use the HELP command to display information about any command, message,
topic, or panel.
Syntax
Help <arg |COMMANDS|MESSAGES|SCREENS|TOPICS|ALL>
Synonyms
None.
Parameters
Arg
Specifies the name of any Repository Viewer command, message, panel, or
other help topic. For example, to request help for the PRINT primary
command, enter HELP PRINT on the command line and press Enter.
COMMANDS
Requests a list of all Repository Viewer commands, from which you can
select any command to request HELP.
MESSAGES
Requests a list of all Repository Viewer messages, from which you can select
any message to request HELP.
SCREENS
Requests a list of all Repository Viewer panels, including pop-up windows,
from which you can select any panel to request HELP.
Repository Viewer Commands
Chapter 5: Using the CAIPRINT Repository Viewer 191
TOPICS
Requests a list of all Repository Viewer help topics other than commands,
messages, or panels, from which you can select any topic to request HELP.
ALL
Requests a list of all Repository Viewer help topics, from which you can select
any topic to request HELP.
Usage Notes:
■ To request HELP for any Repository Viewer message currently displayed on
your panel, no argument is required. Simply press the PF key you have set
for HELP, or enter HELP on the command line and press Enter.
■ If no message is currently displayed on your panel, entering a HELP
command without any argument produces the help topic for the current
panel or pop-up window.
KEEP
Use the KEEP command to add a data line from the current display to the Keep
Window, to remove a previously added data line from the Keep Window, or to
change the display status of the Keep Window.
Syntax
Keep [ON|OFF]
Synonyms
None.
Repository Viewer Commands
192 User Guide
Parameters
ON
Enables the Keep Window display, if the window is not empty.
OFF
Disables the Keep Window display, suppressing the contents without
discarding it.
Usage Notes:
■ If no argument is specified, the KEEP command is sensitive to the current
cursor position. When the cursor is positioned on a data line within the
display, that line is added to the Keep Window. When the cursor is positioned
on a line within the Keep Window, that line is removed from the Keep
Window.
■ Data cannot be added or removed from the Keep Window when the window
is disabled.
LOCATE
Use the LOCATE command while viewing an abend report to position your display
to a previously established tag.
Syntax
Locate <name>
Synonyms
None.
Parameters
Name
Enter the 1- to 32-character name of the previously defined tag that will be
used to reposition your display.
Usage Notes:
None.
NOTES
Use the NOTES command to open the Electronic Notepad for the current report.
Repository Viewer Commands
Chapter 5: Using the CAIPRINT Repository Viewer 193
Syntax
Notes
Synonyms
None.
Parameters
None.
Usage Notes:
■ If a notepad does not exist for a report, you are prompted for confirmation
before a new notepad is created.
■ Notes are stored in your profile, which is keyed by abending program name,
abending program offset, and completion code. Therefore, two or more
reports which share these attributes will also share a notepad.
■ You can launch the electronic notepad for any report from the Report Index
panel using the n line command.
OPTIONS
Use the OPTIONS command to view a report of your system-wide installation
options, including component genlevels and current status.
Syntax
Options
Synonyms
Opts
Parameters
None.
Usage Notes:
The same report can be obtained in batch by executing program CAOUOPTS
using the sample JCL provided in CAI.SAMPJCL.
Repository Viewer Commands
194 User Guide
Use the PRINT command at any time to print all or part of the current display to
a printer, node. userid destination, your TSO userid, or a data set.
When you type a PRINT command, your print options appear in the Print Options
pop-up window.
Modify the following values and press Enter to print, or press END to cancel the
request.
Syntax
Synonyms
None.
Parameters
The PRINT command prompts you for input parameters using the Print Options
pop-up window with the following fields:
Printer
Displays the destination to which the printed output should be routed. This
can be specified as a printer name, node.userid, or blank to spool the printed
output to your TSO userid.
Dsname
Displays the name of a data set to which the printed output is written. If this
field is non-blank, it overrides the Printer field. When entering a data set
name, it must be fully qualified and enclosed in single quotation marks.
Otherwise, your ZPREFIX value is used as the high-level qualifier.
Member
Displays the member name if you are printing the listing to a partitioned data
set.
Disposition
Displays the disposition of the data set to which the output should be
printed. This field is relevant only if printing to a data set. If the value is NEW
or MOD, a second window pops up to request allocation parameters.
Values: SHR, OLD, NEW, and MOD
Title
Specifies the 1- to 32-character title that appears at the top each page.
Repository Viewer Commands
Chapter 5: Using the CAIPRINT Repository Viewer 195
Print Lines
Displays the starting and ending lines to be printed. By default the starting
line is set to one and the ending line is set to the number of lines in the
report.
Copies
Displays the number of copies to be printed.
Class
Displays the sysout class that will be used to allocate the print output
dataset.
Lines / Page
Displays the number of logical lines per page, including the title and header
lines.
Record Size
Displays the logical record length that will be used for the print dataset. By
default this is the maximum width of the data being printed. You can
increase or decrease this value to fit your printer as needed. Decreasing the
record size may result in truncation of data.
PageDef
Displays the name of the library member that PSF uses to define the page
layout for printing on a 3800 Printing Subsystem Model 3.
FormDef
Displays the name of the library member that PSF uses to define the form
layout for printing on a 3800 Printing Subsystem Model 3.
Repository Viewer Commands
196 User Guide
Chars
Displays the name of the character arrangement tables for printing on a
3800 Printing Subsystem Model 3.
Usage Notes:
■ When one or more fields are changed before pressing Enter, the fields are
validated and redisplayed along with the message Press Enter to Print. To
continue, press Enter one more time.
■ At the top of each printed page, the AllFusion page header appears. The
header contains your specified title, centered on the line, and the page
number at the far right.
■ On the first page only, following the header line, the information area is
printed with double-space carriage control.
■ On every page, the contents of the panel header line is printed next, also
with double-space carriage control. This may consist of column headings for
a member list, report index or report tree display, or a ruler for listings and
abend report contents.
PROFILE
Use the PROFILE command to view or update your personal viewer preferences.
Syntax
PROfile
Synonyms
None.
Parameters
The PROFILE command displays the Profile Settings pop-up window. You are
prompted for input parameters using the following fields:
Confirm Exit from Reports
Enter Y to request a confirmation pop-up window whenever you attempt to
exit an open report, or N to suppress the confirmation.
Confirm Report Deletes
Enter Y to request a confirmation pop-up window whenever you attempt to
delete a report, or N to suppress the confirmation.
Confirm Sym Member Deletes
Enter Y to request a confirmation pop-up window whenever you attempt to
delete a member from a symbolic file, or N to suppress the confirmation.
Repository Viewer Commands
Chapter 5: Using the CAIPRINT Repository Viewer 197
Force Upper Case Viewer
Enter Y in this field to force all output from the Repository Viewer, including
output form the PRINT command, to be displayed entirely in uppercase.
Enter N to allow mixed-case displays and printing.
Display Information Area
Enter Y in this field to allow the information area to be displayed immediately
below the command line in every viewer display. Enter N to suppress the
information area on all displays.
Note: Filters are part of the information area. If this field is set to N, the
filters will not be displayed. However, their values will still affect the Report
Index selection list.
Message Alarm Severity
Enter the lowest message severity I, W, or E which should trigger the alarm
to sound when messages of equal or greater severity are displayed on your
panel.
PROTSYM Password (Hidden)
Enter the one- to eight-character password for your PROTSYM files that was
created by your system administrator when this product was installed. If
omitted, you are prompted for a PROTSYM file in each session.
Usage Notes:
■ Press End to cancel the update request, or Enter to save your changes.
■ When one or more fields are changed before pressing Enter, the fields are
validated and redisplayed. To continue, press Enter one more time.
■ Profile changes take effect immediately.
REFRESH
Use the REFRESH command from the Report Index panel to refresh the contents
of the current display.
This has the same effect as using a SETINDEX command to reload the repository
index without changing the repository data set name.
Syntax
REFresh
Synonyms
None.
Repository Viewer Commands
198 User Guide
Parameters
None.
Usage Notes:
None.
RFIND
Use the RFIND command to repeat a previous search.
Syntax
RFind
Synonyms
None.
Parameters
None.
Usage Notes:
■ Using RFIND produces exactly the same results as using FIND without a
search argument.
■ If no previous FIND existed, the RFIND command ends in error.
■ If the string was found on a line or in a column that was not previously in
view, the display is scrolled just enough to display the string.
■ If the previous search reached the top or bottom of the file without
successfully locating the search argument, a repeat FIND command starts
searching from the other end of the display, but always in the same direction
as the previous search.
■ Searching for non-displayable data is not supported.
SETINDEX
Use the SETINDEX command from the Report Index panel to switch your view to
another repository data set.
Syntax
SETindex <dsname>
Repository Viewer Commands
Chapter 5: Using the CAIPRINT Repository Viewer 199
Synonyms
None.
Parameters
dsname
If specified, this value is used to populate the dsname field in the Enter
Repository Dsname pop-up window that displays when a SETINDEX
command is entered.
Enter the data set name of the new repository file enclosed in single
quotation marks if fully qualified. If no quotes are used, your ZPREFIX value
is used for the leading qualifier.
Usage Notes:
■ If you enter an invalid repository name, or the repository contains no abend
reports, you are presented with a blank index display. Repeat the command
using a valid data set name.
■ To select the installation default repository data set for your system, do not
enter a data set name when prompted.
■ The repository data set name is stored in your personal profile and retrieved
again the next time you start the viewer.
SORT
Use the SORT command to sort the current display in ascending or descending
order on any column header. The SORT command is only valid from the following
displays:
■ Report Index panel
■ Symbolic File Member select list panel
Syntax
Sort <column-header> [A|D] [H]
Synonyms
None.
Repository Viewer Commands
200 User Guide
Parameters
column-header
The name of the column on which the sort should be performed, from the
header line at the top of the display.
A|D
Specify A to sort the display in ascending order or D for descending order.
H
Specify H if the column contains hexadecimal numeric values. This allows
digits A - F to compare greater than 0 - 9.
Usage Notes:
After sorting a display, SORT * returns the display to its original order.
SYM
Use the SYM command to display the Symbolic Utilities menu.
Syntax
SYM <option>
Synonyms
CSL, CPP, LISTcsl, PROTsym, Utilities
Parameters
Option
Use this parameter to prime the selection field to any of the valid menu
items:
■ List the contents of a PROTYSM or CSL symbolic file. Once the list is
displayed, you can browse, print, or delete members using line
commands from the selection list.
■ Add listings to a PROTSYM file.
Repository Viewer Commands
Chapter 5: Using the CAIPRINT Repository Viewer 201
■ List symbolic files defined globally in your installation options table
CAOUDFRX. Once the list is displayed, use the S line command to list the
contents of any symbolic file, or the A line command to add members to
a PROTSYM file.
■ Add or Remove supplemental symbolic files defined locally to your
viewer profile. Once the list is displayed, use the S line command to list
the contents of any symbolic file, or the A line command to add members
to a PROTSYM file.
■ View or change the CA Endevor SCM symbolic support options defined
locally to your viewer profile. After the options display, overtype the
values to change them.
Usage Notes:
■ The last symbolic file referenced by any of the symbolic utilities is
automatically saved in the Symbolic File Dsname field.
■ For online help for a symbolic utility, select the option for that utility and
press PF1.
TAG
Use the TAG command while viewing a report to equate a line number to your
current position within the report.
Syntax
TAG <name>
Synonyms
.name
Parameters
name
Any 1- to 32-character name that will become equated with your current
position within the report you are viewing.
Usage Notes:
■ Entering a duplicate tag name replaces the previous tag with the new report
position. Two tags cannot share the same name.
■ Use the LOCATE command to position your display using a previously
defined tag.
■ All tags are automatically deleted when you close and exit a report.
Repository Viewer Commands
202 User Guide
VIEW
Use the VIEW command while viewing a report to display the listing for a
specified program.
The VIEW command displays the version of the listing that was used to provide
symbolic information when the report was formatted. If no symbolic information
was provided for the program in the report you are viewing, use the SYM
command instead.
Syntax
View <program-name>
Synonyms
None.
Parameters
Program-name
The name of any program that was formatted with symbolic information in
the report you are viewing.
Chapter 6: Using Analyzer 203
Chapter 6: Using Analyzer
This chapter describes the Analyzer component.
Overview
Analyzer helps you debug your COBOL programs with speed and assurance.
When your programs go into production, you will have confidence that testing
was thorough.
The count and timing data for each statement reveals exactly how many times
the statement was executed and how much CPU time was required. The count
and timing data might be representative of a single execution or of the
consolidation of multiple executions. In any case, all of this information prints
beside each statement on your source listing.
For testing and debugging, Analyzer:
■ Flags the statement causing the abend
■ Locates the statement where the time-out occurred
■ Identifies:
– Untested verbs
– IF tests that are always true or always false
– The path of an infinite loop
– All possible control paths into each paragraph
– Related logic (groups of code that have the same count)
■ Shows:
– What additional test data is needed
– The number of records read and written
– PERFORM ranges that can be fallen into or out of
– PERFORM ranges which can be branched out of
Overview
204 User Guide
In source level tuning, Analyzer:
■ Locates the most frequently executed code
■ Helps locate unexecutable code which can be removed
■ Identifies:
– Data distribution
– Code being executed more often than necessary (for instance, code
which can be moved outside a loop)
– Infrequently used code that can be overlaid
– Subroutines in need of tuning and modules in a multimodule program in
need of tuning
■ Pinpoints:
– Statements and paragraphs where the most CPU time is spent
– Statements or groups of statements in non-COBOL CSECTS which
should be tuned
■ Shows:
– Inefficient ordering of nested IF tests
– Time differences resulting from different data usages
– Time differences resulting from the use of various COBOL verbs
For maintenance, Analyzer:
■ Verifies that new code is tested
■ Shows:
– Whether additional test data is needed after a source code change
– Obsolete code
– The number of records read and written
■ Helps identify initialization, error, exception, and termination routines
■ Identifies:
– Main line logic
– Inner loops
– Data distribution (record types, number and types of errors, etc.)
With quality assurance, Analyzer:
■ Verifies that all code has been tested
■ Indicates that the program is doing what it is supposed to do
■ Identifies any unexpected changes in the processing performed by the
program
Counts
Chapter 6: Using Analyzer 205
In programmer training, Analyzer:
■ Reinforces good programming techniques through
– Timings on inefficient verbs
– Generated statements showing the PERFORM logic is always exited
– Comparative timings on various data usages
■ Clarifies what a new program does through counts which identify main logic:
initiation, termination, exception routines, and so on.
For dynamic program documentation, Analyzer documents:
■ What a program does
■ Where time is spent
■ Data distribution when modifications are made to program code changing
the data in the files
Counts
The Counts facility lets you identify executed (and unexecuted) paragraphs and
source statements in one program, several programs, or the whole application.
Counts can be used with or without Timings. In addition, the counts data can be
accumulated so that a single set of reports can be produced summarizing the
execution results of a whole battery of test cases.
Timings
The Timings facility lets you identify CPU-time concentrations in a hierarchical
fashion. You can look at the CPU time for the whole application, one load module,
one program, one paragraph, or one source statement. Timings can be used with
or without counts. Additionally, the Timings data can be accumulated so that a
single set of reports can be produced summarizing the Timings results of a whole
battery of test cases.
The flowchart shown next depicts the Analyzer component of CA Optimizer/II.
Analyzer Options
206 User Guide
Analyzer Options
Analyzer consists of two facilities: Counts and Timings. The two facilities can be
used independently or together. Pictorially:
Analyzer
┌────────────────────────────┐
│ │
(XCOUNT) (XTIME)
Executed (and Unexecuted) CPU-time analysis by
Paragraph and Source Application, Load Module
Statement Counts Program, Paragraph, and
Source Statement
Analyzer control may be needed at compile-time, execution-time, and
report-time. The following table provides a listing of Analyzer control options
available to you at compile-time, execution-time, and report-time:
Compile-time Execution-time Report-time
XCOUNT
XTIME
STIMERM
XCOUNT
XREPORT
XTIME
CNTXREF
INSTRMAP
PROCDIV
SOURCEMAP
USERID
You may freely combine Analyzer compile-time options with COBOL compiler
options and with other CA Optimizer/II options. The options above have both
compile-time and execution-time uses. Their execution-time applications are
discussed later in this chapter. See Options Listing later in this chapter for a
complete listing of all CA Optimizer/II options, their defaults, usage, and special
considerations.
The following table summarizes how you can use Analyzer's more commonly
used facilities.
To Specify at
compile-tim
e
Specify at
execution-time
Report on the paragraphs and source
statements that were executed or not
executed.
XCOUNT
Report on where the CPU time is
concentrated in your program.
XTIME
Analyzer Options
Chapter 6: Using Analyzer 207
To Specify at
compile-tim
e
Specify at
execution-time
Turn OFF Counts & Timings, even if
they were specified at compile-time.
XCOUNT OFF
XTIME OFF
Defer Counts and/or Timings reports
to a separate Analyzer Reporter job
step.
XCOUNT
and/or XTIME
XREPORT OFF
Begin Timings with the first program
optimized with any Analyzer or
Detector
Any analyzer
or Detector
facility option
XTIME FIRST
Produce the Execution Count
Cross-Reference report for a single
program only (for example
PGMNAME).
XCOUNT CNTXREF PGMNAME
Suppress the Source Map report for all
programs
XTIME NOSOURCEMAP ALL
Report-time Considerations
The Analyzer Reporter can be run as a separate job step any time after the
application has executed, or it can be automatically invoked in the same job step
as the application. The option that controls this is XREPORT.
The options you use to control the Analyzer Reporter are the same whether
XREPORT is ON or OFF. When using XREPORT ON, the report-time options can be
mixed freely with other execution-time options for Analyzer or Detector.
However, when XREPORT OFF is in effect at execution-time, the Analyzer
Reporter is not automatically invoked in the same job step when the application
is terminated. Instead, the Analyzer Reporter must be executed as a separate
job step. In this case, the JCL for the separate job step includes a CAIOPTS DD
statement in which only report-time options are specified.
All report-time options, except USERID, are intended for use in special
circumstances and are not needed in straightforward applications of Analyzer
where default values suffice. The USERID option permits you to associate a
unique page heading line with each Analyzer run.
Analyzer correlates all count and timing measurement data it has gathered and
uses it to produce various Analyzer reports. The measurement data prints next
to the source statements of the programs, if the SYM (or CSL) option was used
during optimization. If symbolic information is not available, you can only obtain
the Run Summary, Module Summary, and Instruction Detail reports.
Analyzer Options
208 User Guide
At report-time you can consolidate the measurement data from several
executions of the same programs to produce a single set of reports. The Analyzer
Run Summary report identifies the various executions that are consolidated for
the reporting run. The Run Summary shows how report-time options were used
and provides additional diagnostic information on report-time input.
JCL
To invoke Analyzer, you must specify one or more of the Analyzer options in the
compile/optimize step. To execute the Optimizer component, see the copy of
your installation's cataloged procedures for a procedure to compile/optimize/and
link (or compile/optimize/link, and go).
Compile-time
The standard procedure provided for optimization is called CAOPTII. Use this JCL
to invoke the Optimizer component.
//STEP1 EXEC CAIOPTII,
// LISTLIB='Your PROTSYM file name',
// COBOPT='XTIME'
In the above example, LISTLIB and COBOPT are symbolic options defined in the
CAIOPTII procedure. LISTLIB gives the library name of the PROTSYM (or CSL)
file which is used to produce the Analyzer reports. COBOPT passes the PARM
options for the compile/optimize step. If the cataloged procedure at your
installation does not have these symbolic options, you can specify the PROTSYM
(or CSL) library name and pass the Analyzer options using the JCL shown below:
//STEP1 EXEC CAIOPTII,
// PARM.COB='XTIME'
//COB.PROTSYM DD DSN=your.protsym.library-name,DISP=SHR
Analyzer Options
Chapter 6: Using Analyzer 209
Execution-time
The standard CA procedure is for compile and link only. If you are using this
procedure, you need to execute your program directly. The following JCL
executes your application and produces the Analyzer reports in the same job
step:
//STEP2 EXEC PGM=your-program-name,REGION=xxxK
//STEPLIB DD DSN=your.optii.loadlib-name,DISP=SHR
// (Concatenate the STEPLIB for your program's
loadlib name to the previous STEPLIB.)
//
.
. Your program's DD statements
.
//
//CAIPRINT DD SYSOUT=A
//CAITIMSV DD DSN=&&TIMSV.,DISP=(MOD,PASS),
UNIT=SYSDA,SPACE=(TRK,(1,1),RLSE),
DCB=(LRECL=20,BLKSIZE=4320,RECFM=FB)
//CAIOPTS DD *
XCOUNT ON
XTIME FIRST
XREPORT ON
/*
//CAISYM DD DSN=your.protsym.file-name,DISP=SHR
//CAIPRNT1 DD SYSOUT=A
//CAIPRNT2 DD SYSOUT=A
//CAISTATS DD DSN=your.optii.statistics-file,DISP=SHR
The following JCL statement descriptions are used by Analyzer and Analyzer
Reporter. The region size on the above EXEC statement should be increased a
minimum of 1 MB to accommodate the Analyzer Reporter when it is
automatically invoked following the termination of the application.
DDname Description
STEPLIB Points to the CA Optimizer/II load library. This is not
necessary if CA Optimizer/II is in your concatenated LINKLIB.
CAIPRINT Retains Analyzer (and Detector) printed output. This DD is
optional and is dynamically allocated, if omitted.
CAITIMSV Holds Analyzer's count and timing measurement data; a
MODed, OLD or NEW data set can be specified. If you only
want Analyzer reports for data from this run, omit the TIMSV
DD statement. It is then automatically dynamically allocated.
CAIOPTS Specifies Detector, Analyzer, and Analyzer Reporter options.
You can omit this DD if no options need to be specified.
Analyzer Options
210 User Guide
DDname Description
CAISYM Identifies a symbolic (PROTSYM or CSL) file which has not
been defined in your installations defaults. Your installation
may have selected an alternate name for the CAISYM DD, so
check with your system administrator before updating your
execution-time JCL. You can alternatively specify the SYMDSN
option in CAIOPTS to dynamically allocate your symbolic file.
CAIPRNT1
CAIPRNT2
Defines the two report data sets for Analyzer Reporter. If one
or both are omitted, they are dynamically allocated.
CAISTATS Specifies the name of your installation on the top of each page
of Analyzer Reporter output. If you do not want this facility,
omit the DD statement.
For a detailed discussion of dynamic allocation for Analyzer and Detector, see the
chapter "Usage Considerations."
Analyzer Reporter Job Step
Most of the discussion thus far has presented Analyzer Reporter as a reporting
function that is automatically invoked at a normal or abnormal end-of-job. This
automatic invocation is triggered by XREPORT ON and the reports produced by
Analyzer Reporter reflect that single execution only.
For advanced performance measurement studies, or for quality assurance
purposes, it may be desirable to combine many executions of an application. This
is achieved by concatenating the counts and timings data with prior runs. (For a
more detailed discussion of Analyzer Reporter execution, either as a job step or
automatically, see section Automatic Invocation of Analyzer Reporter.) When
reporting is deferred in this manner, the Analyzer Reporter function must be run
as a separate job or step.
See a copy of your installation's cataloged procedure for Analyzer Reporter. The
cataloged procedure supplied with CA Optimizer/II , is as follows:
// EXEC CAIARII,
// EXECDAT='your counts and timings data set name',
// LISTLIB='your PROTSYM file name'
//CAIOPTS DD *
Analyzer Reporter options (if required)
/*
Analyzer Reports
Chapter 6: Using Analyzer 211
EXECDAT and LISTLIB are symbolic options defined in the CAIARII procedure.
EXECDAT provides the data set name of the counts and timings data set and
LISTLIB gives the library name of the PROTSYM (or CSL) file. If the cataloged
procedure at your installation does not have these symbolics, specify these two
data sets in the execution JCL:
//stepname EXEC your-procedure-name
//CAITIMSV DD DSN=counts.and.timings.data-set-name,DISP=SHR
//CAISYM DD DSN=your.protsym.file-name,DISP=SHR
//CAIOPTS DD *
Analyzer Reporter options (if required)
/*
Example
This JCL is an example of how to use both Analyzer (with Counts and Timings)
and Detector (with subscript range checking) and get the MMAP and MXREF from
the Optimization step (STEP 1). Analyzer Reporter runs in the same job step
(STEP 2) immediately after the application terminates.
//STEP1 EXEC CAIOPTII,
// COBOPT='XCOUNT,XTIME,SUBRNGCK,MXREF,MMAP',
// LISTLIB='PAYROLL.PROTSYM'
//STEP2 EXEC PGM=FICAEXTR,REGION=512K
//STEPLIB DD DSN=PAYROLL.LOADLIB,DISP=SHR
// DD DSN=CAI.CARXLOAD,DISP=SHR *
//FILEIN DD DSN=PAYROLL.MASTER(0),DISP=OLD
//FILEOUT DD DSN=PAYROLL.MASTER(1),DISP=(NEW,CATLG),
// UNIT=TAPE
//PAYREPT DD SYSOUT=A
//CAISYM DD DSN=PAYROLL.PROTSYM,DISP=SHR **
* This is only needed when the PDS is not part of LINKLIB.
** This DD statement is only required if PAYROLL.PROTSYM has not been
defined in your installation defaults member, CAOUDFRX.
Analyzer Reports
This section explores each field in each report thoroughly. Reference it if you
have any questions concerning the fields in any of the reports.
Analyzer Reports
212 User Guide
CAIOPTS File Processing Report
The Execution Monitor produces this report at the start of application execution,
after the Execution Monitor has read and processed the Detector and/or Analyzer
runtime options. The report displays the input options read from the data set
defined by the CAIOPTS DD, if present. The body of the report is a display of the
80-byte records in the CAIOPTS data set exactly as read by the Execution
Monitor.
CA ANALYZER/REPORTER CAIOPTS FILE PROCESSING REPORT PAGE 1
CA OPTIMIZER/II r8.5 0404ARX00 20 FEB,2004 17.49.34
...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 INTERCEPTS 2 00281082
SNAP 1 00281100
PFLOW ON 00282000 PARMCHK ON 00282100
XTIME ON 00283099
XCOUNT ON 00284099 XREPORT ON 00285099
DUMP OFF 00286000
INPUT OPTION DISPLAY COMPLETE
Execution Monitor Summary Report
The Execution Monitor Summary report, which is generated at execution-time, is
separate from the Analyzer reports but accompanies each Analyzer run. The
Execution Monitor Summary report verifies that Analyzer was in operation during
the run and gives the version of each program running under Analyzer and the
CA Optimizer/II execution options specified.
CA EXECUTION MONITOR SUMMARY PAGE 21
CA OPTIMIZER/II r7 0404ARX00 20 FEB 2004 17.49.33
EXECUTION OPTIONS IN EFFECT: EXECUTION ON: OS/390K A
ACB OFF
ACTONLY OFF AMB OFF
AMBL OFF
ASMINST ON BINDER ON
BINFRMT DEC
CEEDUMP ON DB2ACTIV OFF
DCB OFF
DEB OFF DUMP OFF
EXCEED NOSTOP
FILES ON FIRST128 OFF
GRPADDR ON
IMS NO INTERCEPT 0
IOB OFF
LINKAGE ALL LOCALSTOR ALL
MEMMAP ON
MERGEDB ON
Analyzer Reports
Chapter 6: Using Analyzer 213
MRGAUTO ON
MRGBASED ON
MRGCNTLD ON
MRGDSECT ON
MRGFILES ON
MRGLINK ON
MRGLOCAL ON
MRGPARMS ON MRGSTAT ON
MRGWORK ON
MREPORT ALL MSAMPLE 10000
MSTAE ON
MTIME 0 OCCURS 5
PARMCHK ON
PFLOW ON PLH OFF
PRTLIB CAI.PRTLIB
PRTREPT BOTH REGMAX (128,256)
RPL OFF
SAVEAREA ON SAVEHEAP OFF
SHOWHEAP OFF
SHOWUNMRG TBLS SNAP 0
STIMERM OFF
SYMDSN CAI.PROTSYM
UCB OFF
VSAMIDX OFF
WORKSTOR ALL
XCOUNT ON
XREPORT ON
XTIME ON
LEGEND FOR OPTIMIZER OPTIONS:
B=DBGSLEEP F=FDCHECK S=SUBRNGCK
C=XCOUNT P=PFLOW T=XTIME D=DTECT R=PARMCHK W=WSINIT
B C D E F G H I J
COBOL COUNT NUMBER NUMBER RUN-TIME OPTIONS RUN-TIME OPTIONS PROGRAM COMPILATION COMPILER SPACE OF TIMES OF TIMES SPECIFIED AT SPECIFIED AT
NAME DATE AND TIME USED REL (BYTES) -> ALLOCATED EXECUTED COMPILE-TIME EXECUTION-TIME
CAO2DEMO 20 FEB,2004 17.49.25 COB OS390 1.2 3072 1 1 C,D,P,F,S,T,R,W
CAO2PCHK 11 OCT,1990 14.18.54 COBOL II r7 1024 1 1 C,D,F,S,T,R,W
Analyzer Reports
214 User Guide
The Execution Monitor Summary report provides the following information for
every COBOL program running under Detector or Analyzer:
A
The first part of the report lists in alphabetical order the options that were in
effect during this execution of the application.
B
The second part of the report lists various attributes of all the optimized
COBOL programs found by the Execution Monitor during the execution of the
application. Entry to any program compiled/optimized with the Detector or
Analyzer Option, causes it to be listed here.
C
Compile date, which helps identify the version of the program.
D
Compile-time, which helps identify the version of the program.
E
The COBOL compiler and release number used to compile this program.
F
The amount of main storage required to store XCOUNT data.
G
Number of times the Execution Monitor was required to allocate XCOUNT
space.
H
Number of times the program was executed during the run.
I
Compile-time options in effect for the program.
J
Runtime options in effect for the program.
K
The operating system under which the application executed is shown as
MVS, MVS/XA, MVS/ESA, OS/390, or z/OS.
Analyzer Reports
Chapter 6: Using Analyzer 215
Run Summary Report
This report prints every time an Analyzer reporting run is executed. It provides
EXCP counts for each ddname, a summary of the options specified, runs
consolidated, and other information. The example below shows the format for a
single execution:
CA ANALYZER RUN SUMMARY PAGE
1
CA OPTIMIZER/II r8.5 0404ARX00 20 FEB,2004 17.49.34
A ANALYZER RUN IDENTIFICATION 20 FEB,2004 17.49.34 CA
EXECUTION OPTIONS IN EFFECT:
B XTIME ON
XCOUNT ON
XREPORT ON SOURCEMAP ALL
CNTXREF ALL
LINECOUNT 60 TOTAL SAMPLES TAKEN 361C
IDENTIFICATION OF EXECUTIONS CONSOLIDATEDD
COUNT JOB STEP PROC STEP DATE TIME SAMPLES
001 XYZAB02A RUN 02/20/2004 17.49.31 361
EXCP COUNT BY DDNAMEE
DDNAME UNIT EXCP COUNT
CAITIMSV UCB 14 * STEPLIB UCB 106 *
SYS00003 UCB 6 *
SYS00004 UCB 6 * SYS00005 UCB 5 *
SYS00006 UCB 5 *
SYS00007 UCB 6 *
SYS00008 UCB 317 *
-------- ---------
TOTAL 465
A
The first line of the Run Summary report identifies the reporting run: the
current date and time, and any user identification information which was
specified in the USERID control statement.
B
This section displays the Analyzer reporting control statements (options)
which are in effect for this run. When certain statements have not been
specified, the default controls are listed.
The options which were specified to control the measurement gathering
process during program execution are listed for your reference. When
multiple executions have been consolidated, the measurement options could
be different for each execution. In this case, line B shows the options
specified for the first execution step. If any execution steps after the first
have different options, the options that are different from the original ones
print in the "Identification of Executions Consolidated" report section.
Analyzer Reports
216 User Guide
C
This line gives the total number of time samples taken for all of the
executions consolidated in this set of reports. If no time measurement data
is available, this line does not print.
D
This section identifies the executions that are consolidated in this report.
Each line represents a single execution step. The job name, step name,
procedure name, date, time, and total number of samples print for each
execution step. If there is no time measurement data available, the Samples
column remains empty. If the next job step has different execution options,
the options and their differing values will precede the next identification line
for the job step.
E
The EXCP count and the unit addresses are listed for every ddname. The
EXCP count is listed for each unit and its associated ddname, if the data set
has multiple volumes. If you have SYSIN/SYSOUT data sets under JES, the
EXCPs are added together and appear as a sum labeled JES.
The EXCP counts can give you some important insights into the efficiency of
your blocking and overlay structures. A blocking factor that is too low will
show up as a higher EXCP count. A high number in the EXCP COUNT field for
the STEPLIB ddname may indicate an inefficient overlay structure. This
section of the Run Summary report also shows how far your programs
progressed in terms of the number of records read in and the number that
were written out.
Note: The EXCP counts are taken from SMF internal counters.
Analyzer Reports
Chapter 6: Using Analyzer 217
Module Summary Report
The Module Summary report makes it possible to accomplish CPU time tuning on
a broader scale: at the load module and CSECT level. The report isolates those
CSECTs within load modules that consume the most execution-time. To generate
the Module Summary, XTIME (for timings) must have been used.
The Module Summary report shows how the total CPU time for the set of
executions in this Analyzer reporting run is distributed across all of the CSECTs
within each load module that has samples. The report lists timings for any
system module such as SORT, access methods, and so on. Supervisor modules
invoked by SVCs, such as OPEN, CLOSE, and EXCP, are not shown, but their CPU
time is charged to the SVC instructions within the CSECTs.
This example shows a multimodule execution:
CA MODULE SUMMARY PAGE 2
CA OPTIMIZER/II r8.5 0404ARX00A 20 FEB,2004 17.49.34
B C D E F G H I J
EXECUTIONS LOAD DATE TIME CPU TIME PERCENT OF
CONSOLIDATED MODULE CSECT COMPILED COMPILED COBOL COPT MIN.SEC.HUN MODULE TOTAL PERCENT OF TOTAL
1 0.01.26 100.00 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CAO2DEMO 0.01.25 100.00 98.84* .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX CAO2DEMO FEB 20,2004 17.49.25 OS390 OPT DA 0.01.25 100.00 98.84 .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CEEBINIT 0.00.01 100.00 .44* .
CEEBINIT NOT 0.00.01 100.00 .44 . IGZCPAC 0.00.01 100.00 .71* .
IGZCPAC NOT 0.00.01 100.00 .71 .
*REGN-00 0.00.00 100.00
Analyzer Reports
218 User Guide
A
The identification for each reporting run, the date and time of the reporting
run, and the user program-ID information (if provided).
B
The total number of sets of separate execution measurement data
consolidated for this run.
C
All load modules in this reporting run and the CSECTs within those load
modules are identified.
A load module may consist of one or more programs (CSECTs) grouped as
one entity by the linkage editor. It is possible that the same CSECT may
appear in more than one load module, and will therefore be listed separately
for each module.
Any timings which cannot be related back to a load module are resolved to
the 16 megabyte boundary of virtual storage in which they occurred. These
samples are reported under the module name *REGN-nn or *SYSTMnn,
where nn is the hexadecimal value of the high order byte of the 4-byte
address in which the sample occurred. *REGN-nn identifies all CPU time in
the region (Private User Area) that cannot be related to a load module.
*SYSTMnn identifies all CPU time outside of the region that was incurred on
your behalf and under your task, excluding SVC routines. A data
management routine is an example of the latter.
D
Date the program was compiled and optimized.
E
Time the program was compiled and optimized.
F
Since the Analyzer reporting facilities are oriented to COBOL execution
environments, each individual CSECT is identified as COBOL or NOT,
meaning not a COBOL CSECT. The compiler version (ANS2, ANS3, ANS4, VS,
COB2, COB3) for each COBOL CSECT is displayed.
G
Each COBOL CSECT is further classified as being optimized (OPT) or not
optimized (NOPT). This shows at a quick glance which COBOL programs have
yet to be compiled with CA Optimizer/II. Also, if a COBOL module has been
optimized with any of the Detector features, a D prints next to OPT. If it has
been optimized with any of the Analyzer features, an A prints next to OPT. A
blank indicates that this is not a COBOL program.
H
The CPU time for each load module and each CSECT within each load module
is displayed in minutes, seconds, and hundredths of seconds.
Analyzer Reports
Chapter 6: Using Analyzer 219
The first entry in the column is the total CPU time for the run (or set of
consolidated runs). This total CPU time is the sum of the time-weighted
samples and therefore approximates, and is less than, the job step CPU time
displayed on the JES job log. It is less because CPU time is not included for
processing:
■ The application before timings are started
■ The application after timings have ended
■ Analyzer to process and write the timings data
The CPU time for each load module is the sum total of the CPU time
measured for all CSECTs within the load module.
I
The first percentage column gives the percentage of this load module's time
that is consumed by each CSECT.
The percentage in the second column relates each CSECT to the total CPU
time reported. The load module lines give the percentage of the total CPU
execution-time that was devoted to each load module. The line for each
CSECT tells what percent of the total CPU time was devoted to that CSECT.
J
The percent histogram depicts the CPU time distribution by individual CSECT
and load module. This graph shows at a quick glance which CSECTs and load
modules used large amounts of CPU time.
Analyzer Reports
220 User Guide
Source Listing Count and Timing Report (SOURCEMAP)
On the COBOL source listing, both the count and timing measurement data print
in columns to the right of the source code.
Note: Heading lines pertain to the date and time of compilation, not the
report-time. This data is obtained from the symbolic file. The page numbering
also reflects that of compilation, rather than the page number associated with
Analyzer (reporter) output.
CA SOURCEMAP FOR PROGRAM CAO2DEMO PAGE 13 CA OPTIMIZER/II r8.5 0404ARX00 PP 5688-197 IBM COBOL for MVS & VM 1.2.0 10 OCT,1999 10.32.58
LineID ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
A B D
SENTENCES MOFFSET COUNTS PERCENT OF TIME SPENT
000477 PROCEDURE DIVISION USING PARMS. 001430 1 .2* ---FALL-THROUGH TO NEXT PARAGRAPH. 00162A 1 *
000478 ****************************************************************** *
000479 ** P R O C E D U R E D I V I S I O N ** *
000480 ****************************************************************** *
000481 * E
000482 ****************************************************************** *
000483 MAIN-PROGRAM-LOGIC SECTION. 001634 1 *
000484 *
000485 PERFORM PRE-INIT. 00163A 1 * 000486 PERFORM INITIALIZE-DEMO. 001648 1 *
---FALL-THROUGH TO NEXT PARAGRAPH. 001656 1 *
. .
.
001131 *
001132 WORKING-STORAGE-INIT SECTION. 00414C 1 * 001133 *
001134 * +--------------------------------------------------------------+ *
001135 * | ABEND FORCED BY ADDING NUMERIC TO AN UNINITIALIZED | * 001136 * | VARIABLE. | *
001137 * +--------------------------------------------------------------+ *
001138 * F 001139 ADD 5 TO NON-INITIALIZED-NUMBER. 004158 1 .1****ABEND HERE 001 *
C ***EXIT FROM PERFORMED PARAGRAPH(S). 004178 0 *
---FALL-THROUGH TO NEXT PARAGRAPH. 001656 * *
000511 *
001402 LOOP-PARAGRAPH SECTION. 004FDA * 001403 LOOP-BEGIN. 004FDA 149 *
001404 COMPUTE BINARY-CNTR-SAVE = 004FFA 149 .7*
001405 ((PACK-CNTR + SUB1 + B) * (PACK-CNTR + SUB1 + A)) *
001406 + ((PACK-CNTR + SUB2 * B) * (PACK-CNTR + SUB2 * A)) *
001407 + ((PACK-CNTR + SUB3 * B) * (PACK-CNTR + SUB3 * A)) *
001408 + (SUB1 * A * SUB2 * B * SUB3 * C * SUB * D) *
001409 + MASK3. *
Analyzer Reports
Chapter 6: Using Analyzer 221
A
The MOFFSET addresses print along with the count and timing measurement
data on the source listing.
B
This column contains the total execution count (XCOUNT) for each verb.
Each count represents the number of times the COBOL verb itself was
executed and not the number of times a loop was executed. Using the
PERFORM UNTIL as an example, Analyzer counts the number of times the
PERFORM verb was executed and not the number of times the PERFORM
Range was executed as a result of UNTIL.
C
Two types of paragraph exit indicators may appear. They are EXIT FROM
PERFORMED PARAGRAPH(S) and FALL-THROUGH TO NEXT PARAGRAPH
messages.
The EXIT FROM PERFORMED PARAGRAPH(S) message appears at the end of
each PERFORM Range. The execution count represents the number of times
control entered the PERFORM exit sequence as a result of a PERFORM verb.
Unlike the fall-through message, this message appears at each PERFORM
Range exit point even if its applicable count is zero.
The fall-through message indicates that control is passed from the
statement preceding the message to the paragraph name following the
message. If control does not fall through or the paragraph name is not
referenced, the message is omitted.
For example, suppose you have a paragraph that has a conditional GO TO
verb in it that transfers control to the exit verb for that paragraph. A FALL
THROUGH TO NEXT PARAGRAPH message is inserted before this label. This
is used to count the number of times that the exit paragraph label was fallen
through, as opposed to the number of times it was branched to. To
determine the number of times a label was branched to, subtract the counts
on the FALL THROUGH TO NEXT PARAGRAPH message from the counts on
the EXIT verb.
If both the fall-through and PERFORM exit messages appear together, their
respective counts indicate how many times the paragraphs exited through
the PERFORM linkage versus passing to the next statement.
D
The CPU time for each source statement is expressed as a percentage of the
program's total CPU time. When the percentage for a statement is less than
one-tenth of one percent, it is not listed.
If the program calls another program, all of the CPU time used in the called
program is charged to the CALL verb. All CPU time used by system functions
is charged to the verbs which invoked those functions, such as OPEN,
CLOSE, READ, WRITE, and so on.
Analyzer Reports
222 User Guide
Thus, all CPU time used by this program, including that of any program
subroutines and operating system functions it invokes, is ascribed to the
appropriate source statement.
The only exception to this is when READY TRACE is used in OS/VS COBOL.
When there is an unreferenced paragraph name, the TRACE time that
normally would be attributed to that paragraph name falls instead on the
preceding statement.
E
At a quick glance, the histogram shows any high concentrations of CPU time.
It also indicates which statements received little or no CPU time
concentration. The source statement containing the highest concentration of
CPU time shows a full histogram line, and all other source statements are
proportional to it.
F
If the program abends during execution, a message prints at the far right,
flagging the statement that caused the abend. If the abend occurred in a
called program or system module, Analyzer flags the statement responsible
for the call.
If multiple executions are being consolidated and multiple abends have
occurred, each abend is identified by the message to the right containing an
abend number. The abend number relates directly back to the Run Summary
report and matches the number assigned to the execution step in which the
abending program is contained.
Change Summary Report
This report contains a brief extract from the SOURCEMAP report that targets
selected source statements that have been tagged with a change.
The Change Summary report is generated immediately following the
SOURCEMAP report for each program. It contains only those statements that
have been tagged as changed during application development.
CA YEAR 2000 CHANGE SUMMARY REPORT PAGE 1
CA OPTIMIZER/II r8.5 0404ARX00 10 OCT,1999 12.01.29
A B C D E F
PAGE# STMT# TYPE COUNTS SOURCE IMAGE % HISTOGRAM
----- ------ -------- ------ ..1....+....2....+....3....+....4....+....5....+....6....+....7.. --- -------------------
11 000391 CAWINUP 3 CALL 'CAWINUP' 17.5 *XXXXXXXXXXXXXX
11 000397 CAWINUP 3 CALL 'CAWINUP' *
11 000403 Y2K 3 COMPUTE DAYS-BETWEEN = 365 * *
Analyzer Reports
Chapter 6: Using Analyzer 223
The report displays the following information:
A
The page number where the statement resides in the SOURCEMAP report or
the listing file for the program.
B
The sequence number for the statement.
C
The token that was used to tag the statement.
D
The number of times that the statement was executed.
E
The 80-byte source image for the statement.
F
The CPU percentage, including the histogram report, if timings were taken
for the program during execution.
The entries in the tag table are processed sequentially, so the first tag to be
identified on any line is reported in the Change Summary report. Even if a source
statement matches more than one tag, only the first matching tag is reported.
The percentage and histogram fields in the Change Summary report are not
available if XTIME is not in effect for the execution, or if none of the source
statements in the report have any timings attributed to them.
The Change Summary report cannot be produced without a SOURCEMAP report
or without the XCOUNT option in effect.
Analyzer Reports
224 User Guide
Report of Unexecuted Paragraphs
This report lists each paragraph name that did not execute (received no counts)
for this Analyzer run. This information can be very valuable in debugging and
testing. There are many possible reasons why a paragraph may not have
executed, including logic errors or inadequate test data. The report is organized
in a two-up fashion from left to right.
CA UNEXECUTED PARAGRAPHS PAGE 1 CA OPTIMIZER/II r8.5 0404ARX00 20 FEB,2004 17.49.34
PROGRAM-ID = (CAO2DEMO)
A B C D A B C D PAGE STATEMENT # PAGE STATEMENT #
NO COMP/SOURCE *------PARAGRAPH NAME----------* NO COMP/SOURCE *------PARAGRAPH NAME----------*
22 000669/ GTNN3 22 000671/ GTY3 22 000676/ GTY1 22 000678/ GTY4
22 000683/ GTNN4 22 000685/ GTY2
22 000689/ GTYY5 22 000693/ GTYN5 22 000695/ GTYY6 29 000832/ ID4-2
33 000887/ CHECK-0 37 001056/ PARAGRAPH-5
38 001071/ PARAGRAPH-9 39 001112/ FD-CHECK
39 001121/ SUBRANGE-CHECK 39 001132/ WORKING-STORAGE-INIT
41 001144/ PRINT-LIST-2 41 001150/ PRINT-LIST-3
41 001156/ PRINT-RL1 41 001164/ PRINT-RL2
41 001172/ PRINT-RL3 41 001180/ PRINT-RL4
42 001188/ PRINT-RL5 43 001199/ PRINT-ARRAY
43 001204/ LINE-LOOP 43 001207/ ELEM-LOOP 43 001218/ LINE-RITE
TOTALS FOR (CAO2DEMO):E 27 UNEXECUTED PARAGRAPHS 106 EXECUTED PARAGRAPHS
133 TOTAL PARAGRAPHS
This report displays the following information:
A
The source listing page number where the paragraph begins.
B
The compiler assigned statement number.
C
The programmer assigned statement number.
D
The paragraph name.
E
Counts of total executed and unexecuted paragraphs.
Analyzer Reports
Chapter 6: Using Analyzer 225
Paragraph Execution-time Summary
This report identifies the ten most time-consuming paragraphs in the program.
Analyzer lists them in order by the amount of time consumed, with the
paragraphs consuming the most time appearing first. These may be the
paragraphs most worthwhile to tune. The report will show less than ten
paragraphs, when the program itself contains less than ten, or when less than
ten have executed.
When the Sourcemap report consolidates multiple executions of a program, the
time measurement data is consolidated to show the overall ten most
time-consuming paragraphs.
CA PARAGRAPH EXECUTION-TIME SUMMARY PAGE 2
CA OPTIMIZER/II r8.5 0404ARX00 20 FEB,2004 17.49.34
PROGRAM-ID = (CAO2DEMO) A B C D E F G
PAGE STATEMENT # CPU TIME
NO COMP/SOURCE *------PARAGRAPH NAME----------* (SECONDS) PERCENT 35 000968/ MLT-SUB-1 .54 42.6 * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
25 000746/ PARAGRAPH-4600 .41 32.6 * XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
36 000998/ MLT-SUB-3 .10 8.1 * XXXXXXX
35 000984/ MLT-SUB-2 .01 1.1 *
48 001367/ ABEND-PARAGRAPH .01 .9 *
36 001014/ MLT-SUB-3-EXIT .01 .8 *
24 000725/ PARAGRAPH-4100 .01 .5 *
18 000561/ START-PGM-DISP .01 .4 *
49 001403/ LOOP-BEGIN .01 .4 *
23 000705/ PARAGRAPH-4000 .00 .3 *
CPU OVERHEAD FOR PARAGRAPH FLOW (PFLOW) SUPPORT 7.0%
CPU OVERHEAD FOR EXECUTION COUNT (XCOUNT) SUPPORT 4.6% END OF PARAGRAPH EXECUTION-TIME SUMMARY FOR (CAO2DEMO)
Analyzer Reports
226 User Guide
These are the contents of the Paragraph Execution-time Summary:
A
The source listing page number where the paragraph begins.
B
The compiler statement number.
C
The COBOL line number. If the source sequence numbers are not coded in
the program identified by PROGRAM-ID, this field is blank.
D
The paragraph name.
E
The CPU time (in seconds) consumed by each paragraph.
F
The percentage of the total program CPU time devoted to each paragraph.
G
The histogram showing the CPU-time distribution. The paragraph name with
the highest time consumption shows a full histogram line, the other lines are
proportional to it.
Execution Count Cross-Reference Report (CNTXREF)
This report groups all the source statement numbers by the number of times
they were executed. You can tell at a glance which groups of statements were
executed the same number of times and are therefore possibly related. You can
use the Execution Count Cross-Reference report in maintenance by comparing
counts between runs to make sure changes were made correctly.
Analyzer Reports
Chapter 6: Using Analyzer 227
This report is your major quality assurance tool. If the count field on the first line
of the report is not zero, then every program statement was executed at least
once. Thus, a quick look at the first line of the report's first page tells you how
thoroughly the program has been tested.
CA EXECUTION COUNT CROSS REFERENCE PAGE 1
CA OPTIMIZER/II r8.5 0404ARX00 (CNTXREF) 20 FEB,2004 17.49.34 A B C PROGRAM-ID = (CAO2DEMO)
COUNT TOTAL COBOL LINE NUMBERS
0 000527 000559 000663 . 000669 GTNN3
. 000670
. 000671 GTY3
. 000672 000675
. 000676 GTY1
. 000677
. 000678 GTY4
. 000679-000680
. 000683 GTNN4
. 000684
. 000685 GTY2
. 000686 . 000689 GTYY5
. 000690
. 000693 GTYN5 . 000694
. 000695 GTYY6
. 000696 000765-000766 000779 000780 000782 000783 000784 000785 000786 000802-000803 . 000805-000806 000808-000809 000810-000811 000814-000819 000827-000828 000831
. 000832 ID4-2
. 000833-000835 000837-000838 000847 000851 000860 000862 000864 000866 000885 . 000887 CHECK-0
. 000888-000894 000896 000901 000902 000905 000906 000928 000929 000930 000931 000932
. 000933-000935 000938-000940 000943-000945 001047 001054 . 001056 PARAGRAPH-5
. 001057 001061 001065 001069
Analyzer Reports
228 User Guide
A
This column is the execution count (XCOUNT) value. A series of lines
showing the same count values begin and end with the count number.
Intervening dots indicate that the same count prevails.
Note: When a count range extends beyond a page, the new page repeats
the count column digit in parentheses indicating that the count is continued
from the previous page.
B
The last line of a count group gives the total number of program statements
having the specified execution count.
C
The six-digit compiler statement numbers belonging to each count category
are listed. Groups of consecutive statements with the same counts are
shown by the first statement number, one hyphen (-), and the last
statement number.
When the statement number represents a paragraph name, that name prints
following the statement number on a separate line.
If the NUM option is specified at compile-time, Analyzer uses six-digit source
statement numbers.
Instruction Detail Report (INSTRMAP)
This address-oriented report is language-independent and can be produced for
any CSECT. The Instruction Detail report lists only those instructions, known as
hot spots, that use a significantly greater amount of CPU time than the others in
the program. A hot spot may be a single, high CPU-time instruction, such as a
move long (MVCL) or it may be a group of instructions performing some very
frequently executed function. Knowing the location of these instruction hot spots
can help you reduce the program's total execution-time.
Analyzer Reports
Chapter 6: Using Analyzer 229
The following is a sample of the Instruction Detail report.
CA INSTRUCTION DETAIL REPORT PAGE 1
CA OPTIMIZER/II r8.5 0404ARX00 (INSTRMAP) 23 FEB,2004 17.58.50
REPORTER RUN IDENTIFICATION 23 FEB,2004 17.58.50 CAA
CPU TIME BY INSTRUCTION IN CSECT (CAO2DEMO)B
C D E F G H CSECT PERCENT OF CUMULATIVE PERCENT OF INSTRUCTION
- 6 HEX LOC + 6 HEX ADDRESS CSECT MODULE TOTAL CSECT MODULE TOTAL CLUSTERING PERCENT OF CSECT
--------------------- ----------------------- 000000000000 * 5810E0185001 000000 0.682 0.682 0.667 0.682 0.682 0.667 . .
000000000000 * 5A10E0005800 000000 0.891 0.891 0.872 1.573 1.572 1.539 . .
00005810E018 * 5001E0204110 000000 0.638 0.638 0.625 2.211 2.210 2.164 . . 00005A10E000 * 580010140600 000000 1.185 1.185 1.160 3.396 3.395 3.324 . .
10045410E01C * 5010E01818E0 000000 1.412 1.412 1.383 4.808 4.808 4.707 . .
E0185001E020 * 411010045410 000000 0.936 0.936 0.916 6.406 6.405 6.272 . . E01C5010E018 * 18E007FE0000 000000 1.736 1.736 1.700 8.142 8.142 7.972 . .X
E02041101004 * 5410E01C5010 000000 0.758 0.758 0.742 8.900 8.900 8.714 . .
05E100000228 * 5850934858E0 00275C 0.329 0.329 0.322 9.748 9.748 9.545 . . 050E5810D358 * 05E10000022C 00276A 0.336 0.336 0.329 10.406 10.406 10.189 .XXXX .
180F4C00C10A * 59F092B84720 002788 0.566 0.566 0.555 11.286 11.285 11.050 . .
18EF8BE00002 * F2F5D20876B0 0027A0 0.326 0.326 0.320 11.933 11.933 11.684 . . F2F5D20876B0 * FA33D214D2FC 0027A6 2.885 2.885 2.825 14.818 14.818 14.509 .XXXXXXXX .X
FA33D214D2FC * 1AE7FC73D210 0027AC 0.435 0.435 0.426 15.253 15.252 14.935 .XXXXXXXX .
FC73D210E85C * FA75D210502A 0027B4 12.210 12.210 11.957 27.463 27.463 26.891 .XXXXXXX .XXXXXXXX FA75D210502A * 594092B84720 0027BA 0.866 0.866 0.848 28.329 28.328 27.739 .XXXXXXXX .
F2F5D21876B0 * FA33D224D2FC 0027D8 2.393 2.393 2.343 31.437 31.437 30.783 . .X
D224D2FC1AE7 * FC73D220E85C 0027E0 0.309 0.309 0.303 31.966 31.966 31.301 .XXXXXXX .
FC73D220E85C * FB76D210D221 0027E6 10.108 10.108 9.898 42.074 42.074 41.199 .XXXXXXXX .XXXXXX
FB76D210D221 * 580093445900 0027EC 0.526 0.526 0.515 42.599 42.599 41.713 .XXXXXXXX .
F2F5D21876B0 * FA33D224D2FC 00280E 1.919 1.919 1.879 44.721 44.721 43.791 . .X
FA33D224D2FC * 1AE7FC73D220 002814 0.535 0.535 0.524 45.257 45.256 44.315 .XXXXXXXX .
FC73D220E85C * FA86D20FD221 00281C 9.441 9.441 9.245 54.800 54.800 53.660 .XXXXXXX .XXXXXX
. .
. .
D262435CE68F * 5810D35805E1 003BF2 0.679 0.679 0.665 98.684 98.684 96.632
100.000 100.000 97.922
CAO2DEMO INSTRMAP PROCESSING COMPLETED
Analyzer Reports
230 User Guide
A
Identifies the Analyzer reporting run that produced this report.
B
The CSECT identification appears in the heading.
C
The contents of storage, six bytes before and six bytes after, help to further
identify the instruction.
Except for branch destinations, the -6 HEX column contains the hexadecimal
instruction that used the CPU.
The hexadecimal data should match the hexadecimal instruction of that part
of the code on your CSECT listing. If not, the code may be from a different
listing, or the program may have modified its own instruction code during
execution.
If your program contains instructions modified during runtime, and if both
the original and modified instructions use large amounts of CPU time,
Analyzer will print the original and modified instructions on separate lines.
D
Analyzer identifies each instruction appearing in this report by its offset
relative to the CSECT origin.
E
The percent columns relate the CPU time spent at each CSECT address as a
percentage of the total CPU time spent in the CSECT, load module, and entire
execution run.
F
The data in the "Cumulative Percent Of" columns shows the amount of CPU
time spent at all addresses up to and including this one. As a result, the last
figure in the CSECT column of the "Cumulative Percent Of" heading is always
100%. The last figure in the MODULE column under the "Cumulative Percent
Of" heading is the percentage of the load module CPU time used by the
CSECT. The percentage of the entire execution run consumed by the CSECT
appears at the foot of the "Cumulative Percent Of" TOTAL column.
G
The instruction-clustering histogram shows tight clusters of hot spot
instructions in the program's code. There may be groups of instructions that
perform some heavily executed function. If a group of instructions appearing
in this report forms a cluster of consecutive addresses, the
instruction-clustering histogram will show high values for these instructions.
On the other hand, an instruction which appears on this report and is
relatively isolated from any of the others, indicates a single high-CPU-time
instruction in an otherwise low-CPU-time set of code. The clustering
histogram value for this instruction will be low.
Usage Considerations
Chapter 6: Using Analyzer 231
H
The Percent Of CSECT histogram graphically represents the CSECT column in
the "Percent Of" heading.
Usage Considerations
This section provides the following information:
■ Using Analyzer with IMS (see page 231)
■ Analysis of counts results (see page 231)
■ Interpretation of timings (see page 232)
■ Automatic invocation of Analyzer Reporter (see page 234)
■ Relationship between XTIME and DBGSLEEP/DBGAWAKE (see page 235)
■ Tagging a source statement for the Change Summary report (see page 235)
■ Restrictions (see page 236)
Analyzer with IMS
Analyzer can be used in IMS environments. A complete discussion on how to use
Analyzer under IMS can be found in the Installation Guide.
Analysis of Counts Results
Each process in a program is usually associated with a distinctive count, and
each distinctive count is usually associated with only one process. If a statement
exhibits a distinctive count, it is probably part of the indicated process.
The patterns of the counts as they relate to the various routines in your
programs are significant and can help you bridge the gap between what your
program is supposed to be doing and what it is doing. Certain types of routines
normally exhibit certain count characteristics.
Types of Routines Count Values
Initialization 1
Termination 1
Some Error 0
Main Loop A distinctive count usually tied to the number of input
records.
Usage Considerations
232 User Guide
Types of Routines Count Values
I/O A distinctive count equivalent to the number of
records read or written, or the number of lines
printed.
Inner Loops Distinctive counts considerably higher than the Main
Loop Count.
Record Type, Exception
Case, and Control Break
Distinctive counts lower than the Main Loop Count.
Other Routines Often sums or multiples of distinctive counts.
Interpretation of Timings
This section analyzes timing considerations for multimodule environments and
multirun reports.
For Multimodule Environments
The timings on the Analyzer Sourcemap report take on a different meaning in a
multimodule environment than in single module executions. For example,
assume that in the diagram below, program B is the only COBOL program
compiled using XTIME.
A
┌──────────────────┬───┴───┬─────┐
│ │ │ │
│ │ │ │
B <-----COBOL C D E
│ program
┌───┴───┐ being
│ │ ANALYZED
F G
The Execution Monitor begins to gather CPU-time samples when program B gets
control. It collects sampling information on program B and its CALL statements.
It only gathers CPU-time samples on A, C, D, or E if they are given control after
B first gained control. The total time reported is the CPU time consumed by
program B, the programs downstream from it (programs F and G), and possibly
some portion of A, C, D, and E. This means that when a verb in program B is
reported to have used 10% of the CPU time, it has used 10% of the total CPU
time consumed by programs B, F, and G. The CPU time for a verb which includes
a transfer of control out of the program, for example CALL, WRITE, or SORT,
includes the CPU time consumed by the routines that were called by that verb. It
is important to remember this when you use the Sourcemap report in
conjunction with the Module Summary report which shows CPU time by CSECT
and load module.
Usage Considerations
Chapter 6: Using Analyzer 233
Using the same example, assume that you want to get timings for the entire
application starting with program A. If A was optimized with any of the Detector
or Analyzer options then simply include the following in the JCL at
execution-time:
// CAIOPTS DD *
XTIME FIRST
/*
Finally, using the same example, assume you want to get timings for the entire
application starting with program A, but A is an Assembler program. You can
accomplish this by executing the Execution Monitor (CAOCEM00) and then
passing the application job-step program name using the PGM option. Assuming
the application job-step program name is APP1, the following execution-time JCL
is displayed:
//STEP2 EXEC PGM=CAOCEM00
//STEPLIB DD DSN=your.optii.loadlib-name,DISP=SHR *
// DD DSN=your.app1.loadlib-name,DISP=SHR
//
.
. APP1's DD statements
.
//
//CAIOPTS DD *
XTIME FIRST
PGM APP1
/*
* This is only necessary if the PDS containing CA Optimizer/II is not part of
LINKLIB.
If your application passes options using PARM on the EXEC statement, you can
still do so. CAOCEM00 passes the options to the application exactly as you coded
them in the PARM keyword.
For Multi-run Reports
For effective use of an Analyzer Sourcemap report based on execution statistics
from multiple runs, it is important to understand how the consolidation is done.
Normally, the CPU percentages are based on the number of samples obtained for
a verb divided by the total number of samples obtained (see note). When several
runs are consolidated, the reporting phase simply adds together the number of
weighted samples for that verb from each execution and divides by the total
number of weighted samples from all the runs. If this is not taken into account,
misleading interpretations could result.
Note: Above is a simplified explanation. The weight of the samples actually
varies as a result of the CPU time used by each timing interval.
Usage Considerations
234 User Guide
Automatic Invocation of Analyzer Reporter
The Analyzer Reporter is that part of the Analyzer that reads the Counts and
Timings (TIMSV) data set(s) and the symbolic file. It produces all the Counts and
Timings reports. The Analyzer Reporter can be either automatically invoked
upon normal or abnormal termination of the application, or it can be executed as
a separate job step.
In most cases, you will want to have it automatically invoked as soon as the
application has completed. There are times, however, when you will want to
execute it as a separate job step. For example:
■ When you have a concatenated TIMSV DD statement. In this case several
TIMSV data sets have been produced over a period of time and you want to
obtain a consolidated set of reports.
■ When you want to perform in-depth CPU-Time analysis. Once the data has
been captured the Analyzer Reporter can be run any number of times against
that same input data. This is very useful for large systems consisting of tens,
even hundreds, of modules and where there is a mix of COBOL and
Assembler. In this case, in the initial run you might specify NOCNTXREF ALL
and NOSOURCEMAP ALL to get just the summary reports. These reports tell
you what modules to look at in more detail. If they are COBOL modules, use
the SOURCEMAP option to get one or more detail reports. If they are
Assembler modules, use INSTRMAP to get your detail reports.
The conditions under which automatic invocation will occur in the same job step
as the application are as follows:
■ When Counts and/or Timings (XCOUNT and/or XTIME) are active for one or
more programs in the application.
■ XREPORT is ON. (This is the default).
Automatic invocation is designed primarily for a onetime use of Analyzer where
TIMSV data is not kept when the job is completed. If you do not supply a TIMSV
DD statement in the execution JCL one is dynamically allocated for you.
Therefore, if you want to save the TIMSV data you must supply your own DD
statement. For more details on the TIMSV file and on dynamic allocation, consult
section Usage Considerations.
Usage Considerations
Chapter 6: Using Analyzer 235
The Relationship Between XTIME and DBGSLEEP/DBGAWAKE
If XTIME is specified at compile/optimize time with DBGSLEEP, XTIME is not
activated at runtime unless one of the following occurs:
■ If DBGAWAKE is specified at runtime, XTIME is activated upon entry to the
first program
– compiled and optimized with XTIME and
– specified in the list of programs in the DBGAWAKE option.
■ If XTIME FIRST is specified at runtime, XTIME is turned on the first time the
Execution Monitor is called from any program in the application. The
Execution Monitor is called at runtime from any program compiled/optimized
with any combination of the following options:
– DTECT
– FDCHECK
– PARMCHK
– PFLOW
– SUBRNGCK
– WSINIT
– XCOUNT
– XTIME
The call to the Execution Monitor when one or more of these options is specified
at compile/optimize time is independent of the
■ DBGSLEEP specification at compile/optimize time and
■ DBGAWAKE specification at runtime.
Place tag on a Source Statement for the Change Summary Report
When source changes are made during application development, the affected
statements may be tagged by placing a user-defined token in the sequence (1
through 6) or serial (73 through 80) columns. Tags must be placed on
executable COBOL statements, not on separate comment lines.
In the sequence columns, a tag may consist of any characters and may be any
length from 1 through 6 characters. It may begin in any of the first six columns.
In the serial columns, a tag may consist of any characters and may be any length
from 1 through 8 characters. It may begin in any of the last eight columns, 73
through 80.
Usage Considerations
236 User Guide
A typical tag may contain the programmer's initials followed by the year and
month in which the changes were made. This type of tag is particularly useful
when isolating changes made by a specific programmer, or in a specific month or
year. In the example below, the tag SD0404 is used for a new paragraph that
was added in April, 2004.
SD0404 NEW-PARAGRAPH.
SD0404 CALL 'NEWSUB' USING NEW-DATA NEW-RC.
SD0404 IF NEW-RC > ZERO
SD0404 DISPLAY 'ERROR IN NEW SUBROUTINE, RC=' NEW-RC
SD0404 MOVE SPACES TO LS-DATA
SD0404 MOVE 8 TO LS-RC
SD0404 ELSE
SD0404 MOVE NEW-DATA TO LS-DATA
SD0404 MOVE ZERO TO LS-RC.
To include this enhancement in the Change Summary report, you could define
any number of tags, including the entire tag (SD0404), the programmer's initials
(SD), or the date (0404). Any of these tag definitions would cause the
statements to be included in the Change Summary report.
Restrictions
Analyzer cannot operate under CICS, CMS, HOGAN, IDMSDC, SHADOW, or when
using multitasking, with the exception of IMS/VS message processing regions.
For more information on using Analyzer in IMS environments, see the chapter
"Special Environments" in the Installation Guide.
The Analyzer Reporter is upwardly compatible with TIMSV files and CSL libraries
produced by CA Optimizer OS version 4.2 and higher.
Chapter 7: Using Extended Optimization Support for CICS 237
Chapter 7: Using Extended Optimization
Support for CICS
Extended Optimization Support (EOS) is a runtime optimization facility for CICS
application programs that have been compiled by CA Optimizer/II using the EOS
compile-time option.
The EOS compile-time option is no longer supported during optimization.
However, the EOS runtime facility is still provided to support those programs
that have already been optimized using the EOS option. For these programs
only, the optimization provided by the EOS runtime facility works in cooperation
with the compile time optimization techniques to provide even greater reduction
of CPU utilization for your CICS COBOL applications.
EOS Execution-time Options
The runtime options for EOS are not specific to your program or application but
apply to all EOS programs. These options are under the control of your CICS
systems programmer and are discussed in the Installation Guide.
JCL Requirements
Changes to your CICS startup JCL are required to use EOS. This JCL is under the
control of your CICS systems programmer. The installation of EOS, including its
initialization and termination within a CICS region, are discussed in the
Installation Guide.
Execution-time Messages
238 User Guide
Execution-time Messages
EOS performs services on behalf of the transaction. For example, obtaining
storage for the COBOL program's TGT and working storage. If an error is
encountered while EOS is performing one of these services for the transaction,
one or more messages are produced that describe the problem. Your CICS
systems programmer decides whether messages are written to a Temp Storage
Queue or to a Transient Data Queue. EOS writes the messages to a Temp
Storage Queue using a TS Queue name of CAOZxxxx where xxxx is your terminal
ID. If the task has no terminal ID then xxxx is x'F0F0F0F0'. If your CICS systems
programmer has chosen to have EOS messages written to a Transient Data
Queue, EOS uses a TD Queue name of CAOZ.
If a Temp Storage Queue is being used by EOS, any messages for your
transaction can be found by using the CEBR transaction with a Queue name as
described above. Your Queue can be purged after viewing, if you want, by using
the PURGE command of the CEBR transaction. If the Transient Data Queue is
being used, consult your CICS systems programmer for access.
EOS messages always begin with CAPZnnnx.
where nnn can range from 001 to 999 and x can be I, W, or E indicating
informative, warning, or error, respectively. The message numbers 001 to 099
are reserved for RXnn abend messages. For example, if EOS abends a
transaction with a RX11 abend (see Execution-time Abends below), a CAPZ011E
message is written by EOS.
Each record written to the TS or TD Queue contains an 80-byte message plus a
20-byte trailer that can be used for sorting the records. The trailer consists of the
terminal ID, trans ID, date, and time in the following format:
aaaabbbbyymmddhhmmss
where aaaa is the terminal ID and bbbb is the transaction ID.
An EOS runtime option controls the maximum number of records EOS writes on
behalf of any transaction. Consult your CICS system programmer for the
maximum number allowed per transaction at your installation.
Execution-time Abends
Chapter 7: Using Extended Optimization Support for CICS 239
Execution-time Abends
If a transaction abends and one or more of the COBOL programs in the
transaction are EOS COBOL programs, EOS reports on the abend. (Note that a
transaction can also abend because EOS itself issued the abend. For example, if
an EOS COBOL program is about to be recursively entered, EOS abends the
transaction with a RX11 abend.) The EOS abend report is written to the
CAOZxxxx TS Queue or the CAOZ TD Queue depending on the setting of the
runtime message destination option. (See Execution-Time Messages above.) A
CICS transaction dump is always produced in addition to the EOS abend report.
Abends that occur in non-EOS COBOL programs are still reported on by the
COBOL II or LE runtime system, whichever is initialized in the CICS region.
EOS produces two types of reports depending on the error: one for abends within
EOS itself and another for any abend within an EOS COBOL program. The EOS
abend reporting has two purposes: first, to provide essential diagnostic
information to CA in the event of a failure within EOS itself and second, to
provide a short diagnostic report in the event of a failure within an EOS COBOL
program. The first type of report is discussed in Installation Guide.
For an EOS COBOL program abend report, the following is displayed:
■ Date, time, trans ID, and terminal ID
■ Abend code
■ PSW at the time of the abend (if program check)
■ Registers at the time of the abend
■ Name and address of the last EOS COBOL program in control
■ TGT and working storage addresses of that program
■ Program offset (if available) of the program check if the program check
occurred within an EOS COBOL program
■ Program offset (if available) of the last command if the last command
occurred within an EOS COBOL program
■ Program offset (if available) of the last static CALL if the last CALL occurred
within an EOS COBOL program
The report is not only written to the TS or TD Queue; user storage is also
obtained and each line of the report is copied to this storage so that the report is
also displayed in the CICS transaction dump. The abend report can be found by
looking for it in the 32-byte EBCDIC display column on the right-hand side of the
dump. The following immediately precedes the report in the dump:
***EOS DIAGNOSTIC REPORT***
Usage Considerations
240 User Guide
Each line of the abend report starts a new line in the dump so it is quite readable.
The report in the dump does not include the trailer on each record.
Note: If EOS produced an abend report (that is, the abend was either in EOS
itself or in an EOS COBOL program) and LE is initialized in the CICS region, and
one or more non-EOS COBOL programs were also active in the transaction, the
abend report that is also produced by LE should be ignored. (The LE report to be
ignored can be identified by LE having reported that the abending module was
CEECRINV or IGZECI5.)
A sample EOS abend report follows:
CAPZ142E AN EOS COBOL TRANS HAS ABENDED. THIS REPORT SUMMARIZES THE ERROR. DATE(DD-MM-YY)=03-11-04, TIME(HH:MM:SS)=15:21:34, TRANSID=EA06, TERMID=L4A7
THE ABEND CODE WAS ASRA. THE PSW WAS 078D1000 84D1D496.
THE REGISTERS AT THE TIME OF THE ABEND WERE:
0-3 0001B56C 00000000 0001B8E0 0001B660
4-7 00342A40 04D1D3F0 00001000 00002000
8-11 00342A40 0001B430 000384D0 00038408
12-15 04D1D1D8 0001B430 84D1D48C 00000000
THE LAST EOS COBOL PROGRAM IN CONTROL WAS EAC06P00 AT ADDRESS 04D1D108.
THE FOLLOWING APPLY TO PROGRAM EAC06P00:
THE PROGRAM CHECK OCCURRED AT OFFSET 00038E.
THE LAST STATIC CALL OCCURRED AT OFFSET 000384.
CAPZ143I THE DIAGNOSTIC REPORT IS COMPLETE.
Usage Considerations
Inter-language Communication Between COBOL and C
Inter-language communication between COBOL and C is not supported by EOS.
Do not attempt to execute EOS COBOL programs which call or are called by any
C program. EXEC CICS LINK or EXEC CICS XCTL between EOS COBOL programs
and C programs, in either direction, is allowed.
Mixing of EOS and Non-EOS COBOL Programs
There are no restrictions on the mixing of EOS COBOL programs and non-EOS
COBOL programs within a CICS application. A load module can be composed of
any combination of EOS and non-EOS COBOL programs. A non-EOS COBOL
program can also be optimized. There are also no restrictions on the use of
Assembler subroutines.
System Requirements
Chapter 7: Using Extended Optimization Support for CICS 241
EOS in CICS Region
EOS must be initialized and enabled in the CICS region before EOS COBOL
programs can run. This is handled by your CICS systems programmer. If EOS
was never initialized and an EOS COBOL transaction is run, it abends with an
ASRA (0C1). The PSW at abend points to the following message:
CAPZ138E THE EOS CBL BOOTSTRAP WAS ENTERED BUT EOS HAS NOT
BEEN INITIALIZED.
If EOS is initialized but is currently disabled (by your CICS systems programmer)
and an EOS COBOL transaction is run, it abends with an RX03 abend. In-flight
EOS COBOL transactions at the time of disabling are allowed to continue.
System Requirements
To use the EOS runtime facility, the following system requirements must be met:
■ MVS/XA, MVS/ESA, OS/390 or z/OS
■ CICS TS Version 1.1 or higher
■ COBOL II Runtime Library version 1.3.0 through 1.4.0 or any version of
Language Environment
Chapter 8: TSO Support and Help Facilities 243
Chapter 8: TSO Support and Help
Facilities
This chapter describes how to use the TSO/ISPF product menus, product help
and COBOL language help facilities provided with CA Optimizer/II.
TSO Support
The TSO Support feature allows you to optimize COBOL programs interactively.
To invoke the CA Optimizer/II TSO facility, select it from your ISPF Master Menu
panel. This facility guides you in optimizing, linking, and executing COBOL
programs. It also guides you in using CA Optimizer/II and in using the COBOL
language. Sample panels are provided on the following pages.
Primary Option Menu
The Primary Option Menu displays when you first enter the CA Optimizer/II TSO
Facility and after you have completed each function. The return code from the
last requested function displays unless the return code was zero, in which case
the return code display area is left blank.
--------------- CA OPTIMIZER/II PRIMARY OPTION MENU ------------------ SELECT OPTION ===> 1 OPTIMIZE - Invoke CA OPTIMIZER/II (foreground or background) 2 BROWSE - Browse Optimized Listing 3 ERRORS - Browse COBOL Error Listing 4 PRINT - Print Optimized Listing 5 DELETE - Delete Optimized Listing and Error Listing 6 EXECUTE - Invoke Optimized Program in the foreground 7 MRS - Run the Management Reporting System in background 8 PRODUCT HELP - Information regarding CA OPTIMIZER/II usage 9 LANGUAGE HELP - Information regarding the COBOL language V REPOSITORY VIEWER - View reports in your central repository X EXIT - Terminate ISPF using log and list defaults Enter END command to terminate ISPF.
Primary Option Menu
244 User Guide
The following table describes the Primary Option Menu functions:
Option Function Description
1 OPTIMIZE Initiates an optimization run. You can supply
options to override those set in the default option
CSECT before proceeding with optimization.
2 BROWSE Displays the CA Optimizer/II listing file on the
terminal.
3 ERRORS Displays the COBOL compiler's error listing file on
the terminal.
4 PRINT Sends the CA Optimizer/II listing file to the
printer.
5 DELETE Deletes the CA Optimizer/II listing file.
6 EXECUTE Invokes the optimized program in the
foreground.
7 MRS Executes the CA Optimizer/II Management
Reporting System in the background.
8 Product help Provides information for all CA Optimizer/II
options and product panels.
9 Language help Covers COBOL reserved words, their format, and
usage. Usage examples and a COBOL topic HELP
is also provided.
V Repository
Viewer
Launches the Repository Viewer, allowing you to
view Detector reports and use the symbolic
utilities.
X EXIT Terminates ISPF using log and list defaults.
Primary Option Menu
Chapter 8: TSO Support and Help Facilities 245
Invocation Panel
You invoke this panel from the Primary Option Menu by selecting Option 1
(Optimize). It allows you to run the product in the foreground or in the
background. Additionally, you can specify the name of the CA Optimizer/II load
library which is required for foreground processing, but is optional for
background processing. The COBOL load library is also optional for background
processing, and is ignored for foreground processing. The PROTSYM and STATS
files are optional.
---------------------- CA OPTIMIZER/II INVOCATION ------------------------- SELECT OPTION ===> 1 BACKGROUND - Background Compile/Optimize 2 FOREGROUND - Foreground Compile/Optimize CA OPTIMIZER/II Data Sets OPTIMIZER/II Load Library ===> 'CAI.OPTU.DEVL.OPTII' Volume Serial ===> (if not cataloged) COBOL Load Library ===> 'CAI.OPT.SMPE.COB2COMP' Volume Serial ===> (if not cataloged) PROTSYM File ===> 'CA00.OPTII.PROTSYM' Volume Serial ===> (if not cataloged) Statistics File ===> 'CA00.OPTII.STATS' Volume Serial ===> (if not cataloged) COBOL Copy Libraries LIB1 ===> LIB2 ===> LIB3 ===> Enter END command to return to Primary Option Panel
Primary Option Menu
246 User Guide
Output File Information Panel
This panel displays when you select Option 1 (Background) or Option 2
(Foreground) on the Invocation Panel. It allows you to specify the type of file
output you desire (hard copy or disk), the name of the data set which is to
contain the object module, and the JOB statement information which is required
for background submissions.
----------------- CA OPTIMIZER/II OUTPUT FILE INFORMATION ---------------- COMMAND ===> Enter DSNAME which will contain the OBJECT module (Required): Object Data Set ===> 'CA0000.PDS.OBJ(VLC301)' Enter a Member Name (Optional: for Partitioned Object Data Set ONLY): Object Member ===> To print your listing, enter the SYSOUT Class: SYSOUT Class ===> To save the output listing to disk, enter the DSNAME: Listing Data Set ===> 'CA0000.' JOB STATEMENT INFORMATION: (Required for background compile) ===> //CA0000A JOB (ACCOUNT),'NAME' ===> //* ===> //* ===> //* Enter END to exit
Primary Option Menu
Chapter 8: TSO Support and Help Facilities 247
Defaulted Options Panel
The Defaulted Options panel is the last panel displayed before CA Optimizer/II is
invoked. It displays the CA Optimizer/II release and genlevel, as well as default
compile-time options. It also prompts you for the input data set that contains the
COBOL source code and any option overrides to the defaults.
Note: Separate options with commas as shown in the following example:
MXREF,APOST,MMAP
Do not code apostrophes ( ' ); the dialog automatically inserts them for you.
--------------------- CA OPTIMIZER/II R8.5 GENLEVEL 0411 ---------------------- COMMAND ===> Enter Options PARM Information ===> ===> Source Data Set ===> 'MY.COBOL.SRC(TESTPGM)' Volume Serial===> (if not catalogued) DEFAULTED OPTIONS (An * indicates the option is Fixed and may not be overridden) CASORT NO DTECT NO MMAP NO PRTCOPY YES TPMON NO CICS NO EOS NO MOFFSET NO PUSHPOP YES WSCLEAR NO CSL NO EZTEST NO MXREF NO SOURCE YES WSINIT NO CXREF NO FDCHECK NO OBJECT YES SPM NO XCOUNT NO DBGSLEEP NO IDMS NO OFFSET NO STATS YES XMMAP NO DCRDISP NO LIST NO PARMCHK NO SUBRNGCK NO XREF NO DECK NO MAP NO PFLOW NO TITLE NO XTIME NO Enter END to exit
Note: The defaulted options are set at installation time by your systems
programmer. At that time, the systems programmer may fix an option so that it
cannot be overridden. Any option that was fixed has an asterisk (*) next to it on
this panel.
Primary Option Menu
248 User Guide
Browse CA-Optimizer/II Output Panel
You invoke this panel from the Primary Option Menu by selecting Option 2
(Browse). It allows you to browse CA Optimizer/II output. However, you can
only use this panel if the output data set has been placed on disk. The dialog
remembers the name of the last output data set used and displays it on the panel
prior to invoking browse. If you would like to browse a different data set, specify
the data set name in the Listing Data Set field before pressing Enter.
---------------------- BROWSE CA-OPTIMIZER/II OUTPUT ---------------------- COMMAND ===> To use this option, output from the compilation step (option 1) must have been routed to a data set (not a SYSOUT Class). Verify the listing data set information below, then press Enter to BROWSE output Listing Data Set ===> 'CA0000.' Enter END to exit
Primary Option Menu
Chapter 8: TSO Support and Help Facilities 249
Browse CA-Optimizer/II Errors Panel
You invoke this panel from the Primary Option Menu by selecting Option 3
(Errors). It allows you to browse the compile time errors that may have
occurred. The CA Optimizer/II dialogs automatically generate a data set name
and allocate it to the system. This data set name is then displayed on the panel.
You can change the name, if you want, before pressing Enter.
---------------------- BROWSE CA-OPTIMIZER/II ERRORS ---------------------- COMMAND ===> Verify the data set name listed below. If you want to BROWSE another data set enter its name at the prompt Errors Data Set ===> 'CA0.OX32767.ERRLIST' Enter END to exit
Primary Option Menu
250 User Guide
Print CA-Optimizer/II Listing Panel
You invoke this panel from the Primary Option Menu by selecting Option 4
(Print). It prompts you for information necessary to print the listing data set. The
listing must have been saved to disk. You must enter the SYSOUT class and JOB
statement information. When you press Enter, an IEBGENER job is submitted to
allow you to print the data set.
Note: Enter END to exit without submitting the job.
---------------------- PRINT CA-OPTIMIZER/II LISTING ---------------------- COMMAND ===> Verify the information below. The data set is printed (but not deleted). Listing Data Set ===> 'CA0000.' Enter SYSOUT class ===> B JOB STATEMENT INFORMATION: ===> //JOHNB JOB ('11700000B.SARAH',423),'JOHNB Q.',CLASS=K, ===> // MSGCLASS=B,MSGLEVEL=(1,1),NOTIFY=JOHNB ===> /*ROUTE PRINT MVSE ===> Enter END to exit
Primary Option Menu
Chapter 8: TSO Support and Help Facilities 251
Delete CA-Optimizer/II Listing Data Sets Panel
You invoke this panel from the Primary Option Menu by selecting Option 5
(Delete). It allows you to delete one or two data set listing files. The data sets are
deleted after you press Enter. The listing data set is optional.
---------------- DELETE CA-OPTIMIZER/II LISTING DATA SETS ----------------- COMMAND ===> Verify the two data set names listed below. If you do not want to delete these data sets: Enter the END command, or press Enter to delete them both. Errors Data Set ===> CA000. Listing Data Set ===> Enter END to exit
Primary Option Menu
252 User Guide
Execute Optimized Program Panel
You invoke this panel from the Primary Option Menu by selecting Option 6
(Execute). It allows you to test (execute) a program that you optimized earlier.
The system prompts you for the COBOL or LE runtime library, the
CA Optimizer/II non-reentrant library, and the CA Optimizer/II reentrant library.
These libraries are used by the LOADER to resolve external references only.
------------------------ EXECUTE OPTIMIZED PROGRAM ------------------------ COMMAND ===> COBOL Runtime Library: ===> CA-Optimizer/II Non-Reentrant Library: ===> 'CAI.OPTU.DEVL.OPTII' CA-Optimizer/II Reentrant Library: ===> LE/370 Link Library: (If applicable) ===> Enter the ALLOCATE commands below for the files and data sets that your COBOL programs require. ===> Session Manager Installed ===> (YES or NO) Enter END to execute your program. Enter CANCEL to exit without executing
Notes:
If any modules are to be dynamically loaded, they must be present in the link
list, link pack area, STEPLIB, or ISPLLIB.
Enter END or press PF3/15 to execute the program. Use CANCEL to exit.
Primary Option Menu
Chapter 8: TSO Support and Help Facilities 253
Invoke Management Reporting System Panel
You invoke this panel from the Primary Option Menu by selecting Option 7
(MRS). It prompts you for information needed to invoke the Management
Reporting System (MRS). Information requested includes the name of the
CA Optimizer/II load library (optional), the load library to be analyzed
(required), the SYSOUT class or listing data set, and JOB statement information.
When you press Enter, the job is submitted for background processing.
------------------ INVOKE MANAGEMENT REPORTING SYSTEM --------------------- COMMAND ===> CA-Optimizer/II Load Library: ===> Volume Serial ===> (if not cataloged) Load Library for Analysis: ===> Volume Serial ===> (if not cataloged) Enter SYSOUT class (if you desire the listing to be printed): ===> Enter DSNAME (if you desire the output listing to be saved on disk): ===> JOB STATEMENT INFORMATION: ===> //CA000000 JOB (ACCOUNT),'NAME' ===> //* ===> //* ===> //* Enter END to exit
Product HELP Facility
You can invoke CA Optimizer/II HELP in two ways:
■ Select Option 8 (Product Help) from the Primary Option Menu and receive
HELP with CA Optimizer/II components, options, reports, and option
processing.
■ Press PF1 or PF13 for HELP with the currently displayed product panel.
Using HELP
The HELP utility provides immediate online assistance, presenting detailed
information about the product facilities. You can call HELP from any panel by
pressing PF1 or PF13, or by typing HELP and pressing Enter.
Primary Option Menu
254 User Guide
HELP is designed so that each CA Optimizer/II panel leads to a specific branch of
HELP. The top of each branch is a main menu of HELP choices. The choices on the
menu branch downward and outward to other HELP panels. A sample menu
panel is shown next.
Sample HELP Menu Panel
HELP A --------------------------------------------C----------- CA OPTIMIZER/II
===> B D CAOHHLPP
Enter the name of the option for which you require help, or the number of the topic you wish to view.
E
.-----------------------------------.-------------------------------.
| Specifying Options | Controlling Reports |
¦=================================== ¦===============================¦
| 1- Optimizer | 6- Optimizer |
| 2- Detector | 7- Detector |
| 3- Extended Detector Support | 8- Extended Detector Support | | 4- Analyzer and Reporter | 9- Analyzer and Reporter |
| 5- Extended Optimization Support | |
¦=================================== '===============================¦ | Other Topics |
| 10- Compile Time Option Coding 13- Utilities |
| 11- Option Processing Sequence 14- r7 Enhancements | | 12- Execution Time Option Coding 15- Unsupported Features |
'-------------------------------------------------------------------'
A
Identifies the panel as a HELP panel.
B
Points to the CA Optimizer/II HELP command line. Enter the options or menu
choice number here.
C
Specifies the product name.
D
Indicates the KEY NAME of the HELP database. The suffix is the panel ID
number of the panel you wanted help with.
E
Instructs you on selecting options from this menu.
To choose an item from a main menu like the one shown, type the number of
your choice in the command area and press Enter. Once you are in HELP, you can
move around within the HELP database by pressing PF (program function) keys
or entering HELP commands.
Primary Option Menu
Chapter 8: TSO Support and Help Facilities 255
Program Function Keys
The following is a list of program function (PF) keys and their definitions. If your
terminal does not have PF keys, enter the HELP commands described in the
command area.
PF Key Function Description
PF1/13 HELP Calls HELP from any CA Optimizer/II panel; calls HELP
for using HELP from within the utility.
PF3/15 END Returns to the previous HELP panel.
HELP Commands
Use the following HELP commands in place of PF keys:
Command Description
HELP Calls HELP from any CA Optimizer/II panel; calls HELP for using
HELP from within the utility.
END Returns to the previous HELP panel.
Use these commands exactly as you see them here. HELP must be entered in all
capital letters.
Note: By repeatedly pressing Enter, you can browse sequentially through the
HELP panels that branch from a specific CA Optimizer/II panel.
Primary Option Menu
256 User Guide
Getting Help with HELP
If at any time you need help with HELP, press PF1 or P13. If your terminal does
not have PF keys, enter HELP in the command area.
HELP ---------------------------------------------------- CA OPTIMIZER/II ===> CAOHHELP _ PF Key Usage In HELP Use PF keys to control your movement within HELP. If your terminal does not have PF keys, enter commands in the command area. Use PF keys to control your movement within HELP. If your terminal does not have PF keys, enter commands in the command area. .------------------------------------------------------------------------. | To: | Press: | Or Enter: | .------------------------------------------------------------------------. | end HELP and return to work in progress | PF3 or PF15 | END | | (returns through previous menus) | | | | | | | | find HELP menus | | | | * Main HELP menu | PF4 or PF16 | RETURN | | * previous HELP menu | PF7 or PF19 | UP | | | | | | move to the next topic | PF8 or PF20 | DOWN | | | | | | scroll through a series of panels | | | | * Previous Panel (Backward) | PF10 or PF22 | LEFT | | * Next Panel (Forward) | PF11 or PF23 | RIGHT | '------------------------------------------------------------------------'
This panel serves as a reminder of the steps you should take to move around
within HELP or to return to the CA Optimizer/II panel from which you called
HELP.
Exiting HELP
To exit HELP, press PF3 or PF15 repeatedly until you return to the Primary Option
Menu. Remember, however, that the TSO/ISPF environment permits you to split
your screen and toggle back and forth between functions.
COBOL Language HELP
CA Optimizer/II provides TSO users with a COBOL Language HELP facility
provided under TSO/ISPF. This facility permits you, while using TSO/ISPF EDIT,
to temporarily split your screen, displaying your source program on one portion
of the screen and the COBOL Language HELP on the other. This HELP is designed
to assist you in finding quick answers to your COBOL language questions.
Primary Option Menu
Chapter 8: TSO Support and Help Facilities 257
Significant improvements have been made to the COBOL facility. Two new major
topics have been created as follows:
■ COBOL Options gives you HELP for COBOL compile-time options (not
controlled by CA Optimizer/II) and runtime options.
■ Migration Guidelines includes information related to easing the pain of
migration from OS/VS COBOL. Some of the topics included are Significant
New Features and Available Publications.
Using COBOL Language HELP
To invoke COBOL language help, enter Option 9 (Language Help) from the
Primary Option Menu. The COBOL Language HELP panel displays.
COBOL LANGUAGE HELP -----A --------------------------------C CA-OPTIMIZER/II ===> D CAOCHLPL B Enter a Reserved Word or the number of the topic you wish to view. 1 - RESERVED WORD Locator 14 - VSAM I-O Example 2 - COBOL Language Character Set 15 - QSAM I-O Example 3 - COBOL Program Structure 16 - Sorting 4 - From OS/VS COBOL To COBOL II 17 - Tables 5 - User-Defined Words 18 - Declaratives 6 - Figurative Constants 19 - Subprogram Linkage 7 - Special Registers 20 - Compiler Options 8 - Separators 21 - Migration Guidelines 9 - Class Tests 22 - CMPR2 10 - Relation Conditions 23 - COBOL II Release 3 Changes 11 - Sign Conditions 24 - What's New in COBOL/370? 12 - Complex Conditions 25 - What's New in IBM COBOL? 13 - VSAM & QSAM Status Keys X - EXIT
The field descriptions are described next:
A
Identifies this panel as a COBOL language HELP panel.
B
Indicates the TSO command area. Enter reserved words or menu choice
numbers here.
C
Identifies the product name.
D
Indicates the HELP Panel ID.
Primary Option Menu
258 User Guide
From this main panel, you can obtain COBOL language HELP in three ways:
■ Enter the number of the topic you want to view.
■ Enter the name of the COBOL reserved word you want assistance with.
■ Press PF1 to get HELP for COBOL language Help.
Using COBOL Language HELP
COBOL language HELP provides information about reserved word formats and
descriptions, and usage examples. This is available by typing in the COBOL
reserved word on the command line. The COBOL Language HELP panel displays
the format for the reserved word. From this panel, you can view the reserved
word description and/or examples.
However, COBOL Language HELP has been designed to provide you with
maximum efficiency. Therefore, if you want HELP with only one portion of a
COBOL reserved word, enter the reserved word followed by one of the following
suffixes. Then only that portion of HELP is displayed.
reserved word.1
Provides you with the FORMAT of the specified reserved word
reserved word.2
Provides you with a DESCRIPTION of the specified reserved word
reserved word.3
Provides you with EXAMPLES of the specified reserved word
If you enter an incorrect or incomplete reserved word, an informational message
is displayed.
Topic HELP for COBOL
You can display a topic by entering the number of the topic you want to view.
Note: Topic 1, Reserved Word Locator, is designed to assist you when you are
uncertain of the reserved word you are seeking. Once you have found and
selected the reserved word, you can go directly to its Format panel.
HELP for COBOL Language HELP
Wherever you are in COBOL Language HELP, additional HELP is only one PF key
away. Pressing PF1 from the main COBOL Language HELP panel provides
information on how to move within COBOL HELP and default PF key assignments.
CA Optimizer/II utilizes a new, simplified syntax notation for online format
presentations which is always available by pressing PF1 when viewing reserved
word format panels.
Primary Option Menu
Chapter 8: TSO Support and Help Facilities 259
COBOL Reserved Word Syntax
A new and simplified syntax is used in COBOL Language HELP. It has five rules
which are presented on the following sample HELP Format Notation panel.
COBOL LANGUAGE HELP --------------------------------------- CA-OPTIMIZER/II ===> CAOC0010 HELP Format Notation / \ / \ COMMAND | literal-1 | | option-1 | ... TO identifier-2. | identifier-1 | | option-2 | \ / \ / .-----------------------.----------------------------------------------. | UPPERCASE words | identify COBOL reserved words. | | | | | lowercase words | identify values that must be supplied. | | | | | Highlighting (Bolding)| identifies REQUIRED words. | | | | | Brackets | enclose choices to be made by the user. If a | | | choice MUST be made, all choices are bolded. | | | | | ... | indicates that the immediately preceding | | | word or item in brackets may be repeated. | '-----------------------'----------------------------------------------'
Exiting COBOL Language HELP
To exit HELP, press PF3 or PF15 repeatedly until you return to the Primary Option
Menu. Remember, however, that the TSO/ISPF environment permits you to split
your screen and toggle back and forth between functions.
Primary Option Menu
260 User Guide
Repository Viewer
To launch the Repository Viewer, enter Option V (Repository Viewer) from the
Primary Option Menu. The Report Index panel displays.
CA Optimizer/II r8.5 ------------- Report Index ---------------- Line 1 of 68
Command ===> Scroll ===> CSR
CAPI100I Repository contains 68 report(s) -------------------------------------
Repository Dsname: CAI.PRTLIB
1754 Data Records 680 Used 38.7% Full
Filter: Jobname * Step/Tsk * Program * Offset *
Comp * UserID * Lock * System *
------------------------------------------------------------------------- Lvl 1
Cmd JobName StepName Program Offset Comp Date Time UserId
. DAVSC01A RUN ASM0C7 000005E S=0C7 2004/03/15 14.51 DAVSC01 . DAVSC01A RUN CAODPREC 000098A U=1098 2004/03/15 12.02 DAVSC01
. DAVSC01A RUN ASM0C7 000005E S=0C7 2004/03/15 10.56 DAVSC01
. OPT31 GO n/a n/a RC=0000 2004/03/12 16.36 MIKED . RYARO02S RUN PLITEST1 0001002 S=0C7 2004/03/05 15.07 RYARO02
. RYARO02A RUN CAO2DEMO 00041B6 S=0C7 2004/03/05 15.07 RYARO02
. RYARO02S RUN PLITEST1 0001002 S=0C7 2004/03/05 14.50 RYARO02 . RYARO02A RUN CAO2DEMO 00041B6 S=0C7 2004/03/05 14.47 RYARO02
. RYARO02S RUN PLITEST1 0001002 S=0C7 2004/03/04 16.29 RYARO02
. RYARO02S RUN PLITEST1 0001002 S=0C7 2004/03/04 16.18 RYARO02 . RYARO02P RUN PLITEST1 0001E22 S=0C7 2004/03/04 14.36 RYARO02
. RYARO02P RUN PLITEST1 0001C46 S=0C7 2004/03/04 14.35 RYARO02
. DAVSC01A RUN COMP2 00001E8 S=0C7 2004/02/25 17.46 DAVSC01 . DAVSC01A RUN COMP1 00003FE S=0C7 2004/02/24 18.06 DAVSC01
. DAVSC01A RUN COMP1 00003FE S=0C7 2004/02/24 17.46 DAVSC01
. DAVSC01A RUN COMP1 00003FE S=0C7 2004/02/24 17.37 DAVSC01 . DAVSC01A RUN COMP2 00001E8 S=0C7 2004/02/24 11.51 DAVSC01
The CAIPRINT Repository Viewer can be used to view Detector and Extended
Detector reports that have been written to your central VSAM repository. Once
the viewer has been entered, use the SYM primary command to display or
update symbolic information from your PROTSYM or CSL files.
The Repository Viewer and its primary commands are described in detail in the
chapter "Using the CAIPRINT Repository Viewer".
Chapter 9: Utilities 261
Chapter 9: Utilities
The following reporting facilities are provided to measure the use and
effectiveness of the product:
■ The Management Reporting System (MRS) provides a means for you to audit
your load module libraries.
■ The Statistics Report allows you to view the overall effectiveness of
optimization in your data center.
■ The Initialization Summary generates a report describing which
CA Optimizer/II modules are currently loaded in the CSA area of LPA.
■ The Options Summary reports on the options set as installation defaults.
■ The CSL Summary reports on the contents of a specified CSL or on all the
CSLs defined as installation defaults.
■ The CAIPRINT Repository Utility provides a facility to list and maintain the
contents of the central VSAM repository.
The following symbolic file (PROTSYM) utilities are also provided:
■ IN25UTIL-PROTSYM file initialization, maintenance and reporting
■ IN25SYMC-Listing postprocessor for OS/VS COBOL
■ IN25COB2-Listing postprocessor for COBOL II and above
■ IN25SYMA-Listing postprocessor for Assembler
■ IN25SYMP-Listing postprocessor for PL/I
■ IN25SYMD-Multi-listing postprocessor
For a description of these utilities, see the Symbolic Guide.
Management Reporting System (MRS)
262 User Guide
Management Reporting System (MRS)
The MRS system scans any load module library and reports on the COBOL
programs contained within each member. MRS produces two reports; a Detailed
Report and a Summary Report, indicating the size and characteristics of each
load module in a selected library.
MRS reads the members of a specified library, and identifies and lists COBOL
CSECTs and load modules that contain them. It also provides compilation and
size information for these CSECTS, and indicates whether they have been
processed by an CA Optimizer/II product. The program also checks for and flags
certain CA Optimizer/II options that you selected at compile/optimize time.
JCL
A procedure called CAIMRSII is provided to invoke MRS. To obtain detail and
summary reports for library PROD1.LOADLIB, specify:
// EXEC CAIMRSII,LIBRARY='PROD1.LOADLIB'
The MRS program, CAOUMRS, uses the following DD statements:
DD Statement Description
STEPLIB Defines the library containing CA Optimizer/II MRS.
SYSPRINT Defines the MRS report file.
SYSLIB Defines the library to be analyzed.
Note: The ddname for the library to be analyzed is an installation option with a
default of SYSLIB. If it has been modified at your installation, be sure that
procedure CAIMRSII has been modified as well.
Reports
MRS provides two reports for each scanned load library. The first report is a
detailed listing of all COBOL CSECTs in the library and the second is a summary
of all of the library's statistics.
Management Reporting System (MRS)
Chapter 9: Utilities 263
Load Library Analysis Detailed Report
The Load Library Analysis Detailed Report lists all load modules in the library
which contain COBOL CSECTs.
CA LOAD LIBRARY ANALYSIS: DETAILED REPORT PAGE 1
CA-OPTIMIZER/II r8.5 0404ARX00 DAXZA01.LOAD (SPDO01) 04/06/2004 15.39.12
A LEGEND FOR OPTIMIZER OPTIONS: D=DTECT C=XCOUNT X=XTIME P=PFLOW S=SUBRNGCK R=PARMCHK B=DBGSLEEP F=FDCHECK W=WSINIT I=CICS E=EOS L=WSCLEAR H=PUSHPOP O=CASORT
B C D E F G H I J K
MODULE MODULE-SIZE CSECT CSECT-SIZE PROC-SIZE DATA-SIZE COMPILER-ID REL DATE TIME CA-OPT REL DCXPSRBFWIELHO
CAO2PCHK 4,152 CAO2PCHK 2,168 414 1,754 C2 5668-958 3.0 10/12/1990 14.18.54 OPT/II 1.3 DCX.SR.FW..... IC101A 12,648 IC101A 9,440 3,864 5,576 C390 5648-A25 1.0 11/21/1997 15.56.40 OPT/II 2.1 DCXPSR.FW.....
IC102A 5,752 IC102A 2,544 298 2,246 C390 5648-A25 1.0 11/21/1997 15.56.50 OPT/II 2.1 DCXPSR.FW.....
IC103A 15,008 IC103A 11,800 5,244 6,556 C390 5648-A25 1.0 11/21/1997 15.56.57 OPT/II 2.1 DCXPSR.FW..... IC104A 5,976 IC104A 2,768 384 2,384 C390 5648-A25 1.0 11/21/1997 15.57.07 OPT/II 2.1 DCXPSR.FW.....
IC105A 5,168 IC105A 1,960 576 1,384 C390 5648-A25 1.0 11/21/1997 15.57.15 OPT/II 2.1 DCXPSR.FW.....
IC106A 15,224 IC106A 12,016 5,468 6,548 C390 5648-A25 1.0 11/21/1997 15.57.23 OPT/II 2.1 DCXPSR.FW..... IC107A 6,496 IC107A 3,288 916 2,372 C390 5648-A25 1.0 11/21/1997 15.57.33 OPT/II 2.1 DCXPSR.FW.....
IC108A 14,016 IC108A 10,808 4,378 6,430 C390 5648-A25 1.0 11/21/1997 15.57.41 OPT/II 2.1 DCXPSR.FW.....
IC109A 5,832 IC109A 2,624 360 2,264 C390 5648-A25 1.0 11/21/1997 15.57.55 OPT/II 2.1 DCXPSR.FW.....
IC110A 5,896 IC110A 2,688 400 2,288 C390 5648-A25 1.0 11/21/1997 15.58.05 OPT/II 2.1 DCXPSR.FW.....
IC111A 4,936 IC111A 1,728 320 1,408 C390 5648-A25 1.0 11/21/1997 15.58.13 OPT/II 2.1 DCXPSR.FW.....
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
IC112A 16,312 IC112A 13,104 5,824 7,280 C390 5648-A25 1.0 11/21/1997 15.58.21 OPT/II 2.1 DCXPSR.FW.....
IX103A 19,832 IX103A 16,624 7,442 9,182 C390 5648-A25 1.0 11/21/1997 16.02.22 OPT/II 2.1 DCXPSR.FW.....
IX104A 19,336 IX104A 16,128 6,542 9,586 C390 5648-A25 1.0 11/21/1997 16.02.33 OPT/II 2.1 DCXPSR.FW.....
L TOTALS 5,153,836 4,525,960 3,925,768 1,268,392
Management Reporting System (MRS)
264 User Guide
A
LEGEND FOR OPTIMIZER OPTIONS defines the meaning of each letter that
can appear under column K. These are all the options for execution-time
facilities that can be specified at compile/optimize time.
B
MODULE lists the names of the load modules which contain at least one
COBOL CSECT.
C
MODULE-SIZE specifies the total number of bytes in each load module listed.
Note: For overlay modules, the size specifies the maximum amount of
memory used by the module and not the sum of the CSECTs contained within
it.
D
CSECT lists all the COBOL CSECT names in each load module. Multiple
COBOL CSECTs within a given load module print on a separate line.
E
CSECT-SIZE specifies the total number of bytes in each COBOL CSECT.
F
PROC-SIZE specifies the number of bytes for the program's Procedure code.
See Usage Considerations for more information.
G
DATA-SIZE specifies the number of bytes of storage generated by the
compiler for the COBOL program's Data Division. For more information about
Data Division, see Usage Considerations.
H
COMPILER-ID identifies the type of COBOL compiler used and the compiler's
program product number and version number. MRS copies the program
product number and the version number directly from the COBOL module.
I
REL, DATE, and TIME specifies the release of the COBOL compiler used and
the date and time of the program's compilation (copied directly from the
COBOL module).
J
CA-OPT version release verifies whether the COBOL CSECT has been
processed with an CA Optimizer product. The release number indicates the
release with which the CSECT was optimized.
■ YES indicates that the CSECT was optimized with an earlier release that
did not retain release numbers in the load module.
Management Reporting System (MRS)
Chapter 9: Utilities 265
■ NONE indicates that the CSECT has not been processed with
CA Optimizer.
In some instances, the compiler program product number, version number,
and the date and time of compilation may not be available. In this case, an
UNAVAILABLE message prints in their place.
K
This column shows whether certain CA Optimizer/II execution-time options
were specified at compile/optimize time. If the program was optimized using
CA Optimizer OS, then only the letters for DTECT, PFLOW, or XCOUNT may
appear even though the options FDCHECK, SUBRNGCK, and/or WSINIT may
also have been specified at compile-time.
L
This line specifies the following totals in kilobytes (1024):
Load modules listed on the report
– COBOL CSECTs
– Number of data bytes
– Number of procedure bytes from the COBOL CSECTs
Load Library Analysis Summary Report
The Load Library Analysis Summary Report follows the Load Library Analysis
Detailed Report and provides summarized statistical information about the
library being scanned.
CA LOAD LIBRARY ANALYSIS: SUMMARY REPORT PAGE 9
CA-OPTIMIZER/II r8.5 0404ARX00 DAXZA01.LOAD (SPDO01) 04/06/2004 15.39.12
D E
COMPILER-ID REL MODULES CSECTS OPTOS OPTII DTE XCO XTI PFL SUB PAR DBG FDC WSI CIC EOS WSC PUS CAS
C
C2 5668-958 3.0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 CMVS 5668-958 2.0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0
C390 5648-A25 1.0 377 378 0 377 377 377 377 377 377 377 0 377 377 0 0 0 0 0
VSR1 5740-CB1 2.4 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 FTOTALS: COBOL 380 381 1 379 380 379 379 378 379 379 0 379 379 0 0 0 0 0
A IGZ 379 379
CEE 379 3787 CAO 378 378
B ALL 380 4925
*--------------------------------------------------------------------------------------------------------------------------------* * For programs which have been compiled using CA-OPTIMIZER, only DTECT, XCOUNT, and CICS are reflected in these MRS reports. *
* More information regarding the options used during optimization is only available for programs compiled using CA-OPTIMIZER/II. *
*--------------------------------------------------------------------------------------------------------------------------------*
Management Reporting System (MRS)
266 User Guide
For programs which have been compiled using CA Optimizer, only DTECT,
XCOUNT, and CICS are reflected in these MRS reports. More information
regarding the options used during optimization is only available for programs
compiled using CA Optimizer/II.
A
IGZ, CEE, and CAO display the number of modules containing COBOL
CSECTs and the total number of COBOL CSECTs.
B
ALL displays the total number of modules and CSECTs in the library.
The next part of the Summary Report provides a summary of CA Optimizer
options in effect, by compiler type and version.
C
COMPILER-ID lists the compiler type and version used.
D
OPTOS displays the number of programs compiled under the listed compiler
version that were compiled and optimized with CA Optimizer.
E
OPTII displays the number of programs compiled under the listed compiler
version, which were compiled and optimized with CA Optimizer/II.
F
TOTALS displays the number of programs from columns (D and E) that were
optimized using the various options listed.
Usage Considerations
MRS analyzes any standard IBM load module library but does not support
concatenated load library data sets. Specify each load library to be analyzed in a
separate MRS execution run.
MRS recognizes COBOL CSECTs that are compiled using the following IBM
COBOL compilers: V2, V3, V4, OS/VS COBOL, COBOL II, COBOL 370, COBOL for
MVS and VM, COBOL for OS/390 and VM, Enterprise COBOL for z/OS and
OS/390, and Enterprise COBOL for z/OS.
Statistics Report
Chapter 9: Utilities 267
OS/VS COBOL Reporting
For OS/VS COBOL, MRS makes a distinction between data bytes and procedure
bytes in the Detail Report. Data bytes include the storage size in the CSECT
which is directly generated by the COBOL CSECTs Data Division plus the INIT1
code. (Data bytes are figured from the beginning of the program to the TGT.)
Procedure bytes include the storage size of the remainder of the CSECT. The
sections of the CSECT which make up the procedure bytes are:
■ TGT
■ PGT
■ Report Writer Routines
■ COBOL Procedure Division
■ Q Routines
■ INIT2
■ INIT3
COBOL II and Above
When reporting for COBOL II and above, MRS distinguishes between data and
procedure bytes.The data bytes include only the areas in the program generated
at compile-time, and do not include data areas acquired dynamically at
execution-time for a program compiled with the RENT option. The sections of the
CSECT, which make up the procedure bytes are:
■ Signature Code
■ INITD Code (for RENT programs)
■ Q Routines
■ Procedure Division
Statistics Report
The Statistics Report lets you monitor the results obtained by the
CA Optimizer/II Optimizer component. Each time a program is optimized, the
one-track statistics data set is updated. An independent procedure, CAISTRII,
retrieves this data upon request and prints a one-page report.
Statistics Report
268 User Guide
JCL
A procedure called CAISTRII is provided to invoke the Statistics Reporting
program. To obtain a Statistics Report for your data center, specify:
// EXEC CAISTRII
The statistics reporting program, CAOUSRPT, uses the following DD statements:
DD Statement Description
STEPLIB Defines the library containing CA Optimizer/II Statistics
Reporting program.
SYSPRINT Defines the report file.
CAISTATS Defines the permanent statistics file.
Note: The ddname for the statistic file is an installation option which can be
modified. If it has been modified at your installation, be sure that procedure
CAISTRII has been modified as well.
Statistics Report
Chapter 9: Utilities 269
Report
This sample shows the information and the format of the Statistics Report:
CA CA-OPTIMIZER/II STATISTICS & USAGE SUMMARY PAGE 1 CA-OPTIMIZER/II r8.5 0403AOX00 19 MAR,2004 11.18.02
LICENSED TO : CA Islandia, NY
A INSTALLED : 03/19/04
OPTIMIZATION RESULTS
CURRENT CURRENT SINCE MONTH (MAR) YEAR (2004) INSTALLATION
B AVERAGE PROGRAM SIZE
BEFORE OPTIMIZATION (BYTES) 18,940 18,940 18,940
AFTER OPTIMIZATION (BYTES) 21,041 21,041 21,041
PERCENTAGE SAVINGS 11.0- 11.0- 11.0-
C AVERAGE PROCEDURE SIZE
BEFORE OPTIMIZATION (BYTES) 14,036 14,036 14,036
AFTER OPTIMIZATION (BYTES) 13,640 13,640 13,640 PERCENTAGE SAVINGS 2.8 2.8 2.8
D AVERAGE INSTRUCTION COUNT
BEFORE OPTIMIZATION 3,087 3,087 3,087
AFTER OPTIMIZATION 3,150 3,150 3,150 PERCENTAGE SAVINGS 2.0- 2.0- 2.0-
CA-OPTIMIZER/II USAGE SUMMARY
NUMBER OF PROGRAMS OPTIMIZED
CURRENT CURRENT SINCE OPTIMIZATION TYPE MONTH (MAR) YEAR (2004) INSTALLATION
E DETECTOR FEATURES ONLY 1 1 1
ANALYZER FEATURES ONLY 1 1 1
DETECTOR AND ANALYZER FEATURES 3 3 3
NO DETECTOR AND ANALYZER FEATURES 1 1 1
======= ======= =======
F TOTAL PROGRAMS OPTIMIZED 6 6 6
Initialization Summary Report
270 User Guide
A
Date the statistics data set was initialized.
B
Average number of bytes in the program (includes Data Division) before and
after optimization and the percentage difference. The numbers are the
before and after compile-time sizes. They do not reflect the sizes of data
areas acquired dynamically at execution-time for programs with the RENT
option. All figures are reported for month-to-date, year-to-date, and since
installation.
C
Average number of bytes in only the Procedure Division before and after
optimization, and the difference in the percentages.
D
Average number of machine instructions in the program before and after
optimization and the difference in the percentages.
E
Breaks down the number of programs optimized by the combination of
Detector and/or Analyzer features specified during optimization. It shows
the relative usage of each of the components.
F
Total number of programs using CA Optimizer/II.
Note: These statistics are derived from all executions of the Optimizer
component without regard to the options specified at compile/optimize time.
Because the CA Optimizer/II optimization algorithms will sometimes trade space
for speed, smaller than expected percentage savings do not necessarily reflect
the actual reduced CPU time when the applications are executed.
Initialization Summary Report
The Initialization Summary Report allows you to verify that the modules loaded
into the CSA at initialization time are the correct versions.
Initialization Summary Report
Chapter 9: Utilities 271
JCL
A procedure called CAILPAQ is provided to invoke the Initialization Summary
program. To obtain an initialization summary for your data center, specify:
// EXEC CAILPAQ
The initialization summary program, CAOULPAQ, uses the following DD
statements:
DD
Statement
Description
STEPLIB Defines the library containing CA Optimizer/II Initialization
Reporting program.
SYSPRINT Defines the report file.
Initialization Summary Report
272 User Guide
Report
This sample shows the information and the format of the Initialization Summary
Report.
INITIALIZATION SUMMARY REPORT FOR SYSTEM XAD1 |-----------------------------------------------------| | MODULE | ADDRESS | REL | DATE | TIME | SIZE | |-A------ ----B ---- --C-- ---D------ --E--- ---F---| | CAOEPROL | 80C814F0 | 8.5 | 20091109 | 16.49 |000238| | CAOESNAP | 867FA418 | 8.5 | 20091109 | 16.50 |003C48| | CAOEWRTR | 00C88158 | 8.5 | 20091109 | 16.51 |000268| | CAOECEEI | 869F85E8 | 8.5 | 20091109 | 13.02 |0006A0| | CAOESQAT | 82A3D2F0 | | | |000038| | CAOSBID | 00CA03D8 | | | |000018| | CAOCEMCK | 00C96040 | 8.5 | 20091109 | 16.32 |000218| |-----------------------------------------------------| | G 7 MODULES WERE FOUND. | |-----------------------------------------------------| | H CONTENTS OF CAOESQAT | |-----------------------------------------------------| | +0|00000000|00000000|80C84158|000003F8| | | +10|83918000|867FA418|80C814F0|00C88158| | | +20|FFFFFFFF|00000000|00000000|00000000| | |-----------------------------------------------------| | CONTENTS OF CAOETABL | |-----------------------------------------------------| | +000|C3C1D6C5|E3C1C2D3|F0F361F2|F761F0F8| | | +010|F1F14BF2|F6404040|40404040|40404040| | | +020|40404040|40404040|4040C3C1|D6C5E2E3| | | +030|D6D7C3C1|C9D6D7E3|E2402A03|0007FDD9| | . . . . . . | +3E0|F8F0F0F8|F0F2C1D9|E7F0F0F8|4BF00000| | | +3F0|00000000|00000000|47F0F0A4|9FE2C1C6| | |-----------------------------------------------------|
Options Summary Report
Chapter 9: Utilities 273
A
Module name.
B
Address where module resides.
C
Release of module.
D
Date module was assembled.
E
Time module was assembled.
F
Size of module.
G
Number of CA Optimizer/II modules found.
H
Contents of module CAOESQAT (for support purposes).
Options Summary Report
The Options Summary produces a report detailing your installation's default
options.
JCL
A procedure called CAIOPTNS is provided to invoke the Options Summary
program. To obtain an options summary for your data center, specify:
//EXEC CAIOPTNS
The options summary program, CAOUOPTS, uses the following DD statements:
DD
Statement
Description
STEPLIB Defines the library containing CA Optimizer/II Options
Summary program and options modules.
SYSPRINT Defines the report file.
Options Summary Report
274 User Guide
Report
A sample of the Options Summary is as follows:
* * EXECUTION TIME DEFAULTS:
*
* CEEDUMP = OFF * DUPLIM = 5
* EXPDAYS = 0
. . . .
* SYSOUTD =
* UNIT = SYSDA *
* CAOUXMOD = CAO
* CAOUXMOD = CEE * CAOUXMOD = IGZ
* CAOUXMOD = ILBO
* CAOUXMOD = IN25 *
* CAOUSYM = CAI.PROTSYM
*
*************************************************************************
SUPPORT IS ACTIVE
SQA ANCHOR LOADED AT 82A3D2F0
REPORTING OPTIONS:
OPTION STATUS FIXED
ACB = OFF
ACTONLY = OFF
AMB = OFF . .
. .
WORKSTOR = ON WTOXCL = ON
LOGGING OPTIONS:
OPTION STATUS FIXED
LOGTSO = ON
LOGNET = OFF
LOGROS = ON LOGUNI = OFF
LOGWTO = ON
LOGWTL = OFF SMF = OFF
CONTROL OPTIONS:
MCHAR VALUE = ?
PCHAR VALUE = *
RCHAR VALUE = :
SYSOUT VALUE = *
MAXBLL = 512
DEFAULT DATA SET NAMES:
NTMGCCTL CAI.NTMMGCTL
NTMPI CAI.NTMPI
NTMSC CAI.NTMSC CAIOPTS FILE SUFFIX CAIOPTS
CSL Summary Report
Chapter 9: Utilities 275
CSL Summary Report
The CSL Summary produces a report of all members in the Condensed Source
Listing library.
Note: CA Optimizer/II no longer writes symbolic information using the CSL
format. This utility provides summary information for CSL libraries that were
populated by earlier versions of the product. These CSL libraries may still be
used as input to Analyzer, Detector, and Extended Detector. However, as
programs are recompiled, their updated symbolic information can only be
written using the PROTSYM format.
JCL
A procedure called CAICSLD is provided to invoke the Condensed Source Listing
Summary program. To obtain a CSL Summary for your data center, specify:
// EXEC CAOUCSLD
The CSL summary program, CAOUCSLD, uses the following DD statements:
DD
Statement
Description
STEPLIB Defines the library containing CA Optimizer/II CSL Summary
program.
SYSPRINT Defines the report file.
CAISYM (Optional) Defines the Condensed Source Listing library to be
reported on.
Note: The ddname for the CSL is an installation option that can be modified. If it
has been modified at your installation, be sure to also change the ddname in
procedure CAOUCSLD. If omitted, CAOUCSLD reports on all of the CSLs defined
as installation defaults.
CSL Summary Report
276 User Guide
Report
This sample report shows the information and the format of the Condensed
Source Listing Summary.
CA PAGE 1
CA-OPTIMIZER/II r8.5 0404ARX00 06 APR,2004 12:16:08
CA-OPTIMIZER/II CONDENSED SOURCE LIBRARY
DATA SET NAME = XYZAB01.TEST.OX30.CSL
A B C D E F
PROGRAM ID DATE COMPILED TIME COMPILED GENLEVEL RELEASE COMPILER
---------- ------------- ------------- --------- ------- ---------
A 31 May,2001 10:32:26 0106ARX00 3.0 COBOL II
B 16 Mar,2001 15:46:28 0106ARX00 3.0 COB OS390
C 16 Mar,2001 15:46:32 0106ARX00 3.0 COB OS390 CAO2DEMO 19 Jun,2001 10:41:52 0106AOX00 3.0 COBOL II
COBBDEMO 24 May,2001 11:16:00 0106ARX00 3.0 COBOL II
DB2ADD 29 Jun,2001 13:36:19 0106ARX00 3.0 COB OS390 DB2DEMO 29 Jun,2001 13:35:24 0106ARX00 3.0 COB OS390
IC101A 20 Jul,2001 10:54:31 0104OX220 2.2 COBOL II
IC102A 20 Jul,2001 10:54:49 0104OX220 2.2 COB OS390 NOABEND 19 Jun,2001 10:41:28 0106AOX00 3.0 COBOL MVS
PARMTEST 29 Aug,1996 10:20:45 0106ARX00 3.0 COBOL II
PGM1 11 May,2001 10:20:12 0106ARX00 3.0 COB OS390 PGM2 24 May,2001 11:16:12 0106ARX00 3.0 COBOL II
PGM3 24 May,2001 11:16:15 0106ARX00 3.0 COB OS390
PGM9 24 May,2001 11:16:15 0106ARX00 3.0 COB OS390 REFMOD 20 Mar,2001 12:44:41 0106ARX00 3.0 COB OS390
SQ133A 09 Jul,2001 16:28:39 0104OX220 2.2 COBOL II
STOPRUN 30 Mar,2001 10:05:24 0106ARX00 3.0 COBOL II SUB1 07 May,2001 12:37:59 0106ARX00 3.0 COB OS390
TESTFILE 14 May,2001 10:26:13 0106ARX00 3.0 COBOL II
TWLCB2I1 16 Mar,2001 15:56:26 0106ARX00 3.0 COB OS390 VTEST 03 Nov,2000 14:07:03 0106ARX00 3.0 COBOL II
TOTAL NUMBER OF COBOL II PROGRAMS = 10
TOTAL NUMBER OF COBOL FOR MVS PROGRAMS = 1 G
TOTAL NUMBER OF COBOL FOR OS/390 PROGRAMS = 11
TOTAL NUMBER OF PROGRAMS = 22
CAIPRINT Repository Utility
Chapter 9: Utilities 277
A
Program ID.
B
Date the program was compiled.
C
Time the program was compiled.
D
The genlevel of CA Optimizer/II when the CSL was created.
E
The release of CA Optimizer/II when the CSL was created.
F
The compiler used.
G
Totals for each CSL reported on.
CAIPRINT Repository Utility
This section covers the JCL, commands, and usage considerations of the
CAIPRINT Repository Utility.
JCL
A procedure called CAIPRTU is provided to invoke the CAIPRINT Repository
Utility, CAOUPRTU. To display or maintain the contents of your repository,
specify:
// EXEC CAIPRTU
//PRTU.SYSIN DD *
(commands go here)
/*
CAOUPRTU uses the following DD statements:
DD
Statement
Description
STEPLIB Defines the library containing CA Optimizer/II.
SYSPRINT Defines the report file.
CAIPRINT Repository Utility
278 User Guide
DD
Statement
Description
SYSUT1 Defines a work file used for some requests.
Commands
The syntax of any command is:
keyword <selection criteria>
where:
ERRSUM
Lists a summary of abend reports contained within a repository (DSN). The
summary includes the program name, offset, and abend code, and a count
indicating the number of reports found with the same information. The
entries are displayed in alphabetical order, by program name. Requires that
DSN be specified.
JOBSUM
Lists a summary of abend reports contained within a repository (DSN), by
job name. The summary includes the job name, program name, offset, and
abend code, and a count indicating the number of reports found with the
same information. The entries are displayed in alphabetical order by job
name and program name. Requires that DSN be specified.
keyword
Specifies one of the command keywords listed in this section.
selection criteria
Comprised of an argument and optionally an operator and a value.
Example
LIST DATE GT 2004/04/06
In this example, the keyword LIST is used to display a summary of reports that
were created in the repository after April 6, 2004. The selection criteria is
comprised of the argument DATE, the operator GT (for Greater Than) and the
value 2004/04/06.
CAIPRINT Repository Utility
Chapter 9: Utilities 279
Command Keywords
Supported command keywords are:
COPY
Copy reports from a secondary repository (ODSN) to your primary repository
(DSN). Requires that both DSN and ODSN be specified.
DELETE
Delete selected reports from a repository (DSN). Requires that DSN be
specified.
DSN
Define the dsname for your primary CAIPRINT repository. Must be specified
prior to using any other commands.
INIT
Initialize a newly defined repository (DSN). Requires that DSN be specified.
LIST
List a summary of reports contained within a repository (DSN). Requires that
DSN be specified.
LOCK
Lock one or more reports in a repository (DSN) to prevent deletion. Requires
that DSN be specified.
ODSN
Define the dsname for a secondary CAIPRINT repository. Must be specified
prior to using the COPY command.
UNLOCK
Unlock one or more locked reports in a repository (DSN) to allow deletion.
Requires that DSN be specified.
Arguments
Valid arguments for selection criteria include:
AGE
Select reports by the number of days since they were created. This argument
requires an operator and a 1- to 3-digit value. Example:
DELETE GE GT 5
ALL
Select every report unconditionally, with no operator or value specified.
Example:
UNLOCK ALL
CAIPRINT Repository Utility
280 User Guide
CODE
Select reports by the completion code of the step that produced the report.
This argument requires an operator and a 4- to 7-character value.
Examples:
LIST CODE EQ S0C7
(or) LIST CODE EQ U1125
(or) LIST CODE EQ RC0004
(or) LIST CODE EQ CEE3250
System abend codes must begin with S followed by three hexadecimal digits.
User abend codes must begin with U followed by four decimal digits. Return
codes must begin with RC followed by four decimal digits. IBM message
codes must be 1- to 7-characters.
DATE
Select reports by the date on which they were created. This argument
requires an operator and a value in the format yyyy/mm/dd. Example:
DELETE DATE LT 2004/04/06
JOB
Select reports by the name of the job that produced the report. This
argument requires an operator and a 1- to 8-character value. Example:
UNLOCK JOB NE OPTJOB1
LOCK
Select reports by the ID of the user that owns a lock on the report. This
argument requires an operator and a 1- to 7-character value. Example:
LIST LOCK EQ OPTUSER
PGM
Select reports by the name of the abending program that caused the report.
This argument requires an operator and a 1- to 8-character value. Example:
DELETE PGM EQ CAO2DEMO
STEP
Select reports by the name of the step that produced the report. This
argument requires an operator and a 1- to 8-character value. Example:
LIST STEP NE GO
CAIPRINT Repository Utility
Chapter 9: Utilities 281
SYSTEM
Select reports by the 1- to 8-character name of the system on which the
report was created. Example:
COPY SYSTEM EQ PRODZ1
USER
Select reports by the ID of the user that submitted the job that produced the
report. This argument requires an operator and a 1- to 7-character value.
Example:
LOCK USER EQ OPTUSER
Operators
Valid operators include:
EQ
Select reports if the value of the argument is equal to the value specified.
GE
Select reports if the value of the argument is greater than or equal to the
value specified.
GT
Select reports if the value of the argument is greater than the value
specified.
LE
Select reports if the value of the argument is less than or equal to the value
specified.
LT
Select reports if the value of the argument is less than the value specified.
NE
Select reports if the value of the argument is not equal to the value specified.
RANGE
Select reports if the value of the argument is between the two values
specified.
Usage Considerations
None
Chapter 10: Dynamic Symbolic Support 283
Chapter 10: Dynamic Symbolic Support
This chapter discusses how dynamic symbolic support works and how you can
take advantage of its functionalities to enhance your diagnostic experience.
Activate Dynamic Symbolic Support
The dynamic symbolic support feature, when activated, dynamically retrieves
the compiler or assembler listing of the program being printed or viewed from a
listing data set managed by CA Endevor SCM and loads it into the designated
PROTSYM file. For this feature to work, the load module library (JOBLIB or
STEPLIB) where the load module is loaded and the listing data set containing the
module listing must be under the control of CA Endevor SCM.
To activate the dynamic symbolic support feature
1. Specify the option NDVRDSS=ON in your installation options table
CAOUDFRX using the CAIOPTS DD statement, or in the SYM Option 5 panel.
2. Designate a PROTSYM file to receive the dynamic populated symbolic using
the NDVRDSN option.
The designated PROTSYM file can be any existing PROTSYM file and is
searched ahead of all other PROTSYM files specified.
When the dynamic symbolic support feature is activated, it loads the correct
symbolic information whenever a matching symbolic version is not found.
You can reload the symbolic files associated with programs that do not contain a
time stamp in the executable, such as non-LE-enabled Assembler programs,
every time they are printed or viewed. You can activate this behavior using the
additional option NDVRASM=ON. Default is not to refresh the symbolic. This
option, when suppressed (NDVRASM=OFF), never refreshes the symbolic of a
non-LE-enabled Assembler program.
Note: The dynamic symbolic support feature cannot differentiate between
multiple listing outputs created by a single CA Endevor SCM processor for the
same element. Thus, dynamic symbolic support using listing outputs from
multiple compiles or assemblies from a single CA Endevor SCM GENERATE or
MOVE action for the same element may produce unpredictable results.
Activate Dynamic Symbolic Support
284 User Guide
Dynamic Symbolic Support Return Codes
Dynamic symbolic support provides an integrated service using API calls that
deploy various proven components including CA Endevor SCM, PROTSYM post
processors, z/OS dynamic allocation, CSVQUERY, and binder services.
For specific information about the return codes, see message CAPU309E in the
Message Reference Guide.
C1DEFLTS Consideration
Following are the considerations for single and multiple C1DEFLTS:
■ Single C1DEFLTS—In a CA Endevor SCM single C1DEFLTS environment,
dynamic symbolic support invokes CA Endevor SCM API directly, provided
the C1DEFLTS data set and CA Endevor SCM AUTHLIB and CONLIB data sets
are in the LNKLIST.
■ Multiple C1DEFLTS—In a CA Endevor SCM multiple C1DEFLTS environment,
dynamic symbolic support normally invokes CA Endevor SCM API through a
listing server dedicated to a unique C1DEFLTS. For more information, see
the Installation Guide.
Chapter 11: Using Options 285
Chapter 11: Using Options
This chapter summarizes CA Optimizer/II component option usage and
alphabetically lists all the CA Optimizer/II options.
Whenever an option has both a compile-time and an execution-time usage, the
compile-time usage is presented first. The term option refers to the control of
functions at compile-time, execution-time, report-time, and view- time.
Compile-time
This section provides information on the following:
■ Different coding options
■ Synonyms and their abbreviations
■ Overriding defaults
■ Order of precedence
■ Usage considerations
Compile-time
286 User Guide
Coding Options
Optimizer options, like COBOL II options, can be specified in three ways:
■ CBL opt1 opt2 opt3... in the source file,
nPARM='opt1,opt2,opt3,...' on your EXEC statement, or
■ as specified in your installation defaults.
You can freely combine your Optimizer options with COBOL II options on the
EXEC and CBL statements. The processing of Optimizer options takes place on
three separate levels. The order of precedence for specified options is the same
as for the COBOL II compiler:
■ CBL options
■ PARM='OPTION'
■ Default options
Any conflicting options are processed on each level individually. The levels are
then processed together for conflicts. See Order of Precedence in Establishing
Option Values later in this chapter for more information.
For example, if you specify PARM='LIST,OFFSET' on your EXEC statement,
OFFSET is turned on. However, if you also specify CBL NOOFFSET in your source,
OFFSET is turned off because the CBL statement takes precedence over the
PARM statement.
Note: Any options not specified on the EXEC or CBL statement are determined
by their values in the installation defaults. Any options that have been fixed in
the installation defaults cannot be changed on any other level.
Using Synonyms and Abbreviations
CA Optimizer/II allows you to abbreviate all compile-time options to the first
three characters of their name. For example:
Compile-time Option Abbreviation
MOFFSET MOF
NOMOFFSET NOMOF
Compile-time
Chapter 11: Using Options 287
Overriding Defaults
You can override the default values at compile/optimize time by specifying
options in one of the following:
■ The options list in the EXEC statement
■ The CBL statement in your COBOL program
Note: You can override defaults only if the option has not been fixed by your
systems programmer at installation. The product is shipped with all defaults
unfixed.
Order of Precedence in Establishing Option Values
At compile-time, once all options have been scanned, their processing takes
place in the following order of precedence:
Order Scanned Compile-time
Options
Force
1 FDCHECK
PARMCHK
PFLOW
SUBRNGCK or WSINIT
DTECT*
2 ICICS CICS
3 CICS
DCI
HOGAN**
IDMSDC
SHADOW** or TPMON
NODTECT
NOXCOUNT
NOXTIME and
NODBGSLEEP
4 NODTECT NOPFLOW and NOPARMCHK
5 XCOUNT or XTIME SYM and MOFFSET
6 MOFFSET NOOFFSET
7 OFFSET NOLIST
8 LIST NOSELECT
9 CXREF NOXREF
10 NOCOMPILE
NOCOMPILE(w)
NOCOMPILE(e)
NOCOMPILE(s)
COBCC=0
COBCC=0
COBCC=4
COBCC=8
11 MMAP NOMAP
Compile-time
288 User Guide
If the EDS option is set to EDS=YES at installation (in source member
CAOUDFOX), the DTECT option will not be forced by WSINIT, FDCHECK, or
SUBRNGCK.
**These options are no longer supported, but, if specified, they will force the
TPMON option.
Usage Considerations
The following options, if specified on the PROCESS (CBL) statement, produce
COBOL II warning message(s) (RC=4) but are processed by CA Optimizer/II:
■ DECK
■ NOLIST
■ NOMAP
■ OFFSET
■ NOOBJECT
■ NOSOURCE
■ SSRANGE
Any options that are specified on the PROCESS(CBL) statement and are
recognized only by CA Optimizer/II produce a compiler error message (RC=8).
The ICICS option will only take effect when it is specified on the JCL parameter
list. If it is specified on the PROCESS(CBL) statement, it will produce a compiler
error message (RC=8) and will not enable the integrated CICS translator of
Enterprise COBOL for z/OS.
When compiling with Enterprise COBOL for z/OS, if the CICS option is specified
on the PROCESS(CBL) statement, it will be processed as both the CICS option of
the compiler (that is, it will enable the integrated CICS translator) and CICS
option of CA Optimizer/II.
Execution, Report, and View-time
Chapter 11: Using Options 289
Execution, Report, and View-time
The following discussions on coding options and overriding defaults do not apply
to the EOS runtime options. The EOS runtime options apply globally to all
transactions containing EOS COBOL programs and cannot be overridden at the
transaction level. The EOS runtime options are discussed in detail in the
Installation Guide.
Coding Options
The general rules for coding keywords and their options at execution and
report-time are:
■ One or more spaces as delimiters for options.
■ An equal sign (=) to separate a keyword from its option value. For example,
DUMP=ON and DUMP ON are both acceptable.
■ Positions 1 through 72 and ignore positions 73 through 80.
You can specify:
■ Options in any order; if you repeat an option, the last specified occurrence is
applied.
■ Any number of options on a line; however, do not split options between two
lines.
You can also:
■ Denote a comment line with an asterisk in position 1.
■ Input an option associated with a keyword when you specify the keyword. To
obtain the total default value of the keyword, omit the entire keyword and
option.
Overriding Defaults
You can override option default values by specifying options in the card-image
data set defined by the CAIOPTS DD statement. You can specify this DD
statement at execution-time and report-time. If the Analyzer Reporter is to be
automatically invoked at execution-time, the report-time options for Analyzer
can be mixed freely with the execution-time options for both Detector and
Analyzer.
Execution, Report, and View-time
290 User Guide
You can override any option as long as it has not been fixed by your systems
programmer at product installation time. The product is shipped with all defaults
unfixed.
At view-time, you can override options through the Report Options panel of the
CAIPRINT Repository Viewer. See the chapter ―Using the CAIPRINT Repository
Viewer‖ for more information.
Optimizer Options
The following table lists the options available at compile/optimize time:
Compile-time Options
To invoke Optimizer: COPT IDMSDC TPMON ICICS
Environmental options: CICS MMAP
MOFFSET
MXREF
OFFSET
PRTCOPY
SELECT
SOURCE
TITLE
XMMAP
XREF
Output producing
options:
CXREF
DCRDISP
LIST
MAP
XTIME
Analyzer features: XCOUNT
Detector features: DBGSLEEP
DTECT
FDCHECK
PARMCHK
PFLOW
SUBRNGCK
WSINIT
Other options: COBCC
DECK
EXIT
INTERTST
LINECOUNT
LOWER
OBJECT
OPTRC
SPM
STATS
SYM
XDATA
Execution Time Options
PRTLHCT=80|nn
Specifies the percent full the PRTLIB dataset must reach to trigger a health check
exception condition. If this percentage is reached the health check program will
go into exception state and issue consol messages every 15 minutes until the
problem is corrected.
Detector Options
Chapter 11: Using Options 291
Detector Options
The following table lists all Detector options available at compile-time,
execution-time, and view-time:
Detector Options
Compile-time Execution-time View-time
DBGSLEEP
DTECT
FDCHECK
PARMCHK
PFLOW
SUBRNGCK
WSINIT
Standard Options
ACTONLY PGM
CEEDUMP PRTLIB
DBGAWAKE PRTREPT
DB2ACTIV REGMAX
DUMP SAVEHEAP
INTERCEPTS SNAP
PARMCHK SYMDSN
PFLOW
Formatting Options
ASMINST MRGDATA
BINFRMT MRGDSECT
FILES MRGFILES
FIRST128 MRGLINK
GRPADDR MRGLOCAL
LINECNT MRGPARMS
LINKAGE MRGSTAT
LOCALSTOR MRGWORK
MEMMAP OCCURS
MRGAUTO SAVEAREA
MRGBASED SHOWHEAP
MRGCNTLD SHWUNMRG
MERGEDB WORKSTOR
Data Management Control
Blocks
BLOCKS IOB
DCB UCB
DEB
VSAM Control Blocks
ACB PLH
AMB RPL
AMBL VSAMIDX
ASMINST
BINFRMT
FILES
FIRST128
GRPADDR
LINECNT
LINKAGE
LOCALSTOR
MEMMAP
MRGAUTO
MRGBASED
MRGCNTLD
MERGEDB
MRGDSECT
MRGFILES
MRGLINK
MRGLOCAL
MRGPARMS
MRGSTAT
MRGWORK
OCCURS
SAVEAREA
SHOWHEAP
SHWUNMRG
WORKSTOR
Some Detector features have both a compile-time and execution-time options.
Also, the formatting options can be specified either at execution-time or at
view-time.
Extended Detector Options
292 User Guide
Specifying Detector Compile-time Options
You can specify the Detector compile-time options in one of the following ways:
■ In the PARM list in the EXEC statement
■ In a CBL statement in your COBOL program
You can freely combine Detector compile-time options with COBOL compiler
options and other CA Optimizer/II options. The following is a list of Detector
compile-time options. Their execution-time applications are discussed in detail in
the chapter ―Using Detector.‖
■ DBGSLEEP
■ DTECT
■ FDCHECK
■ PARMCHK
■ PFLOW
■ SUBRNGCK
■ WSINT
Indicating Detector Execution-time and View-time Options
Detector execution-time options are provided to the Execution Monitor by the
CAIOPTS data set. The view-time options are specified through the Report
Options panel in the CAIPRINT Repository Viewer.
For more information on overriding Detector options, see the chapter ―Using
Detector.‖
Extended Detector Options
The following table lists all Extended Detector options available at compile -time,
execution-time, and view-time:
Extended Detector Options
Execution-time
View-time
Standard Options
BLLMAX REGMAX
DB2ACTIV RPTSZ80
DUMP SAVEHEAP
PRTLIB SNAP
Data Management
Control Blocks
BLOCKS IOB
DCB UCB
ASMINST
BINFRMT
FILES
FIRST128
GRPADDR
Extended Detector Options
Chapter 11: Using Options 293
Extended Detector Options
Execution-time
View-time
PRTREPT SYMDSN
Formatting Options
ASMINST MRGDATA
BINFRMT MRGDSECT
FILES MRGFILES
FIRST128 MRGLINK
GRPADDR MRGLOCAL
LINECNT MRGPARMS
LINKAGE MRGSTAT
LOCALSTOR MRGWORK
MEMMAP OCCURS
MERGEDB SAVEAREA
MRGAUTO SHOWHEAP
MRGBASED SHWUNMRG
MRGCNTLD WORKSTOR
DEB
VSAM Control Blocks
ACB PLH
AMB RPL
AMBL VSAMIDX
Log and Notify Options
LOGROS LOGUNI
LOGTSO WTO
LINECNT
LINKAGE
LOCALSTOR
MEMMAP
MERGEDB
MRGAUTO
MRGBASED
MRGCNTLD
MRGDSECT
MRGFILES
MRGLINK
MRGLOCAL
MRGPARMS
MRGSTAT
MRGWORK
OCCURS
SAVEAREA
SHOWHEAP
SHWUNMRG
WORKSTOR
Specifying Extended Detector Compile-time Options
You can specify the Extended Detector compile-time options in one of the
following ways:
■ In the PARM list in the EXEC statement
■ In a CBL statement in your COBOL program
You can freely combine Extended Detector compile-time options with COBOL
compiler options and other CA Optimizer/II options. The following is a list of
Extended Detector compile-time options:
■ FDCHECK
■ SUBRNGCK
■ WSINT
Note: The EDS option must be specified in the compile-time default CSECT,
CAOUDFOX, to prevent these options from forcing DTECT.
Analyzer Options
294 User Guide
Indicating Extended Detector Execution-time and View-time Options
Extended Detector execution-time options are provided to the Execution Monitor
by the CAIOPTS data set. The view-time options are specified on the Report
Options panel in the CAIPRINT Repository Viewer.
For more information on overriding Extended Detector options, see the chapter
―Using Extended Detector.‖
Analyzer Options
Analyzer consists of two facilities: Counts and Timings. The two facilities can be
used independently or together. Pictorially:
Analyzer
____________________________________
| |
(XCOUNT) (XTIME)
Executed (and Unexecuted) CPU time analysis by
Paragraph and Source Application, Load Module,
Statement Counts Program, Paragraph, and
Source Statement
You control Analyzer at compile-time, execution-time, and report-time. The
following table lists the Analyzer Control options whose use is discussed in the
chapter ―Using Analyzer.‖
Analyzer Options
Compile-time Execution-time Report-time
XCOUNT
XTIME
BINDER
STIMERM
XCOUNT
XREPORT
XTIME
CNTXREF
SOURCEMAP
INSTRMAP
USERID
PROCDIV
Compile-time Options
You can specify the Analyzer compile-time options in one of the following ways:
■ In the PARM list in the EXEC statement
■ In a CBL statement in your COBOL program
Analyzer Options
Chapter 11: Using Options 295
You can freely combine Analyzer compile-time options with COBOL compiler
options and with other CA Optimizer/II options.
The following is a list of Analyzer compile-time options. Their execution-time
applications are discussed in detail in the chapter ―Using Analyzer.‖
■ XCOUNT
■ XTIME
Execution-time Options
Analyzer execution-time options are provided to the Execution Monitor by the
CAIOPTS data set. You can freely combine Analyzer execution-time options with
Detector execution-time options.
The following is a list of Analyzer execution-time options. Their applications are
discussed in the chapter ―Using Analyzer.‖
■ BINDER
■ STIMERM
■ XCOUNT
■ XREPORT
■ XTIME
Report-time Options
Analyzer report-time options are provided to Analyzer Reporter using the
CAIOPTS data set at report-time. If the Analyzer Reporter is to be automatically
invoked at execution-time using XREPORT, you may freely combine Analyzer
report-time options with both Detector and Analyzer execution-time options in
the execution-time CAIOPTS data set.
The following is a list of the Analyzer report-time options. Their applications are
discussed in detail in the chapter ―Using Analyzer.‖
■ CNTXREF
■ INSTRMAP
■ PROCDIV
■ SOURCEMAP
■ USERID
Analyzer Options
296 User Guide
Guidelines for Using Report-time Options
Generally, you can supply options in any order, but sometimes the order in which
keywords appear can be significant. For example, if the same program-ID
appears on both the SOURCEMAP and PROCDIV options, the last keyword
processed is the controlling option.
The defaults for the keyword options cover all programs. Any overriding
specification, such as SOURCEMAP PGMA, overrides the default, SOURCEMAP
ALL in this instance. Of all the programs in the reporting step, only the one
specified, in this case PGMA, will produce full source listing reports. Once you
override an options' default, you must specify each parameter you want for the
given option.
To reverse the option request, prefix each keyword option with NO. Do not insert
a space between NO and the keyword. The following are some examples showing
how to reverse the option request:
■ If you want SOURCEMAP reports for all programs except PGMA, you can
specify:
SOURCEMAP ALL
NOSOURCEMAP PGMA
■ Or if you want CNTXREF reports for all programs except PGMA, you can
specify:
CNTXREF ALL
NOCNTXREF PGMA
This feature is very useful when you are running several programs.
Relationship of program-ID and CSECT Name
It is important to be aware of the possible differences between options using
program-ID and those using CSECT to identify programs.
For those reports relating to the COBOL source listing (SOURCEMAP, CNTXREF,
and PROCDIV), the name specified following the keyword must be identical to
the name specified on the first program-ID statement of the COBOL program.
The CSECT name is the control section name actually assigned by the linkage
editor. It is used mainly for reporting time measurement data for non-COBOL
programs (INSTRMAP).
CSECT names are not necessarily associated with load module names. For
COBOL programs, the first program-ID in the source program is the CSECT
name. There are exceptions, however, where the load module name can be
changed during link-edit. For this reason, the three source options SOURCEMAP,
PROCDIV, and CNTXREF must use the COBOL program-ID for ―name,‖ and the
INSTRMAP option must use the CSECT name for ―CSECT.‖
Options Listing
Chapter 11: Using Options 297
Options Listing
This section lists the CA Optimizer/II options. The underlined options indicate
the default values.
Option
ACB ON|OFF
Prints access method control blocks for open VSAM files
in an Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
ACTONLY ON|OFF
Used primarily for initial debugging in a multi-module
environment. During Abend reporting, it indicates to
print reports only for the program in the calling
sequence which was most recently executed and is still
active (when it has not yet executed its GOBACK).
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
AMB ON|OFF
Prints access method blocks for open VSAM files in
Abend or Snap Reports.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
AMBL ON|OFF
Prints an access method block list for open VSAM files in
an Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
ASMINST ON|OFF
Displays the abending assembler instruction and
associated operands on an Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
BINDER ON|OFF
Specifies whether user load modules are accessed
through the binder API function calls or the standard I/O
macros. This option must set to ON for programs that
reside in PDSE libraries.
Synonym:
Component:
When used:
None
Analyzer, Detector, Extended
Detector
Execution-time
BINFRMT DEC|HEX
Specifies whether to display binary data values in
decimal display or hexadecimal format on the merged
Data Division displays of an Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
Options Listing
298 User Guide
Option
BLLMAX 512|nnnn
Because the length of an 01-item in the linkage section
cannot always be determined, this option specifies the
maximum number of bytes which are formatted for a
BLL cell whose range is unknown. The maximum value
is 4096.
Synonym:
Component:
When used:
None
Extended Detector
Execution-time
BLOCKS ON|OFF
A data management control block option which sets all
control block options, including all VSAM control block
options, either ON or OFF for an Abend or Snap report.
This option overrides any previous control block
options.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
CEEDUMP ON|OFF
Specifies whether Detector forces the Language
Environment (LE) option TERMTHDACT(MSG) after
writing a Detector report for an application executing
under LE. If TERMTHDACT(QUIET) or
TERMTHDACT(MSG) are already in effect, this option is
ignored.
Synonym:
Component:
When used:
None
Detector
Execution-time
CICS|NOCICS
Determines if the program is optimized for a CICS
environment. CICS suppresses DBGSLEEP, DTECT,
PARMCHK, PFLOW, XCOUNT, and XTIME.
When compiling with Enterprise COBOL for z/OS,
specifying the CICS option on the PROCESS(CBL)
statement is not recommended, as it will be processed
as both the CICS option of the compiler (that is, it will
enable the integrated CICS translator) and CICS option
of CA Optimizer/II.
To enable the integrated CICS translator of Enterprise
COBOL for z/OS under CA Optimizer, use the ICICS
option.
Synonym:
Component:
When used:
CIC
Optimizer
Compile-time
name
CNTXREF|NOCNTXREF (name1,name2,…)
ALL
Indicates by program-ID the programs for which the
Execution Count Cross-Reference report prints. You can
produce this report only for those programs in which
you are also obtaining a SOURCEMAP.
Synonym:
Component:
When used:
None
Analyzer
Report-time
Options Listing
Chapter 11: Using Options 299
Option
COBCC=8|nnnn
This option is normally set at installation. It specifies the
highest return code from the compiler that is acceptable
to Optimizer. Optimizer must ordinarily work only with
executable modules (no severe or terminating
diagnostics). For this reason, you should not change this
option except under special conditions.
Synonym:
Component:
When used:
None
Optimizer
Compile-time
COPT|NOCOPT
Instructs the Run Executive to invoke Optimizer after
the compile. If you specify NOCOPT, only the compiler is
invoked.
Synonym:
Component:
When used:
COP
Optimizer
Compile-time
CXREF|NOCXREF
Specifies that Optimizer produces a condensed
cross-reference of referenced data items. CXREF is
exclusive of XREF and produces the procedure name
XREF with all procedure names listed. CXREF will be
turned off if it is specified on the PROCESS(CBL)
statement and XREF was not produced by the COBOL
compiler.
Synonym:
Component:
When used:
CXR
Optimizer
Compile-time
name
DBGAWAKE ( name1,name2,…)
ALL
Activates debugging facilities at execution-time for one
or more programs that were compiled using the
DBGSLEEP compile-time option and any or all of the
following compile-time options: XCOUNT, PFLOW, and
SUBRNGCK.
where name is the name of a COBOL CSECT
(program-ID) which was compiled with DBGSLEEP. ALL
may be specified in lieu of a list. ALL results in the
activation of the debugging facilities in all programs
optimized with the DBGSLEEP feature. See
Production-time Enabling of Debugging Facilities
(DBGSLEEP/DBGAWAKE) in the chapter ―Using
Detector‖ for a detailed discussion of
DBGSLEEP/DBGAWAKE.
Synonym:
Component:
When used:
None
Detector
Execution-time
Options Listing
300 User Guide
Option
DBGSLEEP|NODBGSLEEP
Controls the masking of Detector facilities and is
intended for a program's final compilation prior to being
placed in production-status. DBGSLEEP causes PFLOW,
DTECT, and XCOUNT (or any subset of these facilities)
to be disabled in such a way that, should they ever be
needed at a later time, they are available without
requiring recompilation. When used with its companion
execution-time option, DBGAWAKE, you can enable
debugging facilities in otherwise production status
programs without performing a recompile/relink of the
program.
Synonym:
Component:
When used:
DBG
Detector
Compile-time
DB2ACTIV ON|OFF
Indicates whether Detector or Extended Detector
displays summary information for only those packages
and DBRMs that are active at the time of an Abend or
Snap. If the option is set to OFF, Detector displays
summary information for all of the packages and DBRMs
defined to the DB2 plan.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
DCB ON|OFF
Prints data control blocks for all open files in an Abend or
Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
DCRDISP|NODCRDISP
Indicates whether Optimizer produces a relative
decimal byte displacement on the data map or merged
data map listing instead of the hexadecimal relative
byte displacement produced by the compiler.
Synonym:
Component:
When used:
DCR
Optimizer
Compile-time
DEB ON|OFF
Prints data extent blocks for all open files in an Abend or
Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
DECK|NODECK
Determines whether Optimizer produces the optimized
object module on SYSPUNCH.
Synonym:
Component:
When used:
D or DEC
Optimizer
Compile-time
Options Listing
Chapter 11: Using Options 301
Option
DTECT|NODTECT
Specifies to invoke the CA Optimizer/II Detector feature
at execution-time. If you select DTECT, Detector
automatically generates the CSL option so that the
source is available for the Abend, Snap, and Intercepts
reports. Unless NOCSL is specified, DTECT forces on
CSL, MOFFSET, and MMAP. NODTECT suppresses
PARMCHK and PFLOW. If CICS, IDMSDC, or TPMON is
specified, DTECT is suppressed.
Synonym:
Component:
When used:
DTE
Detector
Compile-time
DUMP ON|OFF
Specifies whether Detector or Extended Detector forces
or suppresses a system dump after it has completed its
processing. If DUMP ON is in effect and a SYSUDUMP DD
statement was not specified in the JCL, Detector
dynamically allocates it.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
FDCHECK|NOFDCHECK
Specifies whether Optimizer causes a user 1128 Abend
at execution-time if a program attempts to move data to
or from if a record of a file which is not OPEN or, for an
input file, is at end-of-file. This option forces the DTECT
option except when CICS, IDMSDC, or TPMON is
specified at compile-time, or EDS=YES is specified in
the defaults. For more details, see Detection of Invalid
Record Area References in the chapter ―Using Detector.‖
Synonym:
Component:
When used:
FDC
Detector, Extended Detector
Compile-time
FILES ON|OFF
Specifies whether Detector or Extended Detector
displays all open files not already shown in the File
Section display of an Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
FIRST128 ON|OFF
Controls whether Detector or Extended Detector prints
only the first 128 bytes of the current record of each
open file or the entire record. This option affects both
the File Section display and Open Files report of an
Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
GRPADDR ON|OFF
Controls whether Detector or Extended Detector
displays the base locator, displacement and address of a
group item on the merged Data Division displays of an
Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
Options Listing
302 User Guide
Option
ICICS | ICICS('translator options') | NOICICS
CA Optimizer/II synonym for the CICS option of
Enterprise COBOL for z/OS. This option will enable the
compiler's integrated CICS translator. Option overrides
for the CICS translator may be passed as a suboption
string, delimited by either quotes or apostrophes.
ICICS should only be used with the Enterprise COBOL
for z/OS compiler, to compile programs that contain
EXEC CICS statements and that have not been
processed by a separate CICS translator. ICICS may
only be specified on the JCL parameter list and will not
be recognized if specified on the PROCESS(CBL)
statement. ICICS forces the CA Optimizer/II CICS
option.
For more information on using the integrated CICS
translator of Enterprise COBOL for z/OS, see IBM's
Enterprise COBOL for z/OS Programming Guide.
Synonym:
Component:
When used:
None
Optimizer
Compile-time
IDMSDC|NOIDMSDC
Indicates whether to optimize the program for an
IDMSDC environment. IDMSDC suppresses XCOUNT,
DTECT, PFLOW, XTIME, DBGSLEEP, and PARMCHK.
Synonym:
Component:
When used:
IDM
Optimizer
Compile-time
CSECT
INSTRMAP|NOINSTRMAP (CSECT1,CSECT2,…)
ALL
Indicates the programs by CSECT name for which the
Instruction Detail report prints.
Synonym:
Component:
When used
None
Analyzer
Report-time
INTERCEPTS 0|nnnnn
Specifies whether Detector intercepts program interrupt
processing when data exceptions (0C7s) or decimal
divide-by-zero exceptions (0CBs) occur. Detector prints
the Intercepts report and continues processing. You
must set nnnnn to the total number of INTERCEPTS in
the run that you will permit. The maximum number
allowed is 32,767.
If the number of exceptions goes beyond the limit you
have specified, a Detector Abend report generates and
the run terminates. To use INTERCEPTS, the DTECT,
FDCHECK, PFLOW, SUBRNGCK, and/or WSINIT options
must be specified at compile-time. You can use the
INTERCEPTS feature in the same run with the SNAP
feature.
Synonym:
Component:
When used:
None
Detector
Execution-time
Options Listing
Chapter 11: Using Options 303
Option
INTERTST
Specifies whether to optimize the program for use with
CA InterTest.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
IOB ON|OFF
Prints input/output blocks for all open files in an Abend
or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
LINECOUNT (60)|(nnn)
Indicates the number of lines on each page of output at
compile-time. where nnn can be any integer from 10 to
255, inclusive.
Synonym:
Component:
When used:
LC
Optimizer
Compile-time
LINECOUNT 60|nnn
Specifies the number of lines on each page of output at
execution-time. where nmn can be any integer from 10
to 255, inclusive.
Synonym:
Component:
When used:
LINECNT
Execution Monitor
Execution-time, report-time,
view-time
LINKAGE ALL|NONE
Specifies whether to display (ALL) or suppresses
(NONE) the program's Linkage Section in an Abend or
Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
LIST|NOLIST
Indicates whether Optimizer produces an object code
listing. LIST and OFFSET options are mutually
exclusive; LIST and MOFFSET are not. If both LIST and
OFFSET are specified, OFFSET takes precedence.
Synonym:
Component:
When used:
PMAP
Optimizer
Compile-time
LOCALSTOR ALL|NONE
Specifies whether to display (ALL) or suppress (NONE)
the program's Local-Storage Section in an Abend or
Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
LOGROS ON|OFF
Specifies whether to send a message describing the
abend to the Advantage CA-Roscoe user who submitted
the job. You must establish a list of Advantage
CA-Roscoe job names in the Extended Detector defaults
using the ROSCOE parameter.
Synonym:
Component:
When used:
None
Extended Detector
Execution-time
LOGTSO ON|OFF
Indicates whether to send a message describing the
abend to the TSO user who submitted the job.
Synonym:
Component:
When used:
None
Extended Detector
Execution-time
Options Listing
304 User Guide
Option
LOGUNI ON|OFF
Indicates whether to send a message describing the
abend to the Unicenter Network and Systems
Management console.
Synonym:
Component:
When used:
None
Extended Detector
Execution-time
LOWER|NOLOWER
Specify LOWER only under the direction of CA Technical
Support. LOWER may cause a decrease in optimization
results. It is necessary only under certain conditions
which are identifiable by CA Technical Support.
Synonym:
Component:
When used:
LOW
Optimizer
Compile-time
MAP|NOMAP
Indicates whether Optimizer produces a compiler data
map. The MAP option is mutually exclusive of the MMAP
option. If both are specified, the MMAP option takes
precedence.
Synonym:
Component:
When used:
DMAP
Optimizer
Compile-time
MMAP|NOMMAP
Indicates whether to merge the compiler data map with
the source listing. MMAP is mutually exclusive of the
MAP option, with MMAP taking precedence. MMAP may
be forced on by Detector or Analyzer options. For
details, see Order of Precedence in Establishing Option
Values earlier in this chapter.
Synonym:
Component:
When used:
MMA, MDMAP, or MDM
Optimizer
Compile-time
MEMMAP ON|OFF
Produces a display of the memory map (TGT, PGT, and
DSA) in an Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
MERGEDB ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps DB2, IDMS, and IMS data. If the
option is set to ON, data item information such as the
name, picture clause, and usage type is merged with
the dump output for those areas.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
MOFFSET|NOMOFFSET
Indicates whether to merge the Optimized condensed
object listing onto the source listing. MOFFSET is
exclusive of OFFSET, with MOFFSET taking precedence.
You can use MOFFSET in addition to LIST or SELECT.
MOFFSET is forced on by Analyzer options. For details,
see Order of Precedence in Establishing Option Values
earlier in this chapter.
Synonym:
Component:
When used:
MOF, MLIST or MLI
Optimizer
Compile-time
Options Listing
Chapter 11: Using Options 305
Option
MRGAUTO ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps the data for PL/I automatic storage.
If this option is ON, data item information such as name
and definition is merged with the data.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
MRGBASED ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps the data for PL/I based variables. If
this option is ON, data item information such as name
and definition is merged with the data.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
MRGCNTLD ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps the data for PL/I controlled variables.
If this option is ON, data item information such as name
and definition is merged with the data.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
MRGDATA ON|OFF
Indicates whether to set all data merging options either
ON or OFF for an Abend or Snap report. This option
overrides any previous merging options.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
MRGDSECT ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps the data for Assembler storage areas
when a USING is active. If this option is ON, data item
information such as name and definition is merged with
the data.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
MRGFILES ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps the data in the File Section display of
an Abend or Snap report. If the option is set to ON, data
item information such as the name, picture clause, and
usage type is merged with the data for the current
logical record.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
MRGLINK ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps the data in the Linkage Section
display of an Abend or Snap report. If the option is set to
ON, data item information such as the name, picture
clause, and usage type is merged with the data.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
Options Listing
306 User Guide
Option
MRGLOCAL ON|OFF
Indicates whether to symbolically map the data in the
Local-Storage Section display of an Abend or Snap
Report. If this option is ON, data item information such
as the name, picture clause, and usage type is merged
with the data.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
MRGPARMS ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps the data for PL/I parameter storage.
If this option is ON, data item information such as name
and definition is merged with the data.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
MRGSTAT ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps the data for PL/I static storage. If
this option is ON, data item information such as name
and definition is merged with the data.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
MRGWORK ON|OFF
Indicates whether Detector or Extended Detector
symbolically maps the data in the Working-Storage
Section of an Abend or Snap report. If the option is set
to ON, data item information such as the name, picture
clause, and usage type is merged with the data.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
MXREF|NOMXREF
Allows you to obtain a merged cross-reference on your
source listing for both Data and Procedure Divisions.
MXREF is turned off if it is specified on the
PROCESS(CBL) statement and XREF was not produced
by the compiler
Synonym:
Component:
When used:
MXR
Optimizer
Compile-time
OBJECT|NOOBJECT
Specifies whether to write an optimized object module
to SYSLIN. Specify NOOBJECT when you want only the
results of the Optimizer's source and object code
analysis, but do not want to link and execute the
program.
Synonym:
Component:
When used:
OBJ
Optimizer
Compile-time
OFFSET|NOOFFSET
Indicates whether Optimizer produces a condensed
procedure map listing. OFFSET is mutually exclusive of
MOFFSET and LIST. You can, however, use OFFSET and
SELECT together, and Optimizer integrates the two
outputs.
Synonym:
Component:
When used:
OFF, CLIST, or CLI
Optimizer
Compile-time
Options Listing
Chapter 11: Using Options 307
Option
OCCURS 1|nnnnnnnn|MAX
Specifies to Detector the maximum number of table
occurrences to symbolically map when using the
merging options. If the option is set to a value lower
than the number of occurrences in the table, the
remainder of the table occurrences are dumped in
hexadecimal format. If OCCURS MAX is specified, the
option is set to its maximum value of 16777215.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
OPTRC= 0|nn
This parameter is normally set at installation. It
specifies the return code that Optimizer returns if any
statements have been flagged unexecutable (UNEXEC)
or unconditional (UNCOND). You can specify any integer
from 0 to 99 inclusive.
Synonym:
Component:
When used:
None
Optimizer
Compile-time
PARMCHK|NOPARMCHK
Indicates whether Detector validity-checks the option
list on entry to the COBOL program. A message is
produced and execution is resumed if an invalid option
list is found. Validity checking of the option list is not
performed on calls to nested programs. PARMCHK
forces the DTECT option. If NODTECT, CICS, TPMON, or
IDMSDC is specified, PARMCHK is suppressed.
Synonym:
Component:
When used:
PAR
Detector
Compile-time
PARMCHK ON|OFF
Specifies whether option list validity checking is ON at
execution-time. It is ON by default, which means that
PARMCHK processing occurs for any program compiled
using COBOL II or above with the PARMCHK option, or
for any program compiled using OS/VS COBOL with the
DTECT option. Specifying PARMCHK OFF at
execution-time turns off the option for all programs
compiled with PARMCHK.
Synonym:
Component:
When used:
None
Detector
Execution-time
PFLOW|NOPFLOW
Requests a Detector Paragraph Flow report of the last
64 paragraphs executed. It follows the Detector Abend
or Snap report. You can override it by specifying the
PFLOW OFF option at execution-time. PFLOW turns on
DTECT. If NODTECT, CICS, IDMSDC, or TPMON is
specified, PFLOW is suppressed.
Synonym:
Component:
When used:
PFL
Detector
Compile-time
Options Listing
308 User Guide
Option
PFLOW ON|OFF|64|nnnn|mmk
Turns PFLOW on or off at execution-time and optionally
changes the size of the PFLOW table for each program
optimized with PFLOW. The default (ON) results in up to
64 paragraph names being reported in a wraparound
table for each program. You can specify ON or OFF, or
you can specify a number in the format nnnnn or mmK.
Specifying a number other than 0 or 0K turns PFLOW on
at execution-time and changes the number of entries in
the wraparound PFLOW table for each program.
Specifying 0 or 0K turns PFLOW off at execution-time. If
a number in the format nnnnn or mmk is specified, the
number is rounded up to the nearest power of 2, not
exceeding 32768. For example, specifying ―PFLOW
1000‖ yields a PFLOW table for each program with 1024
entries; specifying ―PFLOW 3K‖ yields a PFLOW table for
each program with 4096 entries. In all cases, PFLOW
must have been specified at compile-time.
Synonym:
Component:
When used
None
Detector
Execution-time
PGM xxxxxxxx
Specifies the job step program name of the application
to be executed under the Execution Monitor. The
Execution Monitor is part of the runtime system which
sets up the execution environment for applications
using any of the Detector or Analyzer features. This
option is only used in special circumstances. It is only
specified when the Execution Monitor (CAOCEM00) is
the program being executed as the job step program. It
identifies the load module name of the program you
ordinarily specify as the job step program.
For more information, see the chapter ―Using Analyzer‖
and the Installation Guide.
Synonym:
Component:
When used:
None
Detector
Execution-time
PLH ON|OFF
Prints place holders for open VSAM files in an Abend or
Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
Options Listing
Chapter 11: Using Options 309
Option
name
PROCDIV|NOPROCDIV (name1,name2,…)
ALL
Indicates by program-ID the program for which only the
Procedure Division prints. All measurement data for all
programs specified with this option prints next to the
Procedure Division; the other divisions are omitted.
This option allows you to make several Analyzer runs for
the same program without having to produce the full
program source listing each time.
Synonym:
Component:
When used:
None
Analyzer
Report-time
PRTCOPY|NOPRTCOPY
This Optimizer option prints (PRTCOPY) or suppresses
(NOPRTCOPY) the printing of copy books (COPY
statements encountered in the processing of programs)
in the source listing.
PRTCOPY does not override a COPY SUPPRESS
statement in the source. Therefore, the PRTCOPY option
only works for standard COPY statements (no
SUPPRESS).
Synonym:
Component:
When used:
PRT
Optimizer
Compile-time
PRTLIB repository_library_name
Defines the data set name of the CAIPRINT repository
library. When used, this option must name a repository
library that has already been created and cataloged.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
PRTREPT BOTH|REPOS|PRTDD
Indicates whether to write the CAIPRINT report to the
central VSAM repository (REPOS), the CAIPRINT DD
(PRTDD), or both.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
REGMAX (xxx,yyy)|(128,256)
Indicates how many bytes of addressable storage to
display before and after the address in each register for
an Assembler program. xxx represents the number of
bytes before, and must be within the range 0-4096. yyy
represents the number of bytes after and must be within
the range 0-32767.
The REGMAX values must be enclosed in parentheses,
and if both xxx and yyy are specified, they must be
separated by a comma. If only xxx is specified, yyy is
assumed to have the same value.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
Options Listing
310 User Guide
Option
RPL ON|OFF
Prints a Request Parameter List for open VSAM files in
an Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
RPTSZ80 ON|OFF
Indicates whether Extended Detector forces all data in
dump format to appear in an 80-column format.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
SAVEAREA ON|OFF
Produces the Save Area Trace on an Abend report. The
Save Area Trace displays the chained register save
areas starting at the abending module.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
SAVEHEAP ON|OFF
Indicates whether Detector or Extended Detector saves
the LE heap storage when a report is created.
SAVEHEAP ON is required at execution-time in order to
use SHOWHEAP ON for LE enabled COBOL or Assembler
programs.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
Options Listing
Chapter 11: Using Options 311
Option
SELECT=(stmnt1,stmnt2-stmnt6,stmnt9,...)
Specifies that a procedure map (PMAP or LIST) prints for
only certain (selected) statements. When you indicate
the statement number, Optimizer formats, in procedure
map form, the entire Optimizer block of code that
contains that statement number. It is possible to format
multiple blocks. If PMAP is specified, SELECT is
suppressed.
Notes:
You cannot specify more than 10 statement numbers in
the option, but you can specify a range of statements by
indicating the starting and ending statement numbers.
For example, 600-650 is counted as two statement
numbers but provides PMAP information for 51 lines.
The statement numbers must appear in ascending
order.
If you specify only one statement or one group
statement, omit the parenthesis.
The statement numbers are the compiler-generated
statement numbers, unless you have specified the
compiler NUM option, in which case they are the user
source statement numbers.
Optimizer ignores the SELECT option if you have also
specified PMAP or LIST. You can use SELECT with CLIST
or MLIST, and Optimizer integrates the two outputs.
Synonym:
Component:
When used:
None
Optimizer
Compile-time
SHOWHEAP ON|OFF
Indicates whether Detector or Extended Detector
displays the LE or PL/I heap storage when a report is
displayed. SAVEHEAP ON is required at execution-time
in order to use SHOWHEAP ON for LE enabled COBOL or
Assembler programs.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
SHOWUNMRG ON|OFF|TBLS
Indicates whether to display storage for unmerged data
when symbolic merging has been requested for the
section. If the section is being displayed in the standard
dump format, SHOWUNMRG has no effect.
Specify ALL to always display unmerged data, NONE to
never display unmerged data, or TBLS to display
unmerged data only for table elements after the
OCCURS limit has been reached for each table.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
Options Listing
312 User Guide
Option
SNAP 0|nnnnn|ON|OFF
Indicates whether Detector or Extended Detector
generates a Snap report. You must specify the number
of SNAPs to allow using nnnnn. The maximum number
allowed is 32,767.
To use SNAP, you must include a call to CAODSNAP in
your source code wherever you want a snapshot to be
taken. You may use the SNAP feature in the same run
with the INTERCEPTS feature. If your program contains
SNAP calls and you want to run it without them, you do
not need to recompile; simply do not specify the SNAP
option at all.
WARNING! When using SNAP with Extended Detector,
each call to CAODSNAP generates a separate SNAP
report in your central VSAM repository. If your program
contains multiple SNAP calls (or a SNAP call within a
loop), you can write the output to the CAIPRINT DD
alone, to avoid flooding the repository. See the
PRTREPT option.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
SOURCE|NOSOURCE
Specifies whether Optimizer produces a source listing
on the standard SYSPRINT data set. NOSOURCE
suppresses the source listing. However, the options,
diagnostic messages, compiler statistics, and Optimizer
statistics pages still appear.
Synonym:
Component:
When used:
S or SOU
Optimizer
Compile-time
name
SOURCEMAP|NOSOURCEMAP ( name1,name2,…)
ALL
Specifies the programs by program-ID for which the full
Analyzer source listing prints.
Synonym:
Component:
When used:
None
Analyzer
Report-time
SPM|NOSPM
Specifies whether Optimizer generates the compiler
generated code for restoring the program mask, on
return from external subroutine calls. SPM causes
Optimizer to generate the code. The SPM option's
default value is ordinarily set at installation time and
need not be specified thereafter.
Synonym:
Component:
When used:
None
Optimizer
Compile-time
STATS|NOSTATS
This Optimizer option is normally set at installation. It
indicates whether the Optimizer component updates the
statistics data set with the optimization results.
Synonym:
Component:
When used:
STA
Optimizer
Compile-time
Options Listing
Chapter 11: Using Options 313
Option
STIMERM ON|OFF
Specifies whether Analyzer uses STIMERM instead of
STIMER for time sampling. If XTIME OFF is specified,
this option is ignored.
Synonym:
Component:
When used:
None
Analyzer
Execution-time
SUBRNGCK|NOSUBRNGCK
Specifies whether Optimizer generates code which tests
each subscript or index value before it is used to ensure
that it lies within the range defined for the subscripted
data item. A subscript or index range violation results in
a User 1125 abend from Detector or Extended Detector,
or a S0C1 if neither Detector nor Extended Detector is in
effect at execution-time. Consult the section on
subscript range checking in the chapter ―Using
Detector‖ for details on usage. This option also forces
the DTECT option except when CICS, IDMSDC, or
TPMON is specified at compile-time or EDS=YES is
specified in the defaults.
Synonym:
Component:
When used:
SUB, SSRANGE, or SSR
Detector
Compile-time
SYM|NOSYM
Indicates whether Optimizer writes symbolic
information for the program to the PROTSYM file. If SYM
is specified, a valid initialized PROTSYM file must be
allocated to the PROTSYM DD. Analyzer options
XCOUNT and XTIME force the SYM option.
Synonym:
Component:
When used:
CSL
Optimizer
Compile-time
SYMDSN dsname
Specifies to dynamically allocate the data set name of a
symbolic file for retrieving symbolic information. The
data set can be a PROTSYM file or a CSL library. The
DDNAME used for dynamic allocation is determined by
the value of SYMDD in the installation defaults module
CAOUDFRX. SYMDSN is ignored when that DDNAME is
already allocated. Using SYMDSN does not prevent the
searching of other symbolic files defined in your
installation defaults.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
TITLE[=xxxxxxxx]|NOTITLE
Specifies to produce a title banner page using the
COBOL program ID or a title name that you specify. The
valid value is eight alphanumeric characters.
Synonym:
Component:
When used:
None
Optimizer
Compile-time
Options Listing
314 User Guide
Option
TPMON|NOTPMON
Specifies to optimize the program for a teleprocessing
environment other than CICS or IDMSDC. This includes
DCI, HOGAN, and SHADOW. TPMON need not be
specified for programs to run in an IBM environment.
This option is designed for programs to be run in
user-written teleprocessing environments or in other
teleprocessing monitors such as INTERCOM.
TPMON suppresses XCOUNT, DTECT, PFLOW, XTIME,
DBGSLEEP, and PARMCHK.
Synonym:
Component:
When used:
TPM
Optimizer
Compile-time
UCB ON|OFF
Prints unit control blocks for all open files in an Abend or
Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
USERID 'your text'| 'CA'
Indicates a user identification statement (1-60 bytes).
You can change the default title during product
installation. It is included in all report headings except
for SOURCEMAP and PROCDIV, if a STATS file is not
available.
Synonym:
Component:
When used:
None
Analyzer, Detector
Report-time, Execution-time
VSAMIDX ON|OFF
Prints the VSAM indexed control blocks for the index
portion of an open VSAM file along with the control
blocks for the data portion in an Abend or Snap report.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time
WORKSTOR ALL|NONE
Indicates whether Detector or Extended Detector
displays (ALL) or suppresses (NONE) the program's
Working-Storage Section display.
Synonym:
Component:
When used:
None
Detector, Extended Detector
Execution-time, view-time
WSINIT|NOWSINIT
Initializes all Working-Storage items which are not
initialized by a VALUE clause to X'50'. This option also
forces the DTECT option, except when CICS, IDMSDC,
or TPMON are specified at compile-time, or EDS=YES is
specified in the defaults. For details on usage, see
Detection of Uninitialized Working-Storage (WSINIT) in
the chapter ―Using Detector.‖
Synonym:
Component:
When used:
WSI
Detector, Extended Detector
Compile-time
WTO ON|OFF
Indicates whether to send a message describing the
abend to the job log (using WTO with ROUTCDE=11).
Synonym:
Component:
When used:
None
Extended Detector
Execution-time
Options Listing
Chapter 11: Using Options 315
Option
XCOUNT|NOXCOUNT
Indicates whether to invoke Analyzer's Count feature at
execution-time. If you specify XCOUNT, then MOFFSET
and CSL are forced. If you specify CICS, IDMSDC, or
TPMON then XCOUNT is suppressed.
Synonym:
Component:
When used:
XCO
Analyzer
Compile-time
XCOUNT ON|OFF
Specifies whether to collect count measurement data. If
you specify XCOUNT at compile-time, you can specify
XCOUNT either ON or OFF at execution-time.
Synonym:
Component:
When used:
None
Analyzer
Execution-time
XDATA(your-text)
Specifies default text to insert into the user stamp at
compile-time. When used without user exit CAOPUX01,
this text is inserted into the user stamp in the optimized
object module. When used in conjunction with user exit
CAOPUX01, this text is passed to the user exit in the
text buffer pointed to by R1, and its length is passed in
R0.
Synonym:
Component:
When used:
None
Optimizer
Compile-time
XMMAP|NOXMMAP
Specifies whether Optimizer suppresses data map
information which cannot be merged with the source
listing. An example of data map information which
cannot be merged is COPY...SUPPRESS statements.
XMMAP can only be used when MMAP is specified.
Synonym:
Component:
When used:
XMM, XMDMAP, or XMD
Optimizer
Compile-time
XREF|NOXREF
Specifies whether Optimizer produces a standard
compiler cross-reference of all data items and
procedure-names. XREF is mutually exclusive of CXREF
with CXREF taking precedence
Synonym:
Component:
When used:
X or XRE
Optimizer
Compile-time
XREPORT ON|OFF
If this option is specified at execution-time and Counts
and/or Timings were taken, the Analyzer Reporter is
automatically invoked upon termination of the
application. This occurs for normal terminations, as well
as abending applications.
Note: You can still execute Analyzer Reporter as a
separate job step if you want by supplying a CAITIMSV
DD statement and specifying XREPORT OFF. See the
chapter ―Using Analyzer‖ for more information.
Synonym:
Component:
When used:
None
Analyzer
Execution-time
Options Listing
316 User Guide
Option
XTIME|NOXTIME
Indicates whether to invoke the Analyzer's Timings
feature at execution-time. If you specify XTIME, then
MOFFSET and CSL are forced. If you specify CICS,
IDMSDC, or TPMON, then XTIME is suppressed.
Synonym:
Component:
When used:
XTI
Analyzer
Compile-time
XTIME ON|FIRST|OFF
Using this option at execution-time takes timings during
the execution of the application program. You can
specify XTIME at execution-time in one of the following
ways:
ON (the default) initiates timings at the start of the first
COBOL program which has been optimized with XTIME.
FIRST starts timings at the first call to the Execution
Monitor from any program in the application. The
Execution Monitor is automatically invoked during
execution from any program compiled with DTECT,
FDCHECK, PFLOW, SUBRNGCK, WSINIT, XCOUNT, or
XTIME.
OFF indicates that no timings are to be taken.
Synonym:
Component:
When used:
None
Analyzer
Execution-time
Appendix A: Data Sets and Block Sizes 317
Appendix A: Data Sets and Block Sizes
This appendix specifies data sets, block sizes, and device types used by
CA Optimizer/II. The following are the types of DDs:
■ Compile-time DDs
■ Execution-time DD
Compile-time DDs
This section provides the list of compile-time DDs.
DD Statement Description
SYSUT1
SYSUT2
SYSUT3
SYSUT4
SYSUT5
SYSUT6
SYSUT7
CAIUT1
CAIUT2
Block size is automatically determined
based on the amount of available
storage and the device type.
CA Optimizer/II controls the block
size.
CAISTATS Block size is fixed at 136 and must not
be altered.
Execution-time DD
This section provides the execution-time DD, CAITIMSV.
CAITIMSV
Default block size is 1020. You can specify any multiple of 20. If you specify
an invalid number, it is rounded down to a multiple of 20 with 20 being the
smallest block size allowed.
Note: Analyzer Reporter accepts concatenated CAITIMSV files with mixed
block sizes in any order.
Appendix B: Troubleshooting 319
Appendix B: Troubleshooting
This appendix contains information about identifying and resolving problems.
Collect Diagnostic Data
The following section helps yo categorize the problem your site has encountered.
Then, follow the instructions in each section to generate useful diagnostic data.
All Problems (except EOS)
Gather the listing of the program compiled/optimized with the following options
(along with any others used at your site):
For OS/VS COBOL include:
■ PMAP
■ MDMAP
■ CSXREF
■ BMAP
For COBOL II and above include:
■ LIST
■ MMAP
■ MXREF
■ BLIST
The full IBM system SYSUDUMP if an abend has occurred. Although there are
other products that, like Detector, produce very neat, easy to read, condensed
dumps appropriate for debugging user programs, they generally do not contain
enough information for our purposes.
All the JCL, JOBLOG information, and messages for the job that ended in error.
If an abend occurred in the CA Optimizer/II RTL or symbolic support is incorrect
for Analyzer or Detector, print the member listing from the PROTSYM or CSL file.
See examples later in this chapter for more information.
Collect Diagnostic Data
320 User Guide
The SYSPRINT output from execution of CAOUOPT, a utility program which
reports the installation options for CA Optimizer/II. Many problems can be
solved simply through inspection of the output from CAOUOPTS. Procedure
CAIOPTNS has been provided in CAI.CAIPROC for execution of CAOUOPTS. For
more information about this utility, see Options Summary in the chapter
"Utilities."
You may occasionally encounter a problem involving a COBOL program
purchased from another vendor that is considered proprietary. While you are
usually allowed to send the source listing on paper, you may not be permitted to
send it on tape. Please check. Arrangements can usually be made, including the
signing of nondisclosure agreements by CA.
Compile-/Optimize- time problems
Check all diagnostic information produced by Optimizer, such as MGT
SNAPSHOT, LEXICAL TEXT DISPLAY, PHASE-B SNAP. This information is only
produced if Optimizer abends; under normal circumstances, you do not see it.
EOS Problems
For a detailed discussion of the EOS diagnostic facilities, see the chapter "EOS
Usage Considerations" in the Installation Guide.
Gather:
The CICS transaction dump if an abend has occurred. Most EOS problems must
be resolved using a full CICS transaction dump. Other diagnostic displays may be
useful but generally do not contain enough information for our purposes.
If requested by CA Technical Support personnel, a dump of the EOS trace table.
The procedure for using the EOS trace facility and obtaining a dump of the trace
table is described in the chapter "EOS Usage Considerations".
The version/release, and modification level of the COBOL II or LE runtime system
being used in the CICS region.
The version/release, and modification level of CICS.
■ LIST
■ BLIST
The listing from an execution of the CAOUOPT utility.
Collect Diagnostic Data
Appendix B: Troubleshooting 321
Execution-time problems (excluding EOS)
Gather the following information on the execution environment:
In an Online Data Communication environment, the name of the package (if it is
not an in-house developed product), the version/release and maintenance level,
and a vendor contact, if available.
Non-COBOL programs being invoked by the program. Assembler language
subroutines may be of interest to us in resolving the problem. Have the source
available.
The CAIPRINT report, if applicable.
Formatting problems
Gather the following documentation:
Print the member listing from the PROTSYM or CSL file. See examples later in
this appendix for more information. For some problems, you may also be
required to unload one or more members from a PROTSYM file using the batch
utility IN25UTIL. For more information about unloading members with IN25UTIL,
see the Symbolic Guide.
Use IDCAMS REPRO to create a sequential file of your centra l VSAM repository.
(If the repository is very large or you only want to send the data for a single
report, you can copy the report to a temporary repository and REPRO that file.)
See Copying Repository Data for Diagnostic Purposes later in this chapter.
For clients that do not use the repository, CA Technical Support may require the
unformatted data used to generate the report. To provide that data, you will
need to add the following DD to your execution time JCL and rerun the job:
//CAIPRTWK DD DSN=data-set-name,DISP=(NEW,CATLG,CATLG),
// UNIT=SYSDA,SPACE=(CYL,(1,1)),
// DCB=(LRECL=133,BLKSIZE=13300,RECFM=FBA)
The data set can then be sent to CA as a BINARY file.
Interpret Diagnostic Data
322 User Guide
Symbolic Postprocessors
Review all output from the postprocessor for error messages. If any messages
are found, locate the message in the Symbolic Guide, then review the reason and
suggested action(s).
Gather the following documentation:
All output from the postprocessor
The listing file used as input to the postprocessor
Interpret Diagnostic Data
When you have collected the specified diagnostic data, write down your answers
to the following questions:
1. What was the sequence of events prior to the error condition?
2. What circumstances existed when the problem occurred and what action did
you take?
3. Has this situation occurred before? What was different then?
4. Did the problem occur after a particular PTF was applied or after a new
version of the software was installed?
5. Have you recently installed a new version of the operating system or the
COBOL compiler?
6. Has the hardware configuration (tape drives, disk drives, and so forth)
changed?
From your response to these questions and the diagnostic data, try to identify
the cause and resolve the problem.
Print a Symbolic File Member for Diagnostic Purposes
Appendix B: Troubleshooting 323
Print a Symbolic File Member for Diagnostic Purposes
There are two ways to print a symbolic file member or symbolic file directory.
Either method is adequate for diagnostic purposes.
Use the Viewer
Start the CA Optimizer/II Repository Viewer the way you normally do, then use
the SYM primary command to display the Symbolic Utilities menu. Select Option
1 (List) and enter the name of your PROTSYM or CSL file in the field provided.
Press Enter to list the contents of your symbolic file, then use the PRINT primary
command to print a copy of the display to a printer, file, or other desired
destination.
Once the directory is printed, enter the p line command next to any member to
print that member.
Use the Batch Utilities
Sample JCL is provided for three utility programs that can be used to display the
contents of your symbolic files:
■ CAOUCSLD—Use this program to generate a member list for your CSL
library.
■ CAORMAIN—Use the PRINTCSL function of CAORMAIN to print a member
from your CSL library.
■ IN25UTIL—Use the REPORT function of IN25UTIL to generate a list of
symbolic members in your PROTSYM, and use the PRINT function to print a
symbolic listing for any member.
Copy Repository Data for Diagnostic Purposes
CA Technical Support may require the data for one or more reports in your
CAIPRINT repository for diagnostic purposes. To provide that data, you will need
to create a sequential data set from your VSAM repository.
If your CAIPRINT repository is very large, or you only want to send the data for
selected reports, you can use the following steps to: 1) create a temporary VSAM
repository, 2) copy the required reports to that repository, and 3) create a
sequential data set from the temporary repository. Otherwise, you can skip
directly to "Creating a Sequential Data Set from a VSAM Repository."
Copy Repository Data for Diagnostic Purposes
324 User Guide
Create a Temporary VSAM Repository
Member RX85REPO in the CAI.CARXJCL library contains JCL to create and
initialize a CAIPRINT repository.
To create a temporary VSAM Repository
1. Make a copy of the JCL member and modify the appropriate fields, such as
the data set name, space, and volume. (Be sure to change the data set name
in both the CLUSTER and DATA definitions.)
2. Submit the JCL to create your temporary repository.
Copy a Report to a Temporary VSAM Repository
Use the COPY command of the CAIPRINT Repository Utility, CAOUPRTU, to copy
one or more reports from your central VSAM repository to the temporary
repository you just created.
For example, the following JCL copies the report for job TESTJOB from the
central VSAM repository (CAI.PRTLIB) to a temporary VSAM repository
(TEMP.PRTLIB).
// EXEC CAIPRTU
//PRTU.SYSIN DD *
ODSN CAI.PRTLIB
DSN TEMP.PRTLIB
COPY JOB EQ TESTJOB
/*
Note: If there is more than one report in the central VSAM repository with a job
name of TESTJOB, the example above copies all of the reports by that name.
Create a Sequential Data Set from a VSAM Repository
Use IDCAMS REPRO to create a sequential file from your VSAM repository. For
example, the following JCL creates a sequential file (TEMP.PRTLIB.BACKUP) from
a temporary VSAM repository (TEMP.PRTLIB).
//REPRO EXEC PGM=IDCAMS
//PRTLIB DD DSN=TEMP.PRTLIB,DISP=SHR
//BACKUP DD DSN=TEMP.PRTLIB.BACKUP,DISP=(NEW,CATLG),
// UNIT=SYSDA,VOL=SER=vvvvvv,SPACE=(CYL,(3,3),RLSE),
// DCB=(RECFM=FB,LRECL=4085,BLKSIZE=4085)
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
REPRO INFILE(PRTLIB) OFILE(BACKUP)
/*
Print the TIMSV File for Diagnostic Purposes
Appendix B: Troubleshooting 325
Print the TIMSV File for Diagnostic Purposes
The CAOUTSVD utility provides you with a facility to examine the contents of any
TIMSV file produced by Analyzer. The TIMSV file is used by Analyzer Reporter to
provide you with a hierarchical set of reports analyzing the CPU time distribution
or statement and paragraph counts in the application.
If for some reason Analyzer Reporter fails to generate the reports or generates
them incorrectly, the TIMSV file can be a valuable tool for diagnosing the error.
JCL to invoke the utility can be found in CAI.CAIPROC(CAOUTSVD).
Print the TIMSV File for Diagnostic Purposes
326 User Guide
Sample output from this utility is shown next:
COMPUTER ASSOC. - MAPPER II - EXTRACTOR FILE FORMATTED PRINT UTILITY
----- ----------- - ------ -- - --------- ---- --------- ----- -------
0-HEADER 86248 12.01.00.33(4,326,033 ) 1=MFT MDL=381 SYS=038J 0 7-JOBNME 80 GRJOB GO 0000
7-JOBNME 40 STEP1 0000
B-MAPPER CNT=10,000MTIME=0 XTIME=0 INTVL=384 REL=51 TICK=128 MINTVL=128 OPT=00 2-MODULE 1 *SYSTEM* SIZE=147,483,64F=00 00000000
-------- - -------- ------------------- --------
3-CSECT 1 *SYSTEM* SIZE=16,777,21 LOC= 0 SEGNO=1 SEGUP=0 F=00 .
.
. 2-MODULE 6 *REGION* SIZE=10,465,280F=00 00000000
-------- - -------- ------------------- --------
3-CSECT 6 *REGION* SIZE=10,465,28 LOC= 0 SEGNO=1 SEGUP=0 F=00 4-SAMPLE 6 E00058001014 * 4E910 * 060050001014 OPT=00 F=00
4-SAMPLE 4 FC73D34CE7AC * 20F0 * FB76D33CD34D OPT=04 F=00 -JQA
4-SAMPLE 4 F2F5D3448610 * 20E0 * FA33D350D360 OPT=04 F=00 -JQA 4-SAMPLE 4 F855EF7AD33E * 2120 * 18424A40862E OPT=04 F=00 -JQA
4-SAMPLE 4 FA33D350D360 * 20E6 * 18EF1AE8FC73 OPT=04 F=00 -JQA
1-TIMING CNT=20 WEIGHT=384 NEXT=384 MTIME=0 RTIME=11,500,854 4-SAMPLE 4 FA86D33BD34D * 2116 * 18E01AE8F855 OPT=04 F=00 -JQA
.
.
.
** CTF **0 . . . 4 . . . 8 . . . C . . . 0 . . . (0...4...8...C...0...)
81000000 00000000 00000000 00000000 00000000 ( )
** CTF **0 . . . 4 . . . 8 . . . C . . . 0 . . . (0...4...8...C...0...)
84DC0000 00000000 00000000 00002710 00000000 ( )
8-EXCPS 326 7 3030200E PGM=*.DD
8-EXCPS 326 18 3030200E STEPLIB
.
. .
8-EXCPS 323 1,055 3030200E CAITIMSV
END OF INPUT FILE **
VALUE OF SEARCH IS 0C 9-LLS 650-JQA
**RECORD COUNTS BY TYPE**
0 1 HEADER
1 78 TIMING .
.
. 256 90 ** CTF **
1,057 **TOTAL
Glossary 327
Glossary
Analyzer
An CA Optimizer/II component that processes the execution-time data gathered
in the CAITIMSV file and produces a variety of useful reports for performance
analysis and quality assurance. One of the reports is a copy of your source listing
displaying the number of times each statement was executed and the amount of
CPU time each statement required.
base locator cell
A one-word entry in the TGT which contains the address of a portion of Data
Division. A base locator is assigned to each file, each 01 item in the Linkage
Section, and to Working-Storage. If any one of these areas is greater than 4096
bytes, additional base locators will be allocated. BLWs are used for
Working-Storage, BLFs are used for files, and BLLs are used for the Linkage
Section.
BLF
See base locator cell.
BLL
See base locator cell.
BLW
See base locator cell.
bootstrap
An initialization routine which is executed upon entry to a COBOL II or an
optimized COBOL II program. For optimized COBOL II programs, two bootstraps
are executed, one for COBOL and one for Optimizer. These bootstrap routines
are link-edited together with the COBOL program.
CBL
See constant base locator.
compile/optimize-time
The phase of program development when the COBOL compiler and
CA Optimizer/II are invoked together to translate and optimize the program (as
opposed to execution-time, when the program is executed).
constant base locator
For optimized programs, a one-word entry in the PGT that contains the address
of a portion of the PGT if the PGT is greater than 4096 bytes. A CBL cell is
assigned for each 4K portion of the PGT starting 4K from the beginning of the
PGT. The last CBL may be assigned for less than a 4K portion.
328 User Guide
control parameters/options
Parameters or options which are generally governed by their installation defaults
and will only need to be specified in special cases.
CSECT
The control section, the smallest unit of code that can be assembled or compiled.
CSECTs are translated into object modules and combined with other CSECTs to
form load modules.
CSL
A compressed copy of the optimized COBOL source listing with enhancements.
The CSL is created and saved by the Optimizer for use by Analyzer and Detector.
default parameter/option
A parameter or option which has already been set for the system according to
the way it is assumed to be most generally used. You may change any default
option to your own specifications.
default parameter/option (fixed)
A parameter or option that has already been set for the system according to the
way it is to be used. You cannot override a fixed default option.
Detector
A feature of CA Optimizer/II which is used to debug COBOL programs in the
production and test environments. Detector prints out reports on diagnostics,
key storage data, snapshots of data areas, and data and decimal divide
exceptions.
diagnostic
A message which is displayed and/or printed out by the compiler or Optimizer
when it detects an error in your program.
DSECT
A section of an Assembler program used for mapping data.
dump
A hexadecimal display of the information currently in memory.
Execution Monitor
An CA Optimizer/II component which becomes a logical subroutine to a COBOL
program whenever Detector or Analyzer features are used. The Execution
Monitor provides the foundation for all runtime debugging and timing facilities. It
monitors the entry and exit from all COBOL programs in the run unit and
provides the logic for processing certain system events related to timings,
interrupts, and a formatted abend report by Detector.
Glossary 329
execution-time
The point at which your program is run or tested (as opposed to
compile/optimize-time when the program is compiled and CA-OPTIMIZEd). This
term is synonymous with ―runtime.‖
file
An ordered collection of data stored on an auxiliary storage device.
fixed parameter/option
A parameter or option that has been set at installation and that may not be
altered by the programmer at compile/optimize-time or at runtime.
forced parameter/option
A parameter or option that has been set or reset by CA Optimizer/II because of
a conflict with another requested option.
intercept
An CA Optimizer/II feature that provides for the interception of a program check
violation as the result of a data or decimal divide exception. Rather than abend,
the program is restarted with a value of 1 to circumvent the ―bad‖ data situation
during testing.
memory map
A breakdown of the global tables within a COBOL program and their
corresponding program locations. This can be a useful debugging tool. The
memory maps are displayed in full by Optimizer with the object listing.
object code
The machine language output by the compile/optimize step after it has
translated your source program.
optimize time
The time it takes to execute the compile and optimize step.
Optimizer
The Optimizer is a component of CA Optimizer/II which reduces the size and
execution-time of your program's object code by eliminating redundant machine
instructions without changing the processing or altering user-defined data areas.
Optimizer Stamp
A short section of each optimized COBOL program located immediately before
the Program Global Table (PGT). It identifies the CA Optimizer/II product code,
release number, data and time of compilation, and other information related to
the compilation.
option
A variable which is assigned a constant value at runtime or report-time for use in
controlling Analyzer and/or Detector.
330 User Guide
options page
The first page of the Optimizer Enhanced Source Listing which identifies the
compiler version and release number, compilation date and time of optimization,
Optimizer release number, selected and default options, and customer name and
location.
PBL
See procedure base locator.
PGT
See Program Global Table.
Procedure Base Locator
For optimized programs, a one-word entry in the PGT which contains the address
of a portion of the executable code in the Procedure Division. The portion of code
can be a maximum of 8 KB to 12 KB depending on the size of the program and
the options used.
procedure map
The procedure map printed out by Optimizer contains the following information
about your COBOL program: block cross reference data, base register
assignments, interleaved source code, and object code.
Program Global Table (PGT)
A section of a COBOL program that contains constants, literals, and certain base
locators that are used during program execution. The areas in the PGT will not be
modified when the program is executed.
PROTSYM
A VSAM relative-record data set (RRDS) used to store symbolic information used
for reporting.
report-time
The phase during which the Analyzer Reporter reports on the counts and/or
timings data gathered while the application was running. Report-time can occur
automatically after normal or abnormal termination of the application in the
same job step or as a separate job step.
run unit
A hierarchy of calling and called COBOL programs, the first entered being the
―main‖ program, and the hierarchy having the property that if any program in it
executes a STOP RUN, control passes to the caller of the ―main‖ program.
runtime
See execution-time.
Glossary 331
signature code
The COBOL II signature code is a short section of code and data located at the
start of the program. It contains information about the compilation and pointers
to specific tables and addresses within the program.
snapshot
A report about your COBOL program which is output each time a SNAP is
invoked. A snapshot consists of information about your program's address and
registers, contents of the file, working storage and linkage sections, memory
map, PERFORM Address Analysis, and the last nnnnn paragraphs executed prior
to the SNAP call.
sort
To place records in a predetermined sequence, such as in alphabetical order, by
means of a sort key (a field or a hierarchy of fields) within the record.
Task Global Table (TGT)
A section of a COBOL program that contains work areas, information, and base
locators that are used during execution of the program. Some areas in the TGT
can be modified when the program is executed.
text deck
See object code.
TGT
See Task Global Table.
timings
Data captured during application program execution using a technique called
time sampling. This occurs when the XTIME function is enabled. The timing data
is formatted by Analyzer into reports that indicate which parts of your program
use the most CPU time.
Index 333
Index
A
Abend • 59, 60, 68, 72, 73, 82, 83, 89, 135, 203
Assembler reports • 89
cause of • 135
COBOL reports • 73
interception and correction • 60
PL/I reports • 83
report • 59, 60, 68, 72, 82
debugging • 59
description • 68
locating instruction address • 68
module call sequence • 72
PFLOW • 82
tools • 60
statement location • 203
ACB • 297
VSAM control block • 297
ACTONLY Detector option • 297
Add to PROTSYM panel • 184
Address • 42, 68, 82
control return • 42
entry point • 68
MLIST • 82
MOFFSET • 82
AllFusion CAOptimizer/II • 14
benefits • 14
AllFusion CA-Optimizer/II • 245
AllFusion CA-Optimizer/II
load library • 245
ALTERed GO TO Table • 42
locations • 42
report description • 42
VN pointer • 42
AMB • 297
VSAM control block • 297
AMBL • 297
VSAM control block • 297
Analyzer • 203, 206, 207, 208, 209, 211, 226,
228, 231, 232, 233, 234, 236, 289, 294, 295,
296, 297
available options • 289
compile-time options • 294, 297
chart • 294
PROCDIV • 297
XCOUNT • 297
XTIME • 297
execution-time options • 294, 297
BINDER • 297
chart • 294
STIMERM • 297
XCOUNT • 297
XREPORT • 297
XTIME • 297
JCL • 208, 209
Optimizer component • 208
Optimizer options • 297
CNTXREF • 297
options • 206, 294, 295, 297
BINDER • 297
CNTXREF • 206
execution-time • 295
INSTRMAP • 297
NOSOURCEMAP ALL • 206
report-time guidelines • 295
SOURCEMAP • 297
STIMERM • 294, 297
USERID • 297
with Detector options • 295
XCOUNT • 206, 294
XREPORT • 206, 295, 297
XTIME • 206, 294, 297
overview • 203
Reporter • 234
execution considerations • 234
reports • 211, 226, 228
CAIOPTS File Processing • 211
Execution count cross-reference • 226
INSTRMAP • 228
report-time options • 207, 294, 296, 297
chart • 294
INSTRMAP • 297
SOURCEMAP • 296, 297
USERID • 207, 297
XREPORT • 207
source listing data • 203
usage considerations • 231, 232, 233, 236
counts • 231
multimodule environments • 232
multirun reports • 233
restrictions • 236
timings • 232, 233
334 User Guide
Analyzer options • 297
PROCDIV • 297
ASMINST • 297
abending assembler instruction • 297
Assembler reports • 89
B
background processing • 245
Base • 31, 55
locators • 31
unreferenced cells • 31
register assignments • 55
BINDER • 295, 297
Analyzer option • 295
execution-time • 295
binder API function calls • 297
BINFRMT option • 297
BLF • 55, 136
base locators • 55
cells with SUBRNGCK • 136
BLL • 55, 136
base locators • 55
cells with SUBRNGCK • 136
BLLMAX option • 297
BLOCKS • 297
Detector option • 297
execution-time • 297
BLV base locators • 55
BLW • 55, 136
base locators • 55
cells with SUBRNGCK • 136
BRANCH-OUT-TO-PERFORM RANGE • 42
Browse CA-Optimizer/II Errors panel • 249
Browse Output panel • 248
C
CA IDMS/DB report • 115
example • 115
CAIARII PROC • 210
CAICSLD • 275
CAILPAQ • 271
CAIMRSII • 262
CAIOPTII • 20, 64, 211
execute Optimizer • 20, 64
FDCHECK • 64
procedure • 20
SUBRNGCK • 64
job step • 211
CAIOPTS • 125, 158, 210, 212, 289
Analyzer and Detector Example • 210
DD statement • 289
card-image data set • 289
file processing report • 125, 212
CAIPRINT - printed output statement • 209
CAIPRINT Repository utility • 277
CAIPRINT Repository ViewerSee Repository
Viewer • 151
CAISTATS • 268
definition • 268
CAISTRII • 268
CAISYM • 210
JCL • 210
CAITIMSV • 209, 210
definition • 209
execution JCL • 209, 210
CAODSNAP • 20, 66
making a SNAP call • 66
SNAP routine • 20
CAOUCSLD • 275, 323
printing CSL library members • 323
CAOUDFRX • 151, 187
CAOULPAQ • 271
CAOUMRS • 262
CAOUOPTS • 273
CAOUPRTU • 277
CAOUSRPT - Statistics Report • 268
CAOUTSVD • 325
analyzing the TIMSV file • 325
sample output • 325
Cause of abend • 135
CBL base locator • 55
CEEDUMP • 297
LE environment • 297
CICS • 19, 47, 236, 297
flow-of-control paths • 47
Optimizer compile-time options • 19, 297
restrictions • 236
CLIST compile-time option • 19
CMS - Analyzer restriction • 236
CNTXREF • 206, 226, 296
Analyzer options • 206, 226, 296
execution-time • 206
report-time • 226, 296
COBOL source listing • 296
CNTXREF option • 297
COBCC compile-time option • 297
COBOL • 54, 78, 217, 256, 258, 259, 263, 265,
266
Index 335
compilers • 263
CSECT • 217, 263, 265, 266
Analyzer Module Summary • 217
Detailed Report • 263
Load Library Analysis Detailed Report • 263
MRS • 266
Summary Report • 265
for MVS and VM • 78
DSA • 78
language HELP • 256
language HELP for HELP • 258
line number • 54
reserved word HELP • 258
reserved word syntax • 259
topic HELP • 258
verb • 54
COBOL and C usage considerations • 240
COBOL CSECTs • 262
MRS • 262
COBOL for OS/390 and VM • 78
COBOL II • 24, 289, 292, 293, 294
combining options with Analyzer options •
294
options • 24, 289, 292, 293
in effect • 24
processing precedence • 289
with Detector options • 292, 293
COBOL Language HELP panel • 256
COBOL load library • 245
COBOL reports • 73
Codes • 27, 31
MMAP • 31
MXREF • 27
Coding • 207, 289
options • 289
rules • 207
combining options • 289, 292, 293, 294, 295
COBOL II with Analyzer • 294
Detector • 292, 293, 295
and AllFusion CA-Optimizer/II • 292, 293
and COBOL II • 292, 293
with Analyzer options • 295
Optimizer with COBOL II • 289
commands • 153, 155, 156, 166, 167, 172, 173,
175, 188, 255
HELP • 255
KEEP • 172
line • 156, 167
LOCATE • 175
NOTES • 173
primary • 155, 166
Repository Viewer • 188
SETINDEX • 153
TAG • 175
Comparison - NOOPT • 50
Compiler • 19, 49, 52, 53
data map (MAP) • 19, 53
merged data map • 19
source listing • 52
statistics report • 49
compile-time • 18, 26, 27, 31, 35, 37, 54, 55,
60, 64, 226, 285, 292, 297
Optimizer options • 297
CICS • 297
COBCC • 297
COPT • 297
CXREF • 297
DECK • 297
DTECT • 297
IDMSDC • 297
LINECOUNT • 297
LOWER • 297
MAP • 297
MMAP • 297
MOFFSET • 297
NOCXREF • 297
OPTRC • 297
SOURCE • 297
SPM • 297
STATS • 297
TITLE • 297
TPMON • 297
XDATA • 297
XMMAP • 297
XREF • 297
options • 18, 26, 27, 31, 35, 37, 54, 55, 60,
64, 226, 292, 297
CICS • 18, 297
CLIST • 18
COPT • 18
CXREF • 18, 37
DBGSLEEP • 60
DCRDISP • 18, 297
DECK • 18
DMAP • 18
FDCHECK • 60
IDMSDC • 18
INTERTST • 18
336 User Guide
JCL • 64
LIST • 18, 55
listing • 292
MAP • 18
MDMAP • 18
MLIST • 18
MMAP • 18, 31
MOFFSET • 18, 35
MXREF • 18, 26
NOCICS • 297
NOCOPT • 18
NOSOURCE • 18
NUM • 226
OBJECT • 18
OFFSET • 18, 54
OPTRC • 18, 35
PARMCHK • 60
PFLOW • 60
PMAP • 18
SELECT • 18
SUBRNGCK • 60
SYM • 18
TPMON • 18
WSINIT • 60
XREF • 18, 27
options summary • 18
overview • 285
Condensed • 37, 54
Cross-Reference Report (CXREF) • 37
OPTIMIZEd object code listing (OFFSET) • 54
Control • 42
return address • 42
COPT • 297
Optimizer option • 297
Count and Timing Report • 220
example • 220
field descriptions • 220
Counts • 203, 231
CPP • 297
compile-time options • 297
DCRDISP • 297
options • 297
DCRDISP • 297
CPU • 50, 234
performance • 50
time analysis • 234
Cross-Reference • 19, 55, 297
CXREF • 19
debugging • 55
documentation • 55
MXREF • 19
XREF • 19, 297
CSECT • 228, 265, 296
COBOL • 265
INSTRMAP • 228, 296
non-COBOL • 265
CSL • 59, 275, 323
Detector reports • 59
printing • 323
summary • 275
CSL Directory selection list panel • 178
CSL library • 323
member information • 323
CSL Summary report • 275
CXREF • 19, 27, 37, 297
and MXREF • 27
Optimizer compile-time option • 19
Optimizer option • 297
sample report • 37
D
data bytes • 267
Data Division • 26, 27, 31, 53, 74, 128
displays • 74, 128
dumped • 128
merged • 128
MMAP contents • 31
Optimizer option • 26, 31, 53
MAP • 53
MMAP • 31
MXREF • 26
Sample Listing • 27, 31
MMAP • 31
MXREF • 27
Data Management Control Block(s) • 60, 292
BLOCKS • 292
DCB • 292
DEB • 292
IOB • 292
report customization • 60
UCB • 292
data set • 139, 210
counts and timings • 210
EXECDAT • 210
dynamic allocation • 139
Data Size • 263
DB2 • 107
report • 107
Index 337
example • 107
DB2ACTIV • 297
summary information • 297
DBGAWAKE • 60, 134
debugging facilities • 134
Detector option • 60
execution-time • 60
DBGAWAKE option • 297
DBGSLEEP • 60, 134
debugging facilities • 134
Detector option • 60
compile-time • 60
DBGSLEEP option • 297
DCB Detector • 66, 297
Abend report • 66
execution-time option • 297
DCRDISP • 19, 31, 297
decimal byte displacement • 297
merged data map contents • 31
Optimizer compile-time option • 19
DD • 209, 234
statement • 209, 234
DEB - Detector execution-time option • 297
Debugging facility • 60, 134
Detector • 60, 134
DECK Optimizer compile-time option • 19, 297
Defaulted Options panel • 247
Delete CA-Optimizer/II Listing Data Sets panel •
251
deleting • 157, 180
member from symbolic file • 180
reports • 157
Detector • 59, 60, 64, 66, 71, 74, 99, 107, 115,
121, 128, 134, 138, 139, 142, 148, 151, 289,
295, 297
available options • 289
compile-time options • 60, 297
DBGAWAKE • 60
DBGSLEEP • 60, 297
FDCHECK • 60, 297
INTERCEPTS • 60
listing • 60
PARMCHK • 60
PFLOW • 60
SNAP • 60
SUBRNGCK • 60, 297
WSINIT • 60
Debugging facilities • 134, 138, 139
DBGAWAKE • 134
DBGSLEEP • 134
INTERCEPTS • 139
PFLOW • 138
SNAP • 138
diagnostics - Snap report • 59
execution-time options • 60, 297
ACB • 297
ACTONLY • 297
AMB • 297
AMBL • 297
BINFRMT • 297
BLOCKS • 297
CEEDUMP • 297
DB2ACTIV • 297
DBGAWAKE • 297
INTERCEPTS • 297
INTERTST • 297
IOB • 297
LINKAGE • 297
listing • 60
MEMMAP • 297
PRTLIB • 297
PRTREPT • 297
SYMDSN • 297
UCB • 297
VSAMIDX • 297
facilities • 60
hierarchy of information • 148
JCL compile-time example • 64
options • 295, 297
ACB • 297
ACTONLY • 297
AMB • 297
AMBL • 297
ASMINST • 297
BINFRMT • 297
BLOCKS • 297
CEEDUMP • 297
DB2ACTIV • 297
DBGAWAKE • 297
DBGSLEEP • 297
DUMP • 297
FDCHECK • 297
GRPADDR • 297
INTERCEPTS • 297
INTERTST • 297
IOB • 297
LINKAGE • 297
MEMMAP • 297
338 User Guide
MERGEDB • 297
MRGAUTO • 297
MRGBASED • 297
MRGCNTLD • 297
MRGDATA • 297
MRGDSECT • 297
MRGFILES • 297
MRGLINK • 297
MRGLOCAL • 297
MRGPARMS • 297
MRGSTAT • 297
MRGWORK • 297
MXREF • 297
OBJECT • 297
OCCURS • 297
OFFSET • 297
PRTLIB • 297
PRTREPT • 297
SUBRNGCK • 297
SYMDSN • 297
with Analyzer options • 295
reports • 66, 71, 74, 99, 107, 115, 121, 128
abend • 66
CA IDMS/DB • 115
data division displays • 74
DB2 • 107
IMS • 99
instruction analysis • 71
intercepts • 66, 121
merged example • 128
SNAP • 66
Repository Viewer • 151
usage considerations • 139, 142
dynamic allocation • 139
restrictions • 142
with IMS • 139
Diagnostic • 49, 59
messages • 49
reports • 59
Director control routine • 18
Displacement • 31
decimal • 31
hexadecimal • 31
Distinctive counts • 231
DMAP compile-time option • 19
DSA • 41, 66, 78
memory map • 41, 78
memory mapall • 66
DTECT option • 297
DUMP • 297
Detector option • 297
dynamic allocation • 139
Dynamic Save Area memory map (DSA) • 41
E
electronic notepad • 158, 173
using • 173
Enhanced source listing • 17, 23, 24, 26
Merged Cross-Reference • 26
Options Page • 24
report • 17, 23
features • 17
sequence • 23
environments • 143
Extended Detector • 143
EOS • 237, 238, 239, 240, 241
abend report • 239
COBOL and C usage considerations • 240
EOS COBOL and non-EOS COBOL usage
considerations • 240
execution-time abends • 239
execution-time messages • 238
execution-time options • 237
system requirements • 241
EOS (Extended Optimization Support) for
CICSSee EOS • 237
Establishing option values • 287
EXCP counts • 215
Execute Optimized Program panel • 252
Execution Monitor • 66, 125, 126, 139, 212,
226, 232
Analyzer Reporter • 226
CNTXREF • 226
producing application timings • 232
reports • 66, 125, 126, 212
description • 66
file processing • 125, 212
summary • 126
summary report field descriptions • 126
using dynamic allocation facilities • 139
Execution statistics - sample numbers • 233
execution-time • 17, 60, 64, 121, 289, 297
coding options • 289
Detector options • 297
UCB • 297
VSAMIDX • 297
Execution Monitor Options • 297
LINECOUNT • 297
Index 339
Optimizer options • 297
REGMAX • 297
RPL • 297
options • 60, 64, 121, 297
ACB • 297
ACTONLY • 297
AMB • 297
AMBL • 297
ASMINST • 297
BINDER • 297
BINFRMT • 297
BLLMAX • 297
BLOCKS • 297
CEEDUMP • 297
DBGAWAKE • 60
INTERCEPTS • 60, 121
JCL • 64
LOGROS • 297
LOGTSO • 297
LOGUNI • 297
MERGDB • 297
MRGAUTO • 297
MRGBASED • 297
MRGCNTLD • 297
MRGDATA • 297
MRGDSECT • 297
MRGFILES • 297
MRGLINK • 297
MRGLOCAL • 297
MRGPARMS • 297
MRGSTAT • 297
MRGWORK • 297
MXREF • 297
OBJECT • 297
OCCURS • 297
OFFSET • 297
PARMCHK • 60
PFLOW • 60
RPTSZ80 • 297
SNAP • 60
STIMERM • 297
WTO • 297
overview • 289
reduction • 17
Exits • 35, 42
fall-through • 42
PERFORM range • 35
Extended Detector • 141, 143, 145, 146, 148,
149, 151, 292, 297
compile-time options • 292
listing • 292
environments • 143
production • 143
test • 143
execution-time options • 292, 297
BLLMAX • 297
listing • 292
LOGROS • 297
LOGTSO • 297
LOGUNI • 297
RPTSZ80 • 297
WTO • 297
hierarchy of information • 141
JCL Requirements • 145
options • 297
BLLMAX • 297
LOGROS • 297
LOGTSO • 297
LOGUNI • 297
RPTSZ80 • 297
WTO • 297
reports • 143, 146
abend • 143
for COBOL programs • 146
for non-COBOL programs • 146
reports, suppressing • 146
Repository Viewer • 151
usage considerations • 149
with LE • 148
Extended Detector Options • 292
Data Management control blocks • 292
BLOCKS • 292
DCB • 292
DEB • 292
IOB • 292
UCB • 292
Log and notify options • 292
LOGROS • 292
LOGTSO • 292
LOGUNI • 292
WTO • 292
report control • 292
ASMINST • 292
BLLMAX • 292
COBONLY • 292
CSLDSN • 292
DB2ACTIV • 292
DUMP • 292
340 User Guide
FILES • 292
FIRST128 • 292
GRPADDR • 292
LINECNT • 292
LINKAGE • 292
LOCALSTOR • 292
MEMMAP • 292
MERGEDB • 292
MRGDATA • 292
MRGFILES • 292
MRGLINK • 292
MRGLOCAL • 292
MRGWORK • 292
OCCURS • 292
PRTREPT • 292
RPTSZ80 • 292
SAVEAREA • 292
SNAP • 292
SYMDSN • 292
WORKSTOR • 292
VSAM control blocks • 292
ACB • 292
AMB • 292
AMBL • 292
PLH • 292
RPL • 292
VSAMIDX • 292
Extended Optimization Support (EOS) for
CICSSee EOS • 237
F
Facilities • 60, 297
abend interception and correction • 60, 297
detecting • 60, 297
invalid references • 60, 297
unitialized working storage • 60
enabling options • 60
paragraph flow analysis • 60, 297
parameter list validity checking • 60
program spot analysis • 60
report customization • 60
subscript range checking • 60, 297
Fall-through exit - PERFORM range • 42
FDCHECK • 297
Detector option • 297
FDCHECK Detector option • 60, 136
description • 60
error analysis • 136
features • 17, 21
enhanced source listing • 17
unsupported • 21
Field descriptions - DSA • 41
Field descriptions - TGT • 40
File section display • 74
FILES • 60, 297
Detector option • 297
report customization • 60
FIND command • 189
FIRST128 • 60, 297
Detector execution-time option • 297
report customization • 60
Flags - PERFORM Range • 35
Flow-of-control paths - CICS • 47
foreground processing • 245
formatting options, reports • 158
G
Global Symbolic Files panel • 187
GOBACK - PERFORM ranges • 42
GRPADDR • 297
group address • 297
H
HANDLE • 47
commands • 47
implied branches • 47
HELP • 190, 253, 255, 256, 258, 259
COBOL language • 256
COBOL language reserved word • 258
COBOL language topic HELP • 258
commands • 190, 255
exiting • 256
exiting COBOL language HELP • 259
invoking • 253
menu panel • 253
PF keys • 255
HELP Format Notation panel • 259
Hexadecimal • 40, 41, 42
address - branch destination • 42
location - DSA • 41
location - TGT • 40
hierarchy of information • 141, 148
Detector • 148
Extended Detector • 141
HOGAN • 236
Analyzer restriction • 236
Index 341
I
Identifying logic errors - PERFORM range • 42
IDMSDC • 236
Analyzer restriction • 236
IDMSDC Optimizer compile-time option • 297
Implied branches - PERFORM Ranges • 47
IMS • 99, 139
Detector • 139
report • 99
example • 99
Index cell • 31
MMAP • 31
TGT • 31
Initialization Summary • 272
Report • 272
INSTRMAP • 228, 294, 296, 297
Analyzer option • 294, 296, 297
chart • 294
printing by CSECT name • 297
report-time • 296
sample listing • 228
time measurement • 296
Instruction • 228
detail report • 228
example • 228
hot spots • 228
INTERCEPTS • 60, 66, 121, 297
Detector option • 60, 297
execution-time • 60, 297
reporting • 60
report • 121
example • 121
fields • 121
reporting • 66
INTERCEPTS Detector option • 59
description • 59
INTERTST • 297
Detector option • 297
Invalid file reference • 136
Invocation panel • 245
Invoke Management Reporting System panel •
253
Invoking • 20
CAIOPTII • 20
Invoking CAOUTSVD - timing facility JCL • 325
IOB • 297
Detector option • 297
J
JCL • 20, 64, 208, 209, 210, 211, 262, 268, 273,
277
Analyzer • 208, 209, 210, 211
compile-time • 208
execution-time • 209
report-time • 210, 211
CAIOPTII • 64
CAIPRINT Repository utility • 277
compile-time • 64
execution-time • 64
MRS • 262
optimizing • 20
Options summary • 273
Runtime • 64
statistics reporting program • 268
K
KEEP command • 172, 191
Keep Window • 172
L
LE • 148
Extended Detector • 148
LE/370 • 97
runtime • 97
Library statistics • 265
Line number references • 27
LINECOUNT • 60, 297
Execution Monitor Execution-time option •
297
Optimizer Compile-time option • 297
report customization • 60
LINKAGE • 60, 75, 297
Detector execution-time option • 297
report customization • 60
section display • 75
Linkage section display • 133
link-edited • 20
CAODSNAP • 20
LIST • 19, 23, 55
object code • 55
Optimizer • 19, 23, 55
compile-time option • 19, 55
reports • 23
listing • 184, 206
add to a PROTSYM file • 184
Analyzer • 206
342 User Guide
compile-time options • 206
execution-time options • 206
runtime options • 206
Load • 217, 245
libraries • 245
AllFusion CA-Optimizer/II • 245
COBOL • 245
module • 217
Load Library Analysis Detailed Report • 263
Local-Storage Section • 66, 75, 124
displays • 75
snapshot • 124
LOCATE command • 175, 192
locking reports • 158
Log and notify options • 292
LOGROS • 292
LOGTSO • 292
LOGUNI • 292
WTO • 292
LOGROS • 297
log to CA Roscoe user • 297
LOGTSO • 297
log to TSO user • 297
LOGUNI • 297
log to Unicenter Network and Systems
Management console • 297
LOWER • 297
Optimizer compile-time option • 297
M
Management Reporting System (MRS)See MRS
• 253
MAP • 19, 53, 297
Optimizer option • 19, 53, 297
merged data map • 297
sample listing • 53
table • 19
MDMAP Optimizer option • 19
compile-time description • 19
MEMMAP • 60, 297
Detector execution-time option • 297
report customization • 60
Memory map • 38, 39, 40, 41, 78
area DSA • 41
cells • 38, 39, 40, 41
display • 78
CGT • 78
PGT • 78
TGT • 78
table • 38, 39, 40
PGT • 38, 39
TGT • 40
Merged • 26, 31, 35
Condensed Procedure Division - hexadecimal
location • 35
Cross-Reference - MXREF • 26
Data Map • 31
description • 31
MMAP • 31
OFFSET (MOFFSET) • 35
merged display options • 128
MERGEDB • 297
detector mapping • 297
MLIST • 19, 82
address references • 82
compile-time options • 19
MMAP • 17, 19, 23, 24, 27, 31, 53, 297
codes • 31
compatibility with MXREF • 27
contents • 31
DCRDISP • 31
index cell • 31
NODCRDISP • 31
Optimizer option • 19, 53, 297
description • 19
merged data map • 297
reports • 53
options page legend • 24
reports generated • 23
sample listing • 31
source listing report features • 17
Module • 66, 72, 209, 217
call sequence • 66, 72
summary report • 209, 217
MOFFSET • 17, 19, 23, 27, 35, 42, 68, 82
address references • 82
branching • 42
compatibility with MXREF • 27
entry point address • 68
Optimizer option • 19
description • 19
PERFORM ranges • 42
reports generated • 23
sample listing • 35
source listing report features • 17
MOFFSET option • 297
MRGAUTO • 297
merging options • 297
Index 343
MRGBASED • 297
merging options • 297
MRGCNTLD • 297
merging options • 297
MRGDATA • 297
merging options • 297
MRGDSECT • 297
merging options • 297
MRGFILES • 297
map the FILE SECTION display • 297
MRGLINK • 297
LINKAGE SECTION • 297
MRGLOCAL • 297
Local-Storage Section • 297
MRGPARMS • 297
PL/I parameter storage • 297
MRGSTAT • 297
PL/I static storage • 297
MRGWORK • 297
WORKING-STORAGE-SECTION • 297
MRS (Management Reporting System) • 253,
262, 266, 267
about • 262
invoking • 253
JCL • 262
OS/VS COBOL reporting • 267
Statistics report • 267
usage considerations • 266
Multimodule • 232
environment • 232
Multiple references - MXREF • 27
Multirun reports • 233
MXREF • 17, 19, 23, 24, 26, 27
compatability • 26
data and procedure name • 27
definition • 27
reference • 27
Multiple references • 27
Optimizer option • 19
compile-time • 19
options page legend • 24, 27
reports generated • 23
Sample Listing • 27
source listing report features • 17
N
Nested program referencing • 27
NO EXIT - unconditional GOBACK • 42
NOCICS • 297
Optimizer option • 297
NOCOPT • 19, 297
compile-time options • 19
Optimizer option • 297
NOCXREF • 297
Optimizer option • 297
NODYN • 20
NOFDCHECK • 297
Detector option • 297
non-COBOL CSECTs • 265
NOSOURCE • 19, 297
Optimizer description • 19
source listing option • 297
NOSOURCEMAP • 206, 296, 297
Analyzer option • 206, 297
execution-time • 206
program reports • 296
NOTES command • 173, 192
NOXREF • 297
Optimizer option • 297
NULL • 42
code • 42
O
object code • 19, 55
GNs • 55
options • 19
PNs • 55
OBJECT Optimizer option • 19
description • 19
OCCURS • 297
maximum table occurrences • 297
OFFSET • 19, 54, 68
entry point address • 68
Optimizer option • 19, 54
compile-time • 19, 54
OFL - base locator • 55
Open Files Report • 96
Optimization techniques • 17
Optimizer • 17, 18, 19, 21, 24, 31, 266, 297
Analyzer options • 297
CNTXREF • 297
compile-time options • 18, 31, 297
CICS • 297
COBCC • 297
LOWER • 297
MAP • 297
MMAP • 31, 297
MOFFSET • 297
344 User Guide
NOCICS • 297
SYM • 297
TITLE • 297
TPMON • 297
options • 18, 19, 24, 31, 266, 297
CICS • 18
CLIST • 18
COPT • 18
CXREF • 18
DCRDISP • 18
DECK • 18
DMAP • 18
IDMSDC • 18
in effect • 24, 266
INTERTST • 18
LIST • 18
MAP • 18
MDMAP • 18
MLIST • 18
MMAP • 18, 31
MOFFSET • 18
MXREF • 18
NOCOPT • 18
NOSOURCE • 18
OBJECT • 18
OFFSET • 18
OPTRC • 18, 19
PMAP • 18
SELECT • 18
SYM • 18, 297
TPMON • 18
XREF • 18
overview • 17
usage considerations • 21
Optimizer • 297
Optimizer
compile-time options • 297
Optimizer
compile-time options
PRTCOPY • 297
Optimizer
options • 297
Optimizer
options
PRTCOPY • 297
Optimizer options • 18
Options • 19, 23, 26, 27, 35, 37, 40, 53, 54, 55,
57, 60, 66, 121, 134, 135, 136, 137, 138,
139, 206, 207, 220, 226, 228, 233, 285, 286,
287, 289, 292, 296, 297
ACTONLY • 297
alphabetized listing • 297
AMB • 297
AMBL • 297
Analyzer • 206, 297
PROCDIV • 297
summary table • 206
Analyzer compile-time • 297
XCOUNT • 297
XTIME • 297
Analyzer execution-time • 297
XCOUNT • 297
XREPORT • 297
XTIME • 297
Analyzer report-time • 207, 220, 228, 233,
296, 297
CNTXREF • 296
consolidation • 233
CSECT • 296
INSTRMAP • 228, 297
PROCDIV • 296
SOURCEMAP • 296, 297
SOURCEMAP sample listing • 220
USERID • 207, 297
XREPORT • 207
ASMINST • 297
BINDER • 297
BINFRMT • 297
BLLMAX • 297
BLOCKS • 297
CEEDUMP • 297
CICS • 19, 297
CNTXREF • 226, 296, 297
COBCC • 297
COBOL II • 289
coding • 285, 289
combining Optimizer with COBOL II • 289
compile-time • 297
TITLE • 297
TPMON • 297
COPT • 297
CXREF • 37
data management control block • 297
BLOCKS • 297
DCB • 297
Index 345
DEB • 297
INTERTST • 297
IOB • 297
DB2ACTIV • 297
DBGAWAKE • 297
DBGSLEEP • 297
DCB • 297
DCRDISP • 297
DEB • 297
DECK • 297
description • 19
CICS • 19
CLIST • 19
CXREF • 19
DCRDISP • 19
DECK • 19
DMAP • 19
LIST • 19
MAP • 19
MDMAP • 19
MLIST • 19
MMAP • 19
MOFFSET • 19
MXREF • 19
NOCOPT • 19
NOSOURCE • 19
OBJECT • 19
OFFSET • 19
OPTRC • 19
PMAP • 19
SELECT • 19
XREF • 19
Detector compile-time • 60, 134, 135, 136,
297
DBGSLEEP • 60
debugging facilities • 134
descriptions • 60
DTECT • 297
FDCHECK • 297
listing • 60
PARMCHK • 60
PFLOW • 60, 297
SSRANGE • 297
SUBRNGCK • 60, 135, 297
uninitialized working storage • 136
WSINIT • 60, 297
Detector execution-time • 60, 66, 121, 134,
138, 139, 297
abend interception & correction • 60
ACTONLY • 297
BLOCKS • 297
correcting interrupts • 139
DBGAWAKE • 60, 134
descriptions • 60
DUMP • 297
FDCHECK • 60
FILES • 297
FIRST128 • 297
intercepts • 121, 139, 297
LINKAGE • 297
listing • 60
MEMMAP • 297
PARMCHK • 60, 297
PFLOW • 138, 297
PGM • 297
reporting on interrupts • 66
SAVEAREA • 297
SAVEHEAP • 297
SHOWHEAP • 297
SHWUNMRG • 297
SNAP • 60, 138, 297
SYMDSN • 297
WORKSTOR • 297
DTECT • 297
DUMP • 297
establishing precedence • 287, 289
Execution Monitor execution-time • 297
LINECOUNT • 297
execution-time • 297
UCB • 297
VSAMIDX • 297
Extended Detector compile-time • 292
listing • 292
Extended Detector execution-time • 292
listing • 292
FDCHECK • 297
FILES • 297
FIRST128 • 297
GRPADDR • 297
IDMSDC • 297
INSTRMAP • 297
INTERCEPTS • 297
INTERTST • 297
IOB • 297
length checking • 137
LINECOUNT • 297
LINKAGE • 297
LOGROS • 297
346 User Guide
LOGTSO • 297
LOGUNI • 297
LOWER • 297
MEMMAP • 297
MERGEDB • 297
MRGAUTO • 297
MRGBASED • 297
MRGCNTLD • 297
MRGDATA • 297
MRGDSECT • 297
MRGFILES • 297
MRGLINK • 297
MRGLOCAL • 297
MRGPARMS • 297
MRGSTAT • 297
MRGWORK • 297
MXREF • 297
NOCOPT • 297
NOFDCHECK • 297
NOSOURCE • 297
NUM • 226
OBJECT • 297
OCCURS • 297
OFFSET • 297
Optimizer Analyzer • 297
CNTXREF • 297
Optimizer compile-time • 19, 23, 26, 27, 35,
37, 53, 54, 55, 57, 226, 297
CICS • 297
CNTXREF • 226
COBCC • 297
COPT • 297
CXREF • 27, 37
DECK • 297
descriptions • 19
Enhanced Source Listing reports • 23
IDMSDC • 297
LINECOUNT • 297
LIST • 23, 55
LOWER • 297
MAP • 53, 297
MMAP • 27, 53, 297
MOFFSET • 27, 35, 297
MXREF • 26
NOCICS • 297
NOCOPT • 297
NOSOURCE • 297
OFFSET • 54
OPTRC • 35, 297
SELECT • 23, 57, 297
SOURCE • 297
SPM • 297
STATS • 297
SYM • 297
XDMAP • 297
XMMAP • 297
XREF • 27, 297
Optimizer execution-time • 297
REGMAX • 297
RPL • 297
OPTRC • 297
overriding defaults • 287, 289
card-image data set • 289
CBL statement • 287
EXEC statement • 287
PFLOW • 297
PGM • 297
PLH • 297
precedence • 54, 55, 57
PROCDIV • 297
PRTCOPY • 297
PRTLIB • 297
PRTREPT • 297
REGMAX • 297
RENT • 40
RPL • 297
RPTSZ80 • 297
Runtime report • 66
SAVEAREA • 297
SAVEHEAP • 297
SELECT • 297
SHOWHEAP • 297
SHWUNMRG • 297
SNAP • 297
SOURCE • 297
SOURCEMAP • 296, 297
SPM • 297
SSRANGE • 297
STATS • 297
STIMERM • 297
SUBRNGCK • 297
SYM • 297
SYMDSN • 297
synonyms and abbreviations • 286
unspecified • 289
USERID • 297
VSAM • 297
ACB • 297
Index 347
AMB • 297
AMBL • 297
PLH • 297
WORKSTOR • 297
WSINIT • 297
WTO • 297
XCOUNT • 297
XDATA • 297
XMMAP • 297
XREF • 297
XREPORT • 297
XTIME • 297
OPTIONS command • 193
Options page • 23, 24, 27
Enhanced Source Listing • 23, 24
with MXREF • 27
Options Summary report • 273
OPTRC • 19, 35, 297
compile-time options • 19
Optimizer option • 35, 297
compile-time • 35
OS/VS COBOL reporting • 267
usage considerations • 267
Output File Information panel • 246
Overlay modules • 263
Overriding • 287, 289
option defaults • 287, 289
card-image data set • 289
CBL statement • 287
EXEC statement • 287
P
panels • 152, 158, 164, 170, 178, 184, 187,
243, 245, 246, 247, 248, 249, 250, 251, 252,
253, 256, 259
Add to PROTSYM • 184
Browse CA-Optimizer/II Errors • 249
Browse CA-Optimizer/II output • 248
COBOL Language HELP • 256
CSL Directory selection list • 178
Defaulted Options • 247
Delete CA-Optimizer/II Listing Data Sets •
251
Execute Optimized Program • 252
Global Symbolic Files • 187
HELP Format Notation • 259
Invocation • 245
Invoke Management Reporting System • 253
Output File Information • 246
PF Keys • 170
Primary Option Menu • 243
Print CA-Optimizer/II Listing • 250
PROTSYM Directory selection list • 178
Report Index selection list • 152
Report Options • 158
Report Tree selection list • 164
Supplemental Symbolic Files • 187
Paragraph • 82, 225
execution-time summary • 225
flow • 82
report • 82
PARMCHK • 60, 137, 297
compile-time • 60
execution-time • 297
purpose • 137
PBL - base locators • 55
PERFORM • 42, 80
Range Table and ALTERed GO TO Table • 42
return address analysis • 80
PERFORM Range • 35, 42, 47
branch out • 42
exits • 35, 42
fall-through • 42
MOFFSET report field • 35
logic error Identification • 42
NO EXIT • 42
NULL • 42
recursive • 47
RECURSIVE CALL • 42
return cell • 42
shared code • 42
Summary • 42
table • 35
PF keys • 170, 255
HELP facilities • 255
panel • 170
PFLOW • 60, 82, 297
compile-time - Abend & SNAP facility • 60
Detector option • 297
compile-time • 297
execution-time • 297
table size requirements • 82
PGM • 297
Detector option • 297
PGT • 38, 39
hexadecimal locations • 38, 39
Memory Map • 38, 39
Program Literal Pool • 39
348 User Guide
System Literal Pool • 38
PL/I reports • 83
PLH Detector option • 297
execution-time • 297
PMAP • 297
Analyzer option • 297
PMAP - compile-time option • 19
Primary Option Menu • 243
Print CA-Optimizer/II Listing panel • 250
PRINT command • 194
PRINTCSL • 323
printing CSL library members • 323
printing • 162, 181, 323
program listing from symbolic file • 181
reports • 162
symbolic file directory • 323
symbolic file member • 323
Printing - LIST selections • 23
Problem solving techniques - Detector • 59
problems • 323
printing the CSL library • 323
PROCDIV • 294, 296
Analyzer report-time • 294, 296
chart • 294
guidelines • 296
list • 296
identifying program names • 296
Procedure • 19, 20, 27, 35, 50, 55, 263, 267
bytes • 267
CAIOPTII • 20
code - size • 263
Division • 27, 35
MOFFSET sample listing • 35
MXREF Sample Listing • 27
map • 19, 55
object listing (LIST) • 55
options • 19
size - how to measure • 50
PROFILE command • 196
Program • 21, 39, 40, 41, 71, 203
documentation • 203
exceptions • 71
Global Table (PGT) • 39
location - DSA • 41
location - TGT • 40
size • 21
upper limit • 21
program initialization • 20
PROTSYM • 59
Detector reports • 59
PROTSYM Directory selection list panel • 178
PROTSYM file • 22, 184
add listing • 184
SYM option considerations • 22
PRTCOPY • 297
printing copy books • 297
PRTLIB • 297
CAIPRINT repository library name • 297
PRTREPT • 297
CAIPRINT report • 297
PSV cell • 80
R
Recursion • 47, 48
Optimizer • 47
simple • 48
Recursive • 42, 47
CALL FROM - field description • 42
PERFORM range • 47
definition • 47
Reference - segments • 21
REFRESH command • 197
Register contents • 76
REGMAX option • 297
RENT • 40
REPORT • 323
printing symbolic members • 323
Report control options • 292
BLLMAX • 292
COBONLY • 292
CSLDSN • 292
DB2ACTIV • 292
DUMP • 292
FILES • 292
FIRST128 • 292
GRPADDR • 292
LINECNT • 292
LINKAGE • 292
LOCALSTOR • 292
MEMMAP • 292
MERGEDB • 292
MRGDATA • 292
MRGFILES • 292
MRGLINK • 292
MRGLOCAL • 292
MRGWORK • 292
OCCURS • 292
PRTREPT • 292
Index 349
RPTSZ80 • 292
SAVEAREA • 292
SNAP • 292
SYMDSN • 292
WORKSTOR • 292
Report features • 17, 60
customization • 60
for abends • 60
source listing • 17
Report Index selection list panel • 152, 155,
156, 157, 158
deleting reports • 157
line commands • 156
locking reports • 158
primary commands • 155
unlocking reports • 158
Report Options panel • 158
Report Tree selection list panel • 164, 166, 167
line commands • 167
primary commands • 166
reports • 23, 24, 26, 27, 31, 35, 37, 38, 39, 40,
41, 42, 49, 50, 52, 53, 54, 55, 57, 59, 66, 68,
73, 74, 83, 89, 96, 97, 99, 107, 115, 121,
124, 125, 126, 158, 162, 164, 167, 168, 170,
172, 175, 177, 189, 190, 191, 192, 193, 194,
196, 197, 198, 199, 200, 201, 202, 207, 211,
212, 215, 217, 220, 224, 225, 226, 228, 232,
233, 263, 265, 267, 272, 273, 275
Analyzer • 207, 211, 212, 215, 217, 220,
224, 225, 226, 228, 233
CNTXREF • 226
Execution count cross-reference • 226
fields • 211, 212
Instruction Detail Report • 228
Module summary • 217
Paragraph execution-time summary • 225
run summary • 207, 215
SOURCEMAP • 220, 225, 233
Unexecuted paragraphs • 224
COBOL II Diagnostic Messages & Compiler
Statistics • 49
collapsing tree view • 167
CSL Summary report • 275
defining labels • 175
defining tags • 175
Detector • 59, 66, 68, 73, 74, 83, 89, 96, 97,
99, 107, 115, 121, 124, 126
Abend • 59, 66, 68
Assembler • 89
CA IDMS/DB • 115
COBOL • 73
DB2 • 107
Execution Monitor • 126
File section display • 74
IMS • 99
Intercepts • 59, 66, 121
Open Files • 96
PARMCHK • 59
PL/I • 83
Save area trace • 97
Snap • 59, 66, 124
symbolic support • 59
diagrams - Options Page • 24
electronic notepad • 158
Execution Monitor • 66, 125, 126, 212, 232
CAIOPTS • 66, 125, 212
Module summary • 232
summary • 66, 126
expanding tree view • 167
FIND command • 189
formatting options • 158
HELP command • 190
Initialization Summary Report • 272
KEEP command • 191
Keep Window • 172
labels, defining • 175
Load Library Analysis Detailed Report • 263
LOCATE command • 192
MRS Load Library Analysis Detailed Report •
263
MRS Summary Report • 265
NOTES command • 192
Optimizer • 23, 24, 26, 27, 31, 35, 37, 38,
39, 40, 41, 42, 50, 52, 53, 54, 55, 57
ALTERed GO TO table • 42
Compiler Data Map (MAP) • 53
Compiler Source Listing • 52
Condensed Cross-Reference (CXREF) • 37
Condensed Optimized Object Code (OFFSET) •
54
Dynamic Save Area memory map (DSA) • 41
Merged Cross-Reference (MXREF) • 26, 27
Merged Data Map (MMAP) • 31
Merged OFFSET (MOFFSET) • 35
Options Page • 24
PERFORM Range table • 42
Procedure Map Object Listing (LIST) • 55
350 User Guide
Program Global Table (PGT) Memory Map • 38,
39
Selected Procedure Map (SELECT) • 57
sequence • 23
Statistics • 50
Task Global Table memory map (TGT) • 40
OPTIONS command • 193
Options Summary report • 273
PRINT command • 194
printing • 162
PROFILE command • 196
REFRESH command • 197
RFIND command • 198
SETINDEX command • 198
SORT command • 199
Statistics report • 267
Summary Report • 265
SYM command • 200
SYM report listing • 52
symbolic utilities menu • 177
TAG command • 201
VIEW command • 202
viewing • 164
viewing sections • 168
viewing techniques • 170
Report-time • 207, 289, 296
coding options • 289
options • 207, 296
descriptions • 207
guidelines • 296
overview • 289
Repository Viewer • 151, 153, 156, 157, 158,
164, 167, 168, 170, 172, 173, 175, 188, 189,
190, 191, 192, 193, 194, 196, 197, 198, 199,
200, 201, 202, 260
collapsing tree view • 167
commands • 188
deleting reports • 157
description • 151
Electronic Notepad • 173
expanding tree view • 167
FIND command • 189
HELP command • 190
KEEP command • 191
Keep Window • 172
labels, defining • 175
launching • 260
line commands • 156
LOCATE command • 192
locking reports • 158
NOTES command • 192
OPTIONS command • 193
PRINT command • 194
PROFILE command • 196
REFRESH command • 197
report tree • 164
repository, selecting • 153
RFIND command • 198
SETINDEX command • 198
setting PF keys • 170
SORT command • 199
starting • 151
SYM command • 200
TAG command • 201
tree view • 167
unlocking reports • 158
VIEW command • 202
viewing reports • 168
reserved word • 258, 259
HELP • 258
syntax • 259
Return • 42
cell • 42
Return code • 297
RFIND command • 198
RPL • 297
Optimizer compile-time option • 297
RPTSZ80 • 297
80-column format • 297
Run summary report • 215
description • 215
fields • 215
Runtime • 60, 64, 66, 121
INTERCEPTS • 66, 121
JCL • 64
options • 60, 66
DBGAWAKE • 60
INTERCEPTS • 60
PARMCHK • 60
PFLOW • 60
Report • 66
SNAP • 60
S
Save area trace report • 97
SAVEAREA • 60, 297
Detector option • 297
report customization • 60
Index 351
SAVEHEAP • 297
Detector option • 297
Segment allocation • 21
SELECT • 19, 23, 57, 297
compile-time options • 19
Optimizer option • 23, 57, 297
groups of statements • 57
printing specific items • 23
SELECTed procedure map (SELECT) • 57
Selecting statement groups - LIST • 57
SETINDEX command • 153, 198
SHADOW • 236
Analyzer restriction • 236
SHOWHEAP • 297
Detector option • 297
SHWUNMRG • 297
Detector option • 297
SNAP • 297
Detector option • 297
SNAP Detector option • 20, 59, 60, 66, 124
diagnostics • 59
example • 124
execution-time • 60
description • 60
routine • 20
SNAP CALL • 66
SORT command • 199
SOURCE • 297
Optimizer option • 297
Source listing • 19, 23, 220
condensed • 19
control options • 23
count and timing report • 220
suppression • 19
SOURCEMAP • 220, 233, 294, 296, 297
Analyzer • 294, 296, 297
option chart • 294
report-time option • 296, 297
description • 220
explaining consolidation • 233
report example • 220
Specifying Analyzer options • 294, 295
SPM option • 297
Statistics report • 49, 50, 267
compile-time • 49
instruction count • 50
monitoring results • 267
options • 50
STATS option • 297
STEPLIB • 211
STIMERM • 294, 297
Analyzer option • 294
compile-time • 294
time sampling • 297
SUBRNGCK • 60
Detector option • 60
valid subscripts & index values • 60
SUBRNGCK/SSRANGE • 135, 297
Summary Report • 265
Supplemental Symbolic Files panel • 187
SYM command • 200
SYM option • 22, 52, 297
report listing • 52
usage considerations • 22
symbolic file • 178, 180, 181, 183, 187
deleting member from • 180
globally defined • 187
listing contents • 178
locally defined • 187
printing program listing • 181
supplemental • 187
viewing program listing • 183
symbolic file directory • 323
printing • 323
symbolic file member • 323
printing • 323
symbolic support, Detector reports • 59
Symbolic Utilities menu • 177
SYMDSN option • 297
Synonyms and abbreviations • 286
SYSLIN - producing object text • 19
SYSPUNCH • 19, 297
Optimizer compile-time option • 297
producing object module • 19
System • 38, 39
Literal Pool - PGT • 38, 39
system requirements, EOS • 241
T
TAG command • 175, 201
Task Global Table memory map (TGT) • 40
techniques, optimization • 17
Testing and debugging - Analyzer • 203
Testing facility - Detector • 60
TGT - memory map • 40
Timings • 203, 232, 233, 234
TITLE • 297
TPMON • 297
352 User Guide
troubleshooting • 319
TSO support • 243
U
UCB option • 297
UNCOND - MOFFSET • 35
Unconditional statements - OPTRC • 19
UNEXEC - MOFFSET • 35
Unexecutable statements • 19
Unexecuted paragraphs report • 224
unlocking reports • 158
Unspecified options • 289
unsupported features • 21
Usage considerations • 139, 149, 231, 234
Analyzer • 231, 234
Counts Results • 231
Reporter • 234
Detector • 139
Extended Detector • 149
restrictions • 149
USERID • 207, 294, 296, 297
Analyzer • 294, 296
report-time option • 294, 296
Analyzer option • 297
unique page heading • 207
utilities • 261
V
VIEW command • 202
viewing • 164, 183
program listing from symbolic file • 183
reports • 164
VN cell • 42, 80
VSAM control blocks • 292, 297
ACB • 292
AMB • 292
AMBL • 292
options • 297
PLH • 292
RPL • 292
VSAMIDX • 292
VSAMIDX option • 297
W
Working storage • 75, 133, 136
section display • 75, 133
variables • 136
WORKSTOR • 60, 297
Detector option • 297
execution-time • 297
report customization • 60
WSINIT • 60, 136, 297
debugging tool • 136
Detector option • 60, 297
compile-time • 297
unitialized working storage • 60
WTO • 297
abend to job log • 297
X
XCOUNT • 206, 294, 295, 297
Analyzer option • 206, 294, 295, 297
chart • 294
compile-time • 206, 294, 297
execution-time • 206, 295, 297
XDATA - Optimizer compile-time option • 297
XMMAP • 31
with COPY...SUPPRESS • 31
XMMAP- Optimizer compile-time option • 297
XREF • 19, 27, 297
and MXREF • 27
compile-time options • 19
Optimizer option • 297
XREPORT • 206, 207, 294, 295, 297
Analyzer option • 206, 294, 295, 297
description • 297
execution-time • 206, 295
summary chart • 294
invoking Analyzer Reporter • 207
XTIME • 206, 294, 295
Analyzer option • 206, 294, 295
compile-time • 206, 294
execution-time • 206, 295
listing • 294
XTIME option • 297