30  PF key definitions                65  Abending your TASK
  32  Primary/Line Commands             70  PROFILE, AUTOSTEP, AUTOKEEP Options
  35  Set the Display Margins           75  Code Coverage Option
  40  Set/Remove Breakpoints            80  View Program Backtrace

                                                                           (end)
  ------------------------------------------------------------------------------
 ENTER A SELECTION CODE FROM THE MENU, OR N FOR NEXT PAGE, P FOR PRECEDING PAGE,
  M FOR RETURN TO PREVIOUS MENU,  CLEAR TO EXIT, OR MESSAGE NUMBER. ==> 05

Help for Line Commands
Note that selection code 32 lists Line Commands. These are the simple commands that you can enter on the Command
line of a Source Listing Display, Breakpoint Display, or SymDump  Breakpoint display, and include the commands abend,
monitor, and status.
 507


InterTest™ and SymDump ® 11.0
Get Help to Correct an Error
Whenever your program stops at an automatic breakpoint, InterTest for CICS displays a short message identifying the
reason for the breakpoint. You can request help by pressing PF1 for information on what caused the error that triggered
the breakpoint and how to fix it. The following screen explains how to correct an AEIL abend.
              CA INTERTEST - INTERACTIVE HELP FACILITY -
 TUTORIAL: ERROR MESSAGE AEIL

  The dataset name referred to in the DATASET option cannot be found in the FCT.
  Your program did not have a Handle Condition for this error. Or a second Handle
  Condition without a routine for this error superseded the one that had a
  routine for this error.

  WHAT YOU CAN DO: If the named file was entered incorrectly and the one you
  wanted exists, you may use the Replace File Option to dynamically replace the
  file name and then use the resume task facilities to execute the CICS request
  again. To perform the above functions from the Source Listing Breakpoint screen
  you would:

  1. Key =20s in the Option # field and press ENTER.
  2. Tab to  Replace file name:   Key in the incorrect file name.
  3. In the next field, key in the correct file name and press ENTER.
  4. Press CLEAR  to return to your Source Listing Breakpoint screen.
  5. Key in G to resume execution at the beginning of the EXEC CICS command
     and press ENTER.
                                                                     (continued)
  ------------------------------------------------------------------------------
 ENTER N FOR NEXT PAGE, P FOR PRECEDING PAGE, F FOR FIRST PAGE, OR -


M FOR RETURN TO PREVIOUS MENU,  CLEAR TO EXIT, OR MESSAGE NUMBER. ==> N

NOTE
When you leave and then return to an automatic breakpoint screen, the error message may no longer appear.
For help on the cause of the error, press Clear to redisplay the error message before pressing PF1.
End a Test Session
After your program completes execution or you abend your task, you are returned to CICS.
The following table shows the status of your program after testing:
Program Area Status after Testing
program source code not modified
file/database updates by the program permanent
file/database updates that you made permanent
InterTest for CICS monitoring, breakpoints, and other options set for the program remain in effect until they are removed.
Correct the Source Code
At some point, you might want to correct the source code and continue testing from a clean version of the program.
After you modified the source code and recompiled the program, you can load the new copy of the program by using the
New Program Copy option on the Program Monitoring menu (ITST 2.1). The New Program Copy option resets symbolic
 508


InterTest™ and SymDump ® 11.0
breakpoints and other monitoring options for the recompiled programThe option also resets the PPT entry to the new
program library address.
PL/I Advanced Monitoring Features
Use InterTest for CICS advanced features to help you detect and correct errors.
Whatever your specific testing needs, InterTest for CICS has the necessary tools.
This article describes just a few of the more commonly used features. For information about all InterTest features, see
CICS Debugging and the Help facility.
Set Options from the Monitoring Menus
The monitoring menus of InterTest are the easiest way to set many monitoring options.
1.Access these menus from the Primary Option Menu by selecting 2 Monitoring:
-------------- CA InterTest for CICS PRIMARY OPTION MENU  ----------------
OPTION  ===> 2

    1  Source             - Display/select program source files/listings
    2  Monitoring         - Display/modify CA InterTest monitoring/activity
    3  Main storage       - Display/modify CICS storage areas
    4  Auxiliary storage  - Display/access databases/files/queues
    5  Dump analysis      - Invoke CA SymDump CICS dump/trace capture facility
    6  Product help       - Invoke CA InterTest product help facility
    7  Status/Maintenance - Product status and maintenance functions
    8  What's new?        - Display information about CA InterTest for CICS
    X  Exit               - Terminate menu processing
.
.
.
The Monitoring Menu appears, from which you can select a wide variety of different monitoring options. For a detailed
explanation of each of these options, use the online help or CICS Debugging.
-------------- CA InterTest for CICS MONITORING MENU  ------------------
OPTION  ===>


OPTION  ===>

    1  Programs           - Display/modify program monitoring options
    2  Transactions       - Display/modify transaction monitoring options
    3  Terminals          - Display/modify terminal monitoring options
    4  Status             - Display/remove current monitoring options
    5  Active tasks       - Display/purge active monitored tasks
    6  System-wide        - Display/modify global system-wide options
.
.
.
Option 1 Programs accesses the Program Monitoring Menu, where you can set and remove any option for a program,
and request a status display.
The Program Monitoring menu is probably the most frequently used menu during a testing session.
-------------------- CA InterTest for CICS  PROGRAM MONITORING  --------------------
 509


InterTest™ and SymDump ® 11.0
 COMMAND ===>

   Type information and S to set or R to remove option(s) below.

   Program  . . PL1DEMO_     Program name (or .ALL, .OPTIONS or generic)
   User ID  . . _______      User (or .ANY) for whom the program is monitored

   Option       Description                                            More:   +
 _ Status       Display and/or remove monitoring options (S only)
 _ Monitor      Monitoring (R removes monitoring and all options previously set)
 _ UBP          Unconditional breakpoints (specific program only)
 _ CBP          Conditional breakpoints (specific program only)
 _ RBP          Breakpoints for CICS, DB2, DL/I or external CALL requests
 _ Stmt Trace   Statement tracing and data monitoring (COBOL only)
 _ New copy     Fetch new copy of program and reset monitoring options (S only)
 _ Commands     Indirect commands defined for a specific COBOL or PL/I program
 _ Replace      CICS resource name replacement options
 _ Protect      Storage protection monitoring options
 _ Special      Other options (storage allocation, file updating, etc.)
 _ Composite    Monitor multi-CSECT program's separately compiled components

 PF1 Help       2            3 End        4 Return     5            6
 PF7 Backward   8 Forward    9           10           11           12
Quick access to this menu is available before or during a session, as described in the following table.
2.Type the fastpath entry in the indicated field and press Enter.
The following list contains the fastpath entries that you can use to access the Program Monitoring menu:
–CICS, clear screen: ITST 2.1


–CICS, clear screen: ITST 2.1
–Primary Option Menu, Option field: 2.1
–Source Listing display, Command field: =2.1
–Breakpoint display, Command field: =1.2.1
3.After processing any program options from this menu, press PF3 to exit back to your test session. If you entered
directly from CICS, you will exit back to the ITST Primary menu. From a Source Listing or breakpoint, PF3 takes you
back to that display.
Set and Remove Conditional Breakpoints
Conditional   breakpoints are breakpoints that take effect when a specific condition is met, such as when a counter
exceeds a value. These breakpoints can help you isolate complex problems.
To set a conditional breakpoint, type C to the left of the statement where you want to set the breakpoint, as shown in the
following screen, and press Enter .
CA InterTest for CICS   - PROTSYM FILE  SOURCE LISTING DISPLAY
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
---------+---------------------------------------------------------------------
 _   599.1     1            GOTO SENDSCR1;
 _   600.1
 c   601.1     1      WRITETSQ:
 _   602.1               TS_SWITCH = ' ';
 _   603.1               /* EXEC CICS WRITEQ TS QUEUE   (TSQ_NAME)
 510


InterTest™ and SymDump ® 11.0
 _   604.1                                      LENGTH  (TS_LEN)
 _   605.1                                      FROM    (TS_AREA)
 _   606.1                                      MAIN */
InterTest for CICS then displays the menu on which you define the condition. In the following example, the breakpoint
halts program execution only if TS_SWITCH is equal to 3.
        CA-InterTest MONITORING COMMAND BUILDER - CONDITIONAL BREAKPOINT

 Enter LEFT SIDE of condition (select one):
     Data Name ts-switch_______________________________________________________
     Special keywords:                 ______   Register # __    COBOL BLL # __

 Enter OPERATOR (EQ, NE, GT, LT, GE, LE):  eq    Length:  Left  ___    Right ___

 Enter RIGHT SIDE of condition (select one):
     Data Name ________________________________________________________________
     Special keywords:                 ______   Register # __    COBOL BLL # __
     Literal 3_________________________________________________________________

 Optional offset:  Enter + - @ OR % followed by a value.
     Left side  _________________________   Right side ________________________

 _ ENTER  S  to Drop monitoring on a true condition

 For location:
              601.1     1      WRITETSQ:

    Use Help or documentation for use of special keywords
 PF1 Help       2            3 End        4 Return     5            6
  PF7            8            9           10           11           12
Conditional breakpoints are indicated by a C next to the line of code in your Source Listing.
You can easily remove a conditional breakpoint from where it displays in your Source Listing or from the Monitoring Status
report.


report.
Remove Conditional Breakpoints from the Source Listing
To remove a conditional breakpoint from your Source Listing, overtype the C with an X and press Enter, as shown in the
following screen:
CA InterTest for CICS   - PROTSYM FILE  SOURCE LISTING DISPLAY
COMMAND ===>
Program= PL1DEMO  Option # 9     Stmt #                             Margin= 01
                                        Search= WRITETSQ
---------+---------------------------------------------------------------------
 _   599.1     1            GOTO SENDSCR1;
 _   600.1
 x   601.1     1      WRITETSQ:
 _   602.1               TS_SWITCH = ' ';
 _   603.1               /* EXEC CICS WRITEQ TS QUEUE   (TSQ_NAME)
 _   604.1                                      LENGTH  (TS_LEN)
 511


InterTest™ and SymDump ® 11.0
 _   605.1                                      FROM    (TS_AREA)
 _   606.1                                      MAIN */
.
.
.
Remove Conditional Breakpoints from the Status Report
Alternatively, you can always remove any breakpoint from the Monitoring Status report. To remove this conditional
breakpoint from your program, perform the following procedure:
1.Type STATUS on the Command line to display the Monitoring Status report for the current program.
2.Tab to the entry for the Conditional Breakpoint (CBP option) you want to remove, type R to the left of its entry, and
press Enter.
--------------- CA InterTest for CICS   MONITORING STATUS  ----------------
 COMMAND ===>

   Type + to expand or - collapse option levels displayed below,
          or R to remove option(s).

     Option     Description                Attributes
 _ - PL1DEMO    Program monitor entry      PL/I
 _ - |-.ANY     User monitoring options    Active
       |        Symbolic listing file      PROTSYM
 r -   |-CBP    Conditional breakpoint     #601
       |        Option ID                  0EC11E65
       |        Condition                  CORE=IF='TS_SWITCH'.EQ.C'3'
       |        Compare type               CORE command comparison
       |        From, to terminals         U057, U057
 _     |-SLB    Source listing breakpoints U057
                *** End of data ***

 PF1 Help       2 Refresh    3 End        4 Return     5 Collapse   6 Expand
 PF7 Backward   8 Forward    9           10           11           12


PF7 Backward   8 Forward    9           10           11           12
InterTest for CICS places an asterisk to the left of the breakpoint to indicate that the removal was processed.
3.Press PF3 to return to your Source.
Request Breakpoints
Request  breakpoints are breakpoints that take effect prior to CICS commands and macros and other program calls, such
as calls to DL/I or DB2. With one specification, you can set breakpoints at all CICS commands or at specific commands,
such as all REWRITE commands.
Use request breakpoints to stop a program before the following commands:
•Every CICS command or macro
•Specific types of CICS commands, such as all File Control or Program Control commands
•Specific commands, such as all READ or WRITE commands
 512


InterTest™ and SymDump ® 11.0
Set Request Breakpoints
To set request breakpoints, perform the following steps:
1.Select option 2.1 Program Monitoring on the Primary Option Menu.
-------------------- CA InterTest for CICS  PROGRAM MONITORING  --------------------
 COMMAND ===>

   Type information and S to set or R to remove option(s) below.

   Program  . . PL1DEMO_     Program name (or .ALL, .OPTIONS or generic)
   User ID  . . ________     User (or .ANY) for whom the program is monitored

   Option       Description                                            More:   +
 _ Status       Display and/or remove monitoring options (S only)
 _ Monitor      Monitoring (R removes monitoring and all options previously set)
 _ UBP          Unconditional breakpoints (specific program only)
 _ CBP          Conditional breakpoints (specific program only)
 s RBP          Breakpoints for CICS, DB2, DL/I or external CALL requests
 _ Stmt Trace   Statement tracing and data monitoring (COBOL only)
 _ New copy     Fetch new copy of program and reset monitoring options (S only)
 _ Commands     Indirect commands defined for a specific COBOL or PL/I program
 _ Replace      CICS resource name replacement options
 _ Protect      Storage protection monitoring options
 _ Special      Other options (storage allocation, file updating, etc.)
 _ Composite    Monitor multi-CSECT program's separately compiled components

 PF1 Help       2            3 End        4 Return     5            6
 PF7 Backward   8 Forward    9           10           11           12
2.In the Program field, type the name of the program for which you want to set request breakpoints.


3.Type S to the left of the RBP option (request breakpoints). Press Enter.
The Request Breakpoint Selection menu appears. Using this menu specify the type of request breakpoint, such as all
CICS commands, File Control and Task Control.
CA InterTest MONITORING COMMAND BUILDER - REQUEST BREAKPOINT SELECTION  13

              Set one or more types of Request Breakpoints in:
                                PROG=PL1DEMO

 _ ALL commands                    _ DL/I    _ DB2     _ CALLs

   _ Address, Assign,         _ Storage Control    _ BMS
       Handles, Push, Pop     _ Program Control    _ Trace Control
   _ Terminal Control         _ Interval Control   _ Dump Control
   _ File Control             _ Task Control       _ Batch Data Interchange
   _ TD Control               _ Journal Control    _ Built-In Functions
   _ TS Control               _ Syncpoints         _ Sys Prog Functions
   _ Web access               _ Business Trans     _ 3270 Bridge

   Enter 'n' to stop only every n'th time:                         ____
   Term ID (or .ANY or .NO) where breakpoints will take effect:    ____
   Term ID (or .ANY) that will receive the breakpoints:            ____
 513


InterTest™ and SymDump ® 11.0
   Statement no. of indirect command(s) to be executed:            _____
   User ID (or .ANY) who will execute the program:                 ________

 PF1 Help       2            3 End        4 Return     5            6
 PF7            8            9           10           11           12
Subsequent menus prompt you for the specific command, such as all File Control commands, READ, WRITE and
REWRITE.
4.Type X in front of each type of command for which you want to set request breakpoints.
After setting your request breakpoints, PF4 returns you to the Primary Option Menu. If you came from a Source
Listing, PF3 returns you to your Source.
Remove Request Breakpoints
To remove request breakpoints, perform the following steps:
1.From the Source Listing display or breakpoint display, type STATUS on the Command line and press Enter. InterTest
for CICS displays the Monitoring Status display showing all options for the current program.
2.Type R to the left of the request breakpoint (RBP) you want to remove and press Enter . InterTest for CICS places an
asterisk to the left of the breakpoint to indicate that the command has been processed.
3.Press PF3 to return to the Source Listing or Breakpoint display.
The Backtrace Facility
When your program stops at a breakpoint, you might find it useful to examine the Backtrace Summary  and the Source
Listing Backtrace. The Backtrace facility shows the logic flow of the program and explains how processing reached this
point.
The Backtrace facility enables you to do the following tasks:
•View the Backtrace Summary screen for a (high-level) summary of the program's execution
•Use special PF keys to step through the program's execution path


•Use special PF keys to step through the program's execution path
•Reposition the source listing to view the program's execution path from a different backtrace position
In addition to the Backtrace PF keys, all other Source Listing options, such as the Keep window, setting and removing
breakpoints, and the ability to scroll backward and forward from the current source listing position are available from the
Source Listing Backtrace screen.
Access the Backtrace Summary
To view the Backtrace Summary, press PF11 from the Source Listing Breakpoint screen, or, type BTRACE in the
Command line and press Enter.
InterTest for CICS positions the Backtrace Summary Screen at the last executed statement, as follows.
 InterTest  for CICS   - BACKTRACE SUMMARY

Program= PL1DEMO                                      From 0002 To 0014 Of 0014

Specify  S then ENTER to display Source Listing BACKTRACE
-------------------------------------------------------------------------------
PFKS 1 Help      2 Backtrace 3 End        4            5 1st Stmt   6 Last Stmt
     7 Backward  8 Forward   9 Next Wnd  10           11 Prev Bloc 12 Next Bloc
-------------------------------------------------------------------------------
 S Bkmk       Stmt Block  ¦ Source Listing
 _ ____      #19 ...  #19 ¦            PL1DEMO:  PROC(DFHEIPTR,COMMAREA_PTR) OP
 514


InterTest™ and SymDump ® 11.0
 _ ____      #19 ...  #19 ¦            PL1DEMO:  PROC(DFHEIPTR,COMMAREA_PTR) OP
 _ ____      #19 ...  #19 ¦            PL1DEMO:  PROC(DFHEIPTR,COMMAREA_PTR) OP
 _ ____     #525 ... #541 ¦     1      START_OF_PGM:
 _ ____     #544 ... #544 ¦     1         IF EIBAID = DFHPF2  |            /**
 _ ____     #548 ... #548 ¦     1         IF TS_SWITCH = DFHPF5    THEN
 _ ____     #555 ... #555 ¦     1         DO;
 _ ____     #561 ... #561 ¦     1  1      END;
 _ ____     #573 ... #573 ¦     1  1      END;
 _ ____     #578 ... #580 ¦     1         IF EIBCALEN > 0 |
 _ ____     #588 ... #588 ¦     1  2            END;
 _ ____     #595 ... #595 ¦     1  2            END;
 * ____     #635 ... BKPT ¦     1      NOPROB:  CAIN2987 Last Backtrace Stmt Block
Read the Backtrace Summary
The Backtrace Summary screen summarizes the program's execution. This screen displays the statement number and
source of the first statement in each contiguous group of executed program statements.
•The order of the statements reflects the program's execution path.
•The top statement is the first statement executed; the bottom statement is the most recently executed statement.
From the Backtrace Summary screen, you can do the following tasks:


From the Backtrace Summary screen, you can do the following tasks:
•Reposition the display to view statement-by-statement details of the program's execution path by:
- Pressing PF2
- Marking a statement block with s, then pressing Enter
•Assign a bookmark, consisting of one to four characters, to one or more backtrace positions for faster and easier
navigation through the Backtrace Summary
•Trace program execution using:
PF5 1st Stmt
Re-positions the Backtrace Summary screen to the first or oldest entry in the Backtrace.
PF6 Last Stmt
Re-positions the Backtrace Summary screen to the last or newest entry in the Backtrace.
PF7 Backward
Scrolls the Backtrace Summary screen backward (up) a full screen.
PF8 Forward
Scrolls the Backtrace Summary screen forward (down) a full screen.
PF11 Prev Bloc
Displays the previous statement block.
PF12 Next Bloc
Displays the next statement block.
Access the Source Listing Backtrace
To display the Source Listing Backtrace, press PF2 or type S next to a statement block in the Select column of the
Backtrace Summary screen as shown in the previous screen.
The next screen shows the Source Listing Backtrace screen that displays.
CA InterTest for CICS   - PROTSYM FILE  ABEND DETECTED BACKTRACE
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
 515


InterTest™ and SymDump ® 11.0
                                        Search=
-------------------------------------------------------------------------------
 _____ TASKNUM                         | ?00000.
======= Backtrace at #000635  (000635 -> 000638 executed     1 times) <=======
 _   633.1     1  1      END;
 _   634.1
  _ ====>.1     1      NOPROB:                                                  _   636.1
 CONTINUE_TASK:                                           _   637.1               MAPNUM  = '00';
                          A   638.1     1         TASKNUM = TASKNUM + 1;
 _   639.1     1         IF TASKNUM > 2 THEN
 _   640.1     1            GOTO END_SESSION;
 _   641.1     1         IF TASKNUM = 1 THEN
 _   642.1     1            GOTO SENDSCR3;
 _   643.1     1         GOTO END_SESSION;
 _   644.1
 _   645.1     1      SENDSCR3:                           /** ASRA CONGRATULAT
 _   646.1                   /* EXEC CICS SEND MAP('DASRA')
 _   647.1                                     MAPSET('IN25PMP')
 _   648.1                                     WAIT
 _   649.1                                     ERASE */
Read the Source Listing Backtrace
To clearly detail the program's execution path, statement by statement, source statements that were executed from the
current backtrace position are highlighted. When you specify a non-backtrace Source Listing option or use PF7 or PF8 to


reposition the Source Listing, the highlighting of executed statements temporarily suspends until a backtrace-related PF
key (next block, previous block, and so on) is entered.
When in Source Listing Backtrace mode, the current backtrace position always displays on the line just above the first
source statement. This line displays as follows:
======>BACKTRACE AT #nnnnn (nnnnn -> nnnnn executed nnnnn times)<=====
The information in this line indicates the following information:
#nnnnn
Specifies where the program statement or offset the backtrace is currently positioned.
nnnnn -> nnnnn
Specifies the first and last number of the statement block.
nnnnn times
Specifies the number of times a statement block was executed.
On the Source Listing Backtrace, each relevant backtrace position is indicated in the listing by an arrow or a line:
====>
Indicates the first statement in a statement block
<====
Indicates the last statement in a statement block
====
Indicates all other statements within a statement block
The Source Listing Backtrace displays the source of the each statement:
•The order of the statements reflect the program's execution path.
•The top statement is the first statement executed; the bottom statement is the most recently executed statement.
 516


InterTest™ and SymDump ® 11.0
Navigate Through Program Execution
You can trace your program's execution path by using the following PF keys:
•Using PF5, PF9, and PF11 to trace execution backward
•Using PF6, PF10, and PF12 to trace execution forward
•Setting the Source Listing Profile Stepping Amount, and then using PF9 and PF10 to automatically trace the execution
backward or forward
End a Source Listing Backtrace Session
1.To turn off the Source Listing Backtrace display mode, press Clear or PF3. InterTest for CICS redisplays the Source
Listing Breakpoint screen positioned at the last breakpoint.
2.To toggle between the Source Listing Backtrace and the Backtrace Summary, press PF2.
Set the Code Counting Coverage Option
InterTest for CICS has many options for specialized testing needs. The code coverage option lets you see the number of
times an Assembler statement was executed.
The initial setting for Code Counting is OFF, which is the default. However, you can use the Source Listing Profile screen
to turn it ON or OFF again at any time after you have selected monitoring for a program.
How the counts are displayed or not displayed is handled by the primary line command COUNTS and its associated
parameters.
This feature does cause overhead during program monitoring and should be turned off as soon as it is no longer needed.
To change the setting for Code Coverage, perform the following steps:
1.Type PROFILE on the command line and press Enter, or press PF4 to access the Profile screen from any Source
Listing Screen. The Code Counting= field shows the current setting.
2.Overtype the current value with one of the following:
YES
Enables code counting and turns on the COUNTER display feature.
NO
Removes the COUNTER display and stops the counting feature.


NO
Removes the COUNTER display and stops the counting feature.
3.Press Enter to process the new setting(s) and to return to the Source Listing Display.
The following screen shows the Code Coverage feature.
CA InterTest for CICS  - PROTSYM FILE ABEND DETECTED BREAKPOINT
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
-------------------------------------------------------------------------------
 _____ TASKNUM                         | ?00000.
---------+--------------------------------------------------------| COUNTER |--
 _   587.1            0 F0 F0 F6 F0 F0 F0 F0 F0 'X */,NOPROB);    |         |
 _   588.1     1  2            END;                               | 0000001 |
 _   589.1                     /* EXEC CICS DELETEQ TS QUEUE(TSQ_N|         |
 _   590.1     1  1            DO;                                | 0000001 |
 _   591.1     1  2            DCL DFHENTRY_BF6577CC_AC4F3B6B BASE|         |I
 _   592.1            ER ASSEMBLER) ENTRY(*,CHAR(8));             |         |
 _   593.1     1  2           CALL DFHENTRY_BF6577CC_AC4F3B6B('   | 0000001 |0
 _   594.1            80 00 03 00 00 21 00 F0 F0 F6 F1 F0 F0 F0 F0|         |N
 517


InterTest™ and SymDump ® 11.0
 _   595.1     1  2            END;                               | 0000001 |
 _   596.1     1  1            GOTO CONTINUE_TASK;                | 0000001 |
 _   597.1     1  1         END;                                  | 0000000 |
 _   598.1                                                        |         |
 _   599.1     1            GOTO SENDSCR1;                        | 0000000 |
 _   600.1                                                        |         |
 _   601.1     1      WRITETSQ:                                   | 0000001 |
 _   602.1               TS_SWITCH = ' ';                         |         |
Indirect Commands
The InterTest Indirect Commands facility lets you specify a set of indirect commands to be executed in one of two ways:
•Automatically, when a breakpoint pointing to that set of commands is reached
•On demand, when you are at a breakpoint and use the Breakpoint Primary Option menu to resume execution with an
indirect command (the fastpath is =4.5 from any breakpoint)
By using indirect commands, you can dynamically modify or correct programs without having to leave your test session to
recompile your program.
With the indirect commands facility, you can do the following actions:
•Change the flow of control in your program
•Test conditions based on specified variables
•Change the value of specified variables
•Create and execute commands as a group, like adding a new subroutine
•Automatically resume execution of your program at the same or different location
•Define abbreviations for variables with long names
Code Indirect Commands
InterTest for CICS provides an Indirect Commands facility for coding the statements. You can access it from the Source


Listing or from the ITST menus.
To access the Indirect Commands facility from the Source Listing facility, type ICMDS in the command line or 11 in the
Option # field and press Enter.
NOTE
Tab to the More: + field and press Enter to view labels of Options 6 to 15. Notice Option 11 is Indirect
commands, and Option 12 is Breakpoint options.
CA InterTest for CICS  - PROTSYM FILE  ABEND DETECTED BREAKPOINT
COMMAND ===> ICMDS
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
-------------------------------------------------------------------------------
 _____ TASKNUM                         | ?00000.
---------+---------------------------------------------------------------------
 _   636.1            CONTINUE_TASK:
 _   637.1               MAPNUM  = '00';
 A   ==>.1     1         TASKNUM = TASKNUM + 1;
.
.
.
 518


InterTest™ and SymDump ® 11.0
To access the Indirect Commands facility from the menus, access the Program Monitoring menu (fastpath is ITST 2.1),
and select the Commands option. Detailed steps follow.
1.Select option 2 Monitoring on the Primary Option Menu. The Monitoring Menu appears.
2.Select option 1 Programs. The Program Monitoring screen appears.
3.In the Program field, type the name of the program for which you want to create Indirect Commands.
4.Type S to the left of the Command option (Indirect commands). Press Enter.
-------------------- CA InterTest for CICS  PROGRAM MONITORING  --------------------
 COMMAND ===>

   Type information and S to set or R to remove option(s) below.

   Program  . . PL1DEMO_     Program name (or .ALL, .OPTIONS or generic)
   User ID  . . ________     User (or .ANY) for whom the program is monitored

   Option       Description                                            More:   +
 _ Status       Display and/or remove monitoring options (S only)
 _ Monitor      Monitoring (R removes monitoring and all options previously set)
 _ UBP          Unconditional breakpoints (specific program only)
 _ CBP          Conditional breakpoints (specific program only)
 _ RBP          Breakpoints for CICS, DB2, DL/I or external CALL requests
 _ Stmt Trace   Statement tracing and data monitoring (COBOL only)
 _ New copy     Fetch new copy of program and reset monitoring options (S only)
 s Commands     Indirect commands defined for a specific COBOL or PL/I program
 _ Replace      CICS resource name replacement options
 _ Protect      Storage protection monitoring options
 _ Special      Other options (storage allocation, file updating, etc.)


_ Special      Other options (storage allocation, file updating, etc.)
 _ Composite    Monitor multi-CSECT program's separately compiled components

 PF1 Help       2            3 End        4 Return     5            6
 PF7 Backward   8 Forward    9           10           11           12
When you choose Commands from the Program Monitoring menu, another screen lets you set the terminal ID
(terminal ID, .ANY or .NO) where the indirect commands take effect, and the user ID who executes the program (.ANY
or a specific ID).
Normally you can accept the defaults. However, these entries need to match any existing monitoring entry for the
program, which can be viewed on the Monitoring Status display.
CA InterTest MONITORING COMMAND BUILDER - INDIRECT COMMANDS       24

     SET option to  EDIT  indirect commands defined for execution in:
                                PROG=PL1DEMO

      Term ID (or .ANY or .NO) where commands will take effect:       ____
      User ID (or .ANY) who will execute the program:                 ________

 PF1 Help       2            3 End        4 Return     5            6
 PF7            8            9           10           11           12
5.Press Enter to display the Indirect Commands facility.
 519


InterTest™ and SymDump ® 11.0
The Indirect Commands Facility
Either access method brings you to the Indirect Commands facility shown in the following screen. This example shows the
indirect commands that can be used to fix the ASRA condition in our PL1DEMO demo program, without recompiling. To
do so, follow these steps:
1.Type the statement numbers and the text of the indirect commands on the Indirect Commands screen, as shown in the
following screen. For details, see the Indirect Commands section in Breakpoint Activities and online Help.
2.After coding the statements, press PF3 to exit the Indirect Commands facility. If you accessed the facility from the ITST
menus, use =X to exit the menus.
CA InterTest MONITOR COMMAND BUILDER -   PL1DEMO  INDIRECT COMMANDS       24

   Term ID (or .ANY or .NO): G001                    Delete ALL: NO

  LINE  COMMAND
 ----- ------------------------------------------------------------------------
 00010 /* INITIALIZE TASKNUM */
 00020 MOVE 0 TO TASKNUM
 00030 EXIT

  1 Help       2            3 End        4           5                6
  7 Backward   8 Forward    9 Top       10 Bottom   11               12
CAIN1261 Indirect command(s) added.
Control the Flow of Execution
When running your program, if a breakpoint points to indirect commands, the commands are automatically executed
without stopping first. Execution is returned to the program according to the exit command that you specified in your
indirect commands.
To return execution to your program following indirect command processing, use one of the following exit commands:
BREAK


BREAK
InterTest for CICS halts indirect command processing and issues a breakpoint display from where the indirect
commands were invoked in the program.
GOTO
InterTest for CICS resumes execution at the program statement number, offset, paragraph name, or indirect
command statement number specified after the GOTO command.
EXIT
InterTest for CICS resumes program execution at the breakpoint location from which the indirect commands were
invoked and continues debugging the program until the next breakpoint.
RUN
InterTest for CICS resumes program execution at the breakpoint location from which the indirect commands were
invoked and ignores all subsequent breakpoints.
Attach the Indirect Command to Breakpoints
To have the indirect commands automatically executed by your program, set an unconditional, conditional, or request
breakpoint that points to the first indirect command statement number. When you set a breakpoint with this option, each
time the breakpoint takes effect the indirect commands execute.
 520


InterTest™ and SymDump ® 11.0
From the Source Listing facility, set the unconditional or conditional breakpoint as follows:
1.Display the line in your Source Code where you want to set the breakpoint to execute the indirect commands.
2.Type BPO in the command line or 12 in the Option # field (Breakpoint Options), tab down to the line where you want
to set the breakpoint, type U for unconditional or C for conditional, and press Enter. The Breakpoint Locations menu
appears, letting you set a number of breakpoint options.
3.Tab to the following option near the bottom of the panel:
Statement no. of indirect command(s) to be executed:     _____
4.Type the first indirect command statement number (leading zeroes are optional), as shown in the following screen.
CA InterTest MONITORING COMMAND BUILDER - PL/I BREAKPOINT LOCATIONS       11

    SET breakpoint options for   PROG=PL1DEMO  for location:

              635.1     1      NOPROB:

                                                                       After: _
            All Procedure Names:  _
            Enter 'n' to stop only every n'th time:                         ____
            Term ID (or .ANY or .NO) where breakpoints will take effect:    U057
            Term ID (or .ANY) that will receive the breakpoints:            U057
            Statement no. of indirect command(s) to be executed:           10__
            User ID (or .ANY) who will execute the program:             .ANY

 PF1 Help       2            3 End        4 Return     5            6
 PF7            8            9           10           11           12
5.Press Enter to process this menu.


5.Press Enter to process this menu.
6.If you are setting a conditional breakpoint, type the condition on the Conditional Breakpoint screen and press Enter.
Your Source Listing display shows the indirect command to execute on the line above the statement with the U or C
indicator.
7.To set a request breakpoint that executes an indirect command, follow the usual steps to set the request breakpoint
from the menus. On the Request Breakpoint Selection menu, also type the statement number of the indirect command
to be executed, as shown in the following screen.
CA InterTest MONITORING COMMAND BUILDER - REQUEST BREAKPOINT SELECTION  13

              Set one or more types of Request Breakpoints in:
                                PROG=PL1DEMO

 _ ALL commands                    _ DL/I    _ DB2     _CALLs

   _ Address, Assign,         _ Storage Control    _ BMS
       Handles, Push, Pop     _ Program Control    _ Trace Control
   _ Terminal Control         _ Interval Control   _ Dump Control
   x File Control             _ Task Control       _ Batch Data Interchange
   _ TD Control               _ Journal Control    _ Built-In Functions
 521


InterTest™ and SymDump ® 11.0
   _ TS Control               _ Syncpoints         _ Sys Prog Functions
   _ Web access               _ Business Trans     _ 3270 Bridge

   Enter 'n' to stop only every n'th time:                         ____
   Term ID (or .ANY or .NO) where breakpoints will take effect:    ____
   Term ID (or .ANY) that will receive the breakpoints:            ____
   Statement no. of indirect command(s) to be executed:            100__
   User ID (or .ANY) who will execute the program:                 ________

 PF1 Help       2            3 End        4 Return     5            6
 PF7            8            9           10           11           12
Identify Indirect Commands on the Monitoring Status Display
The following monitoring status display shows the entries for an unconditional breakpoint set at statement #635 that will
execute indirect command statement number 10. The indirect commands are listed as a CMD option to the program.
--------------- CA InterTest for CICS   MONITORING STATUS  ----------------
 COMMAND ===>

   Type + to expand or - collapse option levels displayed below,
          or R to remove option(s).

     Option     Description                Attributes
 _ - PL1DEMO    Program monitor entry      PL/I
     |          Waiting at breakpoint      Task 00066, ABP since 03:17 p.m.
 _ - |-.ANY     User monitoring options    Active
       |        Symbolic listing file      PROTSYM
 _ -   |-UBP    Unconditional breakpoint   #635
       |        Option ID                  DB6BDAD0


|        Option ID                  DB6BDAD0
       |        From, to terminals         U057, U057
       |        Execute indirect command   10
 _ -   |-CMD    Indirect commands defined  U057
       |        Option ID                  57208DFD
 _     |-SLB    Source listing breakpoints U057
                *** End of data ***

 PF1 Help       2 Refresh    3 End        4 Return     5 Collapse   6 Expand
 PF7 Backward   8 Forward    9           10           11           12
Review, Change or Delete Indirect Commands
From the Monitoring Status display, you can remove any monitoring entry.
1.Type R next to the UBP option and press Enter to remove the breakpoint executing the indirect commands. Type R
next to the CMD option to remove the indirect commands.
2.To change, add, delete, or review indirect commands directly from the Source Listing facility, type ICMDS in the
command line or 11 in the Option # field.
InterTest for CICS displays the indirect commands for the default terminal, which is either the terminal you are working
at, or the terminal specified on the Source Listing Profile.
 522


InterTest™ and SymDump ® 11.0
For more information on the Indirect Commands facility, see Breakpoint Activities.
Replacement, Protection, and Special Options
InterTest for CICS has many options for specialized testing needs. A few are explained here. For an explanation of all the
monitoring options, see Monitoring Menu Options.
You can set or remove options from the Monitoring Command Builder menus. For details, see Set Options from the
Monitoring Menus.
Replacement Options
Replacement options let you dynamically change the names of CICS resources such as programs, files, transient data
queues, and temporary storage.
One reason to use replacement options is to correct errors so you can continue testing without recompiling. For example,
suppose InterTest for CICS halts your program at an automatic breakpoint to prevent an AEIL abend caused by an
incorrect file name. You can use the Replace File Name option to dynamically change the file name so testing can
continue.
Another reason for using replacement options is to use different resources during testing than those hard coded in the
program. For example, you can specify that the program use a test file rather than the production file named in the
program.
Protection Options
When InterTest for CICS monitors a program, it prevents the program from modifying storage areas it does not own and
issuing non-CICS instructions.
Protection options let you override the InterTest for CICS default rules for modifying main storage, the CSA, and load
modules. The protection options, which are password protected, provide extra flexibility for special testing needs. These
options let a program to do the following modifications:
•Modify any area of main storage
•Modify areas in the CSA or CWA
•Modify a load module
These options can also prevent a program from modifying specific areas of storage not normally protected.
Special Options


These options can also prevent a program from modifying specific areas of storage not normally protected.
Special Options
Special options alter the InterTest for CICS standard monitoring procedures and help you design customized testing
scenarios.
The No File Updating option prevents a monitored program from updating files. This option is in testing because your file
data is unchanged at the end of program execution. This means:
•You can repeatedly test a program without restoring your files.
•Programs can share the same file without interfering with each other's work.
•A test program can use a production file without affecting data integrity.
Other options provide additional functions. For example:
•The FOL option lets InterTest for CICS continue monitoring even after a program branches directly to another program
(wild branch).
•The MXS option limits the amount of CICS storage a program can use.
•The MXR option limits the number of CICS requests a program can issue.
 523


InterTest™ and SymDump ® 11.0
Composite Module Testing
Composite support lets you take advantage of all InterTest for CICS functions when you test composite modules. A
composite module  consists of separately compiled modules link-edited in one load module. These modules can be written
in different languages and compiled at different times. Composite support lets you test and debug a called subroutine as if
it were a separate program -- with full symbolic support.
Example
Suppose a PL/I program has several subroutines, some written in PL/I, some written in Assembler and PL/I. You can test
and debug any of the subroutines just as if it were a main program by setting breakpoints, setting monitoring options,
displaying the source listing, and displaying and modifying main and auxiliary storage.
A composite module can be defined using one of two methods:
•Execute batch program IN25LINK after the link-edit step for the composite module
•Specify the COMPOSITE command in the Source Listing Display before monitoring is activated for the program
When you set monitoring for a composite module defined by the IN25LINK method, InterTest for CICS informs you that
composite support can be set, as shown in the following message:
CAIN4561 Press PF3 to display composite menu for PLICOMP1
When you press PF3, InterTest for CICS displays the link-edit information for the main program and its subroutines. You
can change this information online.
       CA InterTest for CICS - Composite Support Builder
 COMMAND ===>                                                      SCROLL: PAGE
 Define composite support for PL1DEML  and press PF5.        Row 00001 of 00006
 CAIN2620 Not all subprograms are selected

 * *          *          *        *        *           *
 _ Link name  Monitor    Offset   Length   Language    Comments


_ Link name  Monitor    Offset   Length   Language    Comments
 S PL1DEML1   PL1DEML        80      248   PL/I   4.3
 S PSBIN251   PSBIN25       EE8      1B0   PL/I   4.3
 S ASBIN25    ASBIN25      1098      17C   HLASM  6.0
 _ @PL1DEML   ________     1218       10               Symbolics NOT available
 _ PLIXOPT    ________     1228        8               Symbolics NOT available
 _ @PSBIN25   ________     1230        8               Symbolics NOT available

 PF1 Help       2            3 End        4            5 Process    6 RFind
 PF7 Backward   8 Forward    9           10           11           12
Press PF5 to set composite support so that each program can be tested separately.
Dump Analysis with SymDump
SymDump  for CICS, the InterTest for CICS optional symbolic dump facility, is a powerful online tool that automatically
pinpoints the source statement responsible for an abend. SymDump  for CICS was designed to complement InterTest,
especially in production regions where programs are not usually monitored. Working with InterTest, SymDump  for CICS
lets you bring a dump back to life. Familiar InterTest for CICS Source Listing screens and other facilities, such as the
ability to view and modify main and auxiliary storage, make it easy to resolve application dumps.
SymDump  for CICS is option 5 Dump analysis on the InterTest for CICS Primary Option Menu.
 524


InterTest™ and SymDump ® 11.0
---------------- CA SymDump for CICS  PRIMARY OPTION MENU -----------------
 OPTION  ===>

1 Analysis           - Display/select captured CICS dumps/traces
2 Tracing            - Capture CICS internal trace for analysis
3 Configuration      - Display/modify CA SymDump initialization parameters
4 Start              - Start dump capture facility
5 Stop               - Stop dump capture facility
6 Source             - Display/select program source files/listings
7 Status/Maintenance  -  Product status and maintenance functions
8 What's new?        - Display information about CA SymDump for CICS
X Exit               - Terminate CA SymDump menu processing

                       CA SymDump for CICS

             Copyright © SOLVE:Access  CA.  All rights reserved.

 PF1 Help       2            3 End        4 Return     5            6
 PF7            8            9           10           11           12
With SymDump  for CICS, you can do the following tasks:
•Analyze dumps symbolically online, using InterTest for CICS source code listings
•Resolve CICS production dumps from any region (for example, debug production abends from your test region)
•Manage your dump data set, selectively retaining the dumps you want to view and print, and set configuration
parameters to discard ones you do not need and suppress capture of duplicate dumps
When you use SymDump  for CICS to view a dump, you can select any of the following displays for immediate viewing:
Formatted Displays
Intelligently formatted displays of the dump contents, that often pinpoints the reason for the abend. Displays
include: analysis, source, abend help, program call trace, registers, last CICS screen, files accessed, and


programs, transactions and terminals referenced.
Task Areas
InterTest for CICS CORE displays for such areas as the Commarea, the EXEC Interface Block, and the
Transaction Work Area.
Language Areas
InterTest for CICS CORE displays for such areas as COBOL working storage and COBOL BLL cells.
Database Areas
InterTest for CICS CORE displays for DB2 and DL/I.
CICS System Areas
InterTest for CICS CORE displays for such areas as the Common System Area and the Common Work Area.
Example
Suppose a program not being monitored by InterTest for CICS abends with an ASRA. With SymDump , you can select
Abend analysis display and frequently identify the problem immediately. In the following screen, you can see that abend
analysis gives abending instruction and operands -- even without symbolics.
------------CA SymDump for CICS ABEND ANALYSIS  -----------------
 525


InterTest™ and SymDump ® 11.0
 COMMAND ===>

   Type S to display main storage at the data location address.

   Prog: PL1DEMO    Code: ASRA    Tran: DEMP   Appl: A01IC9NL   Date: 11/28/2000
   User: CICSUSER   Task: 00094   Term: G001   Node: A55TG001   Time: 12:04:06

   Data Type             Location   Value
   Abended by                       Operating system
   Abend type                       Program check, data exception (0C7)
   Abend in CSECT                   PL1DEMO1 + 00000536
   AMODE, EXECKEY                   31, USER
   PSW at time of abend             078D0E00 8C1068EC 00060007 0B99A000
 _ Abending instruction  0C1068E6   FA20D5DD3334
                                    AP    X'5DD'(3,R13),X'334'(1,R3)
                                    Add decimal instruction
 _ Operand 1 storage     0BA0A46D   000000
                                    Invalid packed decimal data
 _ Operand 2 storage     0C108A1C   1C
                                    Packed decimal data

 PF1 Help       2            3 End        4 Return     5            6
 PF7 Backward   8 Forward    9           10           11           12
The Abend Analysis identifies exactly why and where the abend occurred. It gives the abending instruction and storage


values for each operand of the instruction. Abend analysis information is available whether or not you have symbolics
available for the abending program.
In the previous example, the description of Operand 1 tells you its storage value is invalid for its data type. It should be a
packed decimal. Using this display only, you know what triggered the ASRA!
If you get symbolics for the abending program (either before or after the abend) you can select the Source display and see
the breakpoint at the statement that triggered the abend. This is available even though InterTest for CICS was not active in
the region when the abend occurred.
CA SymDump for CICS - PROTSYM FILE SOURCE LISTING DUMP ANALYSIS
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
---------+---------------------------------------------------------------------
 _                  CONTINUE_TASK:
 _                     MAPNUM  = '00';
 A   ==>  1  0     TASKNUM = TASKNUM + 1;
     ==>
     ==> ABEND/DUMP CODE: ASRA
     ==>
     ==>      Press PF1 for a detailed description.
     ==>
 _    96  1  0     IF TASKNUM > 2 THEN
 _                        GOTO END_SESSION;
 _    97  1  0     IF TASKNUM = 1 THEN
 _                        GOTO SENDSCR3;
 _    98  1  0     GOTO END_SESSION;

 526


InterTest™ and SymDump ® 11.0
 _    99  1  0  SENDSCR3:                           /** ASRA CONGRATULATION SC
 _                         /* EXEC CICS SEND MAP('DASRA')
 _                                           MAPSET('IN25PMP')
 _                                           WAIT
 _                                           ERASE */
Now you can use InterTest for CICS features to solve the problem. In this example, you already know the contents of
TASKNUM are invalid from the Abend Analysis display. However, if you need to, you can display the contents of any data
item. You might want use the backtrace facility to trace the program's execution path, or you might want to inspect the file.
InterTest for CICS provides all the tools you need to diagnose and resolve the dump.
PL/I Advanced Demo Session
The advanced demo session demonstrates solutions to several scenarios including limiting CICS requests, detecting
storage violations, debugging composite modules.
If you are a new user, you might want to postpone this advanced demo session until you are more comfortable with the
basic features of InterTest for CICS.
NOTE
Only a handful of InterTest for CICS features are demonstrated in this demo session. For more information, see
CICS Debugging  or the Help facility.
This article consists of the following independent sections, each detailing a different advanced InterTest for CICS feature:
Option 01
Replace a file name.
Option 02
Limit the number of CICS requests issued by a program.Limit the amount of storage obtained by a program.
Option 03
Prevent a program from updating a file. Use request breakpoints and the FILE facility.
Option 04
Detect and prevent a storage violation.
Option 05
Test a composite module.
Before proceeding with the demo session, you must complete the steps outlined in the following section.


Before proceeding with the demo session, you must complete the steps outlined in the following section.
Demo Preliminaries
The advanced demo session uses PL1DEMO just as the basic session did. Before beginning, you need to set some
breakpoints that will be used in different sections of the advanced demo session. The three breakpoints you need to set
for PL1DEMO are shown on the following Monitoring Status screen.
---------------  CA InterTest for CICS   MONITORING STATUS  -------------
 COMMAND ===>

   Type + to expand or - collapse option levels displayed below,
          or R to remove option(s).

     Option     Description                Attributes
 _ - PL1DEMO    Program monitor entry      PL/I
 527


InterTest™ and SymDump ® 11.0
 _ - |-.ANY     User monitoring options    Active
       |        Symbolic listing file      PROTSYM
 _ -   |-UBP    Unconditional breakpoint   #1308
       |        Option ID                  99B13F53
       |        From, to terminals         U057, U057
 _ -   |-RBP    Request breakpoint(s)      REWRITE
       |        Option ID                  8E495266
       |        From, to terminals         U057, U057
 _ -   |-UBP    Unconditional breakpoint   'LOOPRTN'
       |        Option ID                  7D41117C
       |        From, to terminals         U057, U057
 _     |-SLB    Source listing breakpoints U057
                *** End of data ***

 PF1 Help       2 Refresh    3 End        4 Return     5 Collapse   6 Expand
 PF7 Backward   8 Forward    9           10           11           12
The details of setting these breakpoints are provided in the next sections.
Set Unconditional Breakpoints
To begin, you will need to bring up the Source Listing display for the PL/I demo program. This was covered in the basic
demo session.
1.Press PF4 to display the Profile panel. Verify that the Display window is set to N and that the AutoKeep Display is ON.
If not, change either or both of them and press Enter.
CA InterTest for CICS   - PROTSYM FILE  SOURCE LISTING PROFILE
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=


Search=
OPTS 1 Data xref 2 Aggregate 3 Stor reqs  4 Stat stor  5 Var stor   More:   +
     6 Offsets   7 Gend code 8 Err msgs   9 Srch fwd  10 Srch bwd
PFKS 1 Help      2           3 End        4 Auto prms  5 Monitor    6 Menu
     7 Backward  8 Forward   9 Next Wnd  10           11           12 Status
---------+---------------------------------------------------------------------
Display window   = N         N (None), T (Titles), R (Registers),
                             K (Keep), P (Program)
PF7/8 amount     = PAGE      PAGE, HALF, STOP, or a number from 1 to 9999
Step Timing      = BEFORE    Stop  Before  or  After  the next STMTS is executed
Stepping amount  = 001       The number of STMTS   to execute
Auto-stepping    = OFF       ON to activate; press PF4 to change values
Source List BKPT = ON        OFF to use the detailed breakpoint display
From terminal ID = U006      Terminal ID where the program will execute
BKPT terminal ID = U006      Terminal ID to receive the breakpoint displays
User ID          = .ANY      User ID who will execute this program
AutoKeep Display = ON        OFF to deactivate
Code Counting    = OFF       ON to activate Code Coverage
SDF              = DATA      DATA for Structure Display Format
2.Press PF3 to return to the listing.
Now you will set unconditional breakpoints at three procedure names. Setting unconditional breakpoints lets you halt
the program so that you can set options and check the contents of data items.


the program so that you can set options and check the contents of data items.
3.Start by searching for the label READATA. Tab to the Search= field, type l readata  in the command line and press
Enter.
 528


InterTest™ and SymDump ® 11.0
CA InterTest for CICS  - PROTSYM FILE  SOURCE LISTING DISPLAY
COMMAND ===> l readata
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
-------------------------------------------------------------------------------
 _    18.1            /*   INTERTEST PL/I DEMO PROGRAM   10/01/89  3.1.200
 _    19.1            PL1DEMO:  PROC(DFHEIPTR,COMMAREA_PTR) OPTIONS(MAIN REENT
 _    20.1     1      DCL 1 DFHCNSTS  STATIC,  /* CONSTANTS USED BY TRANSLATOR
 _    21.1                   2  DFHLDVER CHAR(22) INIT('LD TABLE DFHEITAB 530.
 _    22.1                   2  DFHEIB0 FIXED BIN(15) INIT(0),
 _    23.1                   2  DFHEID0 FIXED DEC(7) INIT(0),
 _    24.1                   2  DFHEICB CHAR(8) INIT('        ');
 _    25.1     1      DCL DFHEPI ENTRY, DFHEIPTR PTR;
 _    26.1     1      DCL 1 DFHEIBLK BASED (DFHEIPTR),
 _    27.1                  02    EIBTIME  FIXED DEC(7),
 _    28.1                  02    EIBDATE  FIXED DEC(7),
 _    29.1                  02    EIBTRNID CHAR(4),


_    29.1                  02    EIBTRNID CHAR(4),
 _    30.1                  02    EIBTASKN FIXED DEC(7),
 _    31.1                  02    EIBTRMID CHAR(4),
 _    32.1                  02    EIBFIL01 FIXED BIN(15),
 _    33.1                  02    EIBCPOSN FIXED BIN(15),
 _    34.1                  02    EIBCALEN FIXED BIN(15),
 _    35.1                  02    EIBAID   CHAR(1),
 _    36.1                  02    EIBFN    CHAR(2),
The READATA label appears.
You will set unconditional breakpoints at the statement:
GOTO SENDMP00
4.Tab to the GOTO SENDMP00 statement.
5.Type U to the left of the statement, and press Enter. The U sets a breakpoint that stops before  the statement executes.
You could also type a ) to set a breakpoint that stops after the statement executes.
CA InterTest for CICS   - PROTSYM FILE  SOURCE LISTING DISPLAY
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
---------+---------------------------------------------------------------------
 u  1308.1     1             GOTO SENDMP00;
 _  1309.1
 _  1310.1     1      READATA:
 _  1311.1                   /* EXEC CICS HANDLE CONDITION  DSIDERR
 _  1312.1                                                  ERROR    (GENERR)
 _  1313.1                                                  NOTOPEN  (NOPEN) *


_  1313.1                                                  NOTOPEN  (NOPEN) *
 _  1314.1                   DO;
.
.
.
InterTest for CICS sets the breakpoint and redisplays the screen with an uppercase U.
 529


InterTest™ and SymDump ® 11.0
Set an Unconditional Breakpoint for a Label
Now you will set a second unconditional breakpoint at the LOOPRTN label from the Labels Cross-Reference section.
When you set the breakpoint from the Labels Cross-Reference section, it is set at the label name and not at the statement
number. This is a good method to use if you want to use the breakpoint after recompiling -- the breakpoint is transferred to
the new program by label-name, and not by statement-number (which might change between compiles).
1.Type L .LX  in the command line or type 14 in the Option # field, and press Enter .
The Labels Cross-Reference section of PL1DEMO appears.
CA InterTest for CICS   - PROTSYM FILE  SOURCE LISTING DISPLAY
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
-------------------------------------------------------------------------------
 _                   LABEL ATTRIBUTE/XREF TABLE
        LINE.FILE IDENTIFIER                      ATTRIBUTES
 _      1646.1    CALLCOMP                        CONSTANT LABEL
                                                  Refs: 1643.1
 _       857.1    CONTINUE                        CONSTANT LABEL
                                                  Refs: 846.1
 _       635.1    CONTINUE_TASK                   CONSTANT LABEL
                                                  Refs: 596.1
 _      1193.1    DSIDERR                         CONSTANT LABEL
                                                  Refs: 558.1 1269.1
 _       704.1    END_SESSION                     CONSTANT LABEL
                                                  Refs: 542.1 576.1 640.1 643+
                                                        666.1 859.1 868.1 882+


666.1 859.1 868.1 882+
                                                        944.1 969.1 994.1 101+
                                                        1044.1 1068.1 1091.1
                                                        1114.1 1137.1 1160.1
                                                        1191.1 1391.1 1487.1
                                                        1644.1
 _       744.1    EXPANDEM                        CONSTANT LABEL
2.Press PF8 to page forward.
3.Type U to the left of the LOOPRTN label, and press Enter. The U sets a breakpoint that stops before  the label name.
You could also type a ) to set a breakpoint that stops after the label name.
CA InterTest for CICS   - PROTSYM FILE  SOURCE LISTING DISPLAY
COMMAND ===>
Program= PL1DEMO  Option # 9     Stmt #                             Margin= 01
                                        Search= LOOPRTN
--------------+----------------------------------------------------------------
 _                     ATTRIBUTE/XREF TABLE-
        LINE.FILE IDENTIFIER                      ATTRIBUTES
                                                  Refs: 709.1 1213.1 1235.1 1+
         515.1    LENGTH                          BUILTIN
 u      1435.1    LOOPRTN                         CONSTANT LABEL
                                                  Refs: 970.1 995.1
 _       773.1    MAPNUM                          AUTOMATIC CHARACTER(2) UNAL+
                                                  Refs: 906.1
                                                  Sets: 635.1 860.1 922.1 947+
                                                        972.1 997.1 1022.1 16+
 530


InterTest™ and SymDump ® 11.0
 _      1536.1    MORE_ENTRY                      CONSTANT LABEL
                                                  Refs: 903.1
.
..
InterTest for CICS sets the breakpoint at the LOOPRTN label and redisplays the screen with an uppercase U.
How to Set Request Breakpoints
You can set request breakpoints to halt a program before CICS commands and macros and other calls, such as calls to
DL/I or DB2. You can set request breakpoints prior to all CICS commands (as you might have done with IBM's CEDF) or
prior to specific commands, such as File Control or Program Control commands. Request breakpoints make it easy for
you to halt your program at various points so you can check program processing. For example, you can halt the program
before every READ command, single-step through the read instructions, and then check main storage to make sure the
program has read the correct record.
For option 03 of the advanced demo session, you need to set request breakpoints at all File Control REWRITE commands
in the demo program. To do this, access the Request Breakpoint Selection menu.
1.Press PF6 to return to the Primary Option Menu.
2.Select  2 Monitoring .
The Monitoring Menu appears.
3.Select 1 Programs.
The Program Monitoring screen appears.
-------------------- CA InterTest for CICS  PROGRAM MONITORING  --------------------
 COMMAND ===>

   Type information and S to set or R to remove option(s) below.

   Program  . . PL1DEMO_     Program name (or .ALL, .OPTIONS or generic)
   User ID  . . ________     User (or .ANY) for whom the program is monitored

   Option       Description                                            More:   +


Option       Description                                            More:   +
 _ Status       Display and/or remove monitoring options (S only)
 _ Monitor      Monitoring (R removes monitoring and all options previously set)
 _ UBP          Unconditional breakpoints (specific program only)
 _ CBP          Conditional breakpoints (specific program only)
 s RBP          Breakpoints for CICS, DB2, DL/I or external CALL requests
 _ Stmt Trace   Statement tracing and data monitoring (COBOL only)
 _ New copy     Fetch new copy of program and reset monitoring options (S only)
 _ Commands     Indirect commands defined for a specific COBOL or PL/I program
 _ Replace      CICS resource name replacement options
 _ Protect      Storage protection monitoring options
 _ Special      Other options (storage allocation, file updating, etc.)
 _ Composite    Monitor multi-CSECT program's separately compiled components

 PF1 Help       2            3 End        4 Return     5            6
 PF7 Backward   8 Forward    9           10           11           12
4.In the Program field, type the name of the program for which you want to set a request breakpoint.
5.Type S to the left of RBP (request breakpoints) and press Enter.
The Request Breakpoint Selection menu appears on which you specify the type of request breakpoint, such as all
CICS commands, File Control, Task Control, and so on.
6.Tab to the File Control field and type S.
 531


InterTest™ and SymDump ® 11.0
7.Press Enter.
CA InterTest MONITORING COMMAND BUILDER - REQUEST BREAKPOINT SELECTION  13

             Set  one or more types of Request Breakpoints in:
                               PROG=PL1DEMO

_ ALL commands                    _ DL/I              _ CALLs

  _ Address, Assign,         _ Storage Control    _ BMS
      Handles, Push, Pop     _ Program Control    _ Trace Control
  _ Terminal Control         _ Interval Control   _ Dump Control
  s File Control             _ Task Control       _ Batch Data Interchange
  _ TD Control               _ Journal Control    _ Built-In Functions
  _ TS Control               _ Syncpoints         _ Sys Prog Functions
  _ Web access               _ Business Trans     _ 3270 Bridge
  _ Channel/Container

  Enter 'n' to stop only every n'th time:                         ____
  Term ID (or .ANY or .NO) where breakpoints will take effect:    ____
  Term ID (or .ANY) that will receive the breakpoints:            ____
  Statement no. of indirect command(s) to be executed:            _____
  User ID (or .ANY) who will execute the program:                 ________

PF1 Help       2            3 End        4 Return     5            6
PF7            8            9           10           11           12
The File Control Request Breakpoint Selection menu appears.
8.On this menu you can select the specific File Control commands where you want to set request breakpoints. In this
case, select REWRITE to halt the program prior to each File Control REWRITE command.
9.Tab to the REWRITE command field.


9.Tab to the REWRITE command field.
10.Type an s and press Enter.
CA InterTest for CICS MONITORING COMMAND BUILDER - REQUEST BREAKPOINT SELECTION

            Set  one or more types of File Control COMMANDS IN:
                                PROG=PL1DEMO

              _ All commands

                    _ READ
                    _ WRITE
                    s REWRITE
                    _ DELETE
.
.
.
InterTest for CICS sets request breakpoints prior to each File Control REWRITE command in the demo program and
redisplays the Program Monitoring Menu.
The next topic is necessary only if you want to use the composite support option. Composite support is an InterTest for
CICS feature designed to aid programmers who are responsible for testing and debugging called subroutines.
 532


InterTest™ and SymDump ® 11.0
•If you do not want to use the composite support option, skip to Execute the Demo Program.
•If you do want to use the composite support option, perform the steps in Composite Support that follows.
Composite Support
Composite support lets you use InterTest for CICS to test and debug composite modules. A composite module   is a load
module (defined in the PPT) that consists of separately compiled or assembled parts brought together when the module
is link-edited. In the demo session, the part of the composite module that receives control from CICS is referred to as the
main program ; the remaining programs are referred to as subroutines . The main program and subroutines can be written
in the same or different languages.
Composite support lets you test and debug a subroutine, such as an external procedure, as if it were a separate
program with full symbolic support. This means you can set breakpoints and other monitoring options individually for any
subroutine. InterTest for CICS also generates automatic breakpoints in the subroutine when it detects an error that would
otherwise cause the program to abend.
To demonstrate this feature, you will set composite support for the composite module PL1DEML, to which PL1DEMO
links. PL1DEML has two called subroutines that you want InterTest for CICS to monitor -- subroutine PSBIN25 written in
PL/I, and subroutine ASBIN25 written in Assembler.
Follow these steps:
1.In the Program Monitoring Menu, type =X in the Command line, and press Enter to exit the menus and return to the
Source Listing Display.
2.In the Program field, overtype PL1DEMO with PL1DEML , and press Enter.
CA InterTest for CICS  - PROTSYM FILE SOURCE LISTING DISPLAY
COMMAND ===>


COMMAND ===>
Program= PL1DEML  Option #       Stmt #                             Margin= 01
                                        Search=
---------+---------------------------------------------------------------------
.
.
.
The source listing for the composite module PL1DEML appears.
3.Type COMPOSITE on the command line and press Enter.
       CA InterTest for CICS - Composite Support Builder
 COMMAND ===>                                                      SCROLL: PAGE
 Define composite support for PL1DEML  and press PF5.        Row 00001 of 00006
CAIN2620 Not all subprograms are selected

 * *          *          *        *        *           *
 _ Link name  Monitor    Offset   Length   Language    Comments
 S PL1DEML1   PL1DEML        80      248   PL/I   4.3
 S PSBIN251   PSBIN25       EE8      1B0   PL/I   4.3
 S ASBIN25    ASBIN25      1098      17C   HLASM  6.0
 _ @PL1DEML   ________     1218       10               Symbolics NOT available
 _ PLIXOPT    ________     1228        8               Symbolics NOT available
 _ @PSBIN25   ________     1230        8               Symbolics NOT available

 PF1 Help       2            3 End        4            5 Process    6 RFind
 PF7 Backward   8 Forward    9           10           11           12
 533


InterTest™ and SymDump ® 11.0
4.Press PF5 to activate composite program monitoring for PL1DEML.
Execute the Demo Program
Now you are ready to execute the demo program PL1DEMO.
1.Type =X in the Command field to exit the menus, and then use PF3 to exit Source Listing.
You return to CICS.
2.On a clear CICS screen, type the transaction identifier of the PL/I demo program you will be using: DEMP. Press Enter.
The following Welcome Screen appears.
  ******************************************************************************
  ******************************************************************************
  *****                                                                    *****
  *****                        Welcome to the                              *****
  *****                  CA InterTest Demo Session                         *****
  *****                                                                    *****
  *****                                                                    *****
  *****             Before proceeding, please have on hand the             *****
  *****             guide which accompanies the Demo Session.              *****
  *****                                                                    *****
  *****                                                                    *****
  *****    Please make sure that the program PL1DEMO is monitored by       *****
  *****    CA InterTest. This program will abend if not being monitored.   *****
  *****                                                                    *****
  *****    To turn the monitor on, press CLEAR and follow the steps        *****
  *****    outlined in the documentation.                                  *****
  *****                                                                    *****
  *****    If the monitor is already on, press ENTER to begin the          *****
  *****    Basic Demo Session or PF2 to go to the Options Menu.            *****
  *****                                                                    *****
  ******************************************************************************
  ******************************************************************************
From the Welcome Screen you can access the Options Menu. Each of the options is detailed in the sections that
follow
3.Press PF2 to go to the Options Menu of the demo .
The demo program displays the Options Menu, as shown next.
    **********************************************************************
    ****                                                              ****
    ****             CA InterTest Demo Session                        ****


****                                                              ****
    ****             CA InterTest Demo Session                        ****
    ****                         Options Menu                         ****
    ****                                                              ****
    **********************************************************************

    01  Replace file control ID
    02  Limit CICS storage and requests
    03  No file updating
    04  Storage violation detection
    05  Composite support

 534


InterTest™ and SymDump ® 11.0
                                 Key in request:  01

         Press ENTER to continue or CLEAR to terminate

Option 01 Replace a File Control ID
This section of the demo session details how to replace a File Control ID. The demo program PL1DEMO is attempting to
read and display a record, but the file name specified in the program is incorrect, possibly because it was misspelled.
WARNING
Before proceeding, be sure you have completed the steps outlined in the Demo Preliminaries section, and that
you have the InterTest for CICS Demo Session Options Menu displayed on your screen.
1.Select option 01  and press Enter.
The demo program displays the following screen, which describes what occurs in this part of the demo session.
    **********************************************************************
    ****                                                              ****
    ****                 CA InterTest Demo Session                    ****
    ****                Replace File Control ID Option                ****
    ****                                                              ****
    **********************************************************************

    The program attempts to read file PROTH. Because the file name has been
    incorrectly specified, this would cause a DSIDERR condition which would
    result in an AEIL abend. Instead, here is what will happen:

    1. CA InterTest halts the program at an automatic breakpoint.
    2. You set the Replace File Control option to change the file name
       without recompiling.
    3. You re-execute the program from the point at which it first tried
       to read the file.

    When this section of the demo completes, you will return to the
    Options Menu.

              Press ENTER to continue or CLEAR to terminate
2.Press Enter.


Press ENTER to continue or CLEAR to terminate
2.Press Enter.
InterTest for CICS halts the demo program at an automatic breakpoint.
Prevent an AEIL Abend
The following screen shows that InterTest for CICS halted the demo program at an automatic breakpoint (note the A in
column 1) before an AEIL abend could occur.
CA InterTest for CICS  - PROTSYM FILE  ABEND DETECTED BREAKPOINT
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
---------+---------------------------------------------------------------------
 535


InterTest™ and SymDump ® 11.0
 _  1321.1     1             RECKEY = '0000000000';
 _  1322.1                   /* EXEC CICS STARTBR DATASET('PROTH') RIDFLD(RECK
 A   ==>.1     1             DO;      ==>
     ==> CICS abend intercepted. Abend code = AEIL.   EXEC CICS request was
     ==> STARTBR. Now stopped AFTER the CALL.
     ==>
     ==>      Press PF1 for a detailed description.
     ==>

 _  1324.1     1  1          DCL DFHENTRY_BF6577CC_B2C81A6B BASED(ADDR(DFHEI0)
 _  1325.1             ASSEMBLER) ENTRY(*,CHAR(8),*,FIXED BIN(15),*);
 _  1326.1     1  1          CALL DFHENTRY_BF6577CC_B2C81A6B(' .^. . µ.0433000
 _  1327.1             00 03 00 20 A0 00 F0 F4 F3 F3 F0 F0 F0 F1 'X */,'PROTH'
 _  1328.1            FHEIB0,RECKEY);
 _  1329.1     1  1          END;
 _  1330.1     1             REC_LEN = 0;
 _  1331.1                   /* EXEC CICS READNEXT DATASET('PROTH')
 _  1332.1                                     SET(REC_PTR)


_  1332.1                                     SET(REC_PTR)
 _  1333.1                                     RIDFLD(RECKEY)
What's the problem?
The data set name PROTH is wrong; it should be PROTHLF.
How can it be fixed?
InterTest for CICS lets you dynamically correct the file name and continue testing. The following section explains how.
Change the File Name
InterTest for CICS lets you dynamically change an incorrect file name in the middle of your test session, allowing you
to continue testing without recompiling your program. In this case, you can correct a simple typo in the demo program
without interrupting your test session or changing your File Control Table.
To change the file name, you need to access the Program Monitoring Replacement Options menu.
1.Specify RO on the command line.
2.Press Enter.
The Replacement Options menu appears.
The Set Replacement Options menu lets you dynamically change a program name, file name, transient data queue
name, or temporary storage ID.
3.Tab to the Replace file name field.
4.Specify the incorrect file name (proth) in the first column and the correct file name (prothlf) in the second column, and
press Enter.
CA InterTest for CICS MONITORING COMMAND BUILDER - REPLACEMENT OPTIONS     20

     SET one or more options to replace one CICS resource name with another in:
                                PROG=PL1DEMO

      Replace program name:         ________   with   ________
      Replace file name:            proth___   with   prothlf_
      Replace TD queue name:        ____       with   ____
      TS selection mask:            ____________________________________
 536


InterTest™ and SymDump ® 11.0
      TS replacement mask:          ____________________________________

      Limit monitoring to your terminal - '*'  or TERMID:       ____
      User ID (or .ANY) who will execute the program:           ________
.
.
.
InterTest for CICS dynamically replaces the incorrect file name when the program executes. InterTest for CICS then
redisplays the Program Monitoring menu.
5.Press PF4 until the Source Listing Breakpoint Screen reappears.
Resume Execution
Now that you have dynamically corrected the file name, you are ready to resume program execution. However, you must
back up to and execute the statement that contains the EXEC CICS STARTBR command with the incorrect file name,
rather than resume execution at the statement that triggered the breakpoint.
1.On the Source Listing Breakpoint screen,  tab to the DO statement following the EXEC CICS STARTBR command and
type G (go).
2.Press Enter  to resume program execution.
CA InterTest for CICS  - PROTSYM FILE  ABEND DETECTED BREAKPOINT
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
---------+---------------------------------------------------------------------
 _  1321.1     1             RECKEY = '0000000000';
 _  1322.1                   /* EXEC CICS STARTBR DATASET('PROTH') RIDFLD(RECK
 g   ==>.1     1             DO;
 _  1324.1     1  1          DCL DFHENTRY_BF6577CC_B2C81A6B BASED(ADDR(DFHEI0)


_  1325.1             ASSEMBLER) ENTRY(*,CHAR(8),*,FIXED BIN(15),*);
 _  1326.1     1  1          CALL DFHENTRY_BF6577CC_B2C81A6B(' .^. . µ.0433000
 _  1327.1             00 03 00 20 A0 00 F0 F4 F3 F3 F0 F0 F0 F1 'X */,'PROTH'
 _  1328.1            FHEIB0,RECKEY);
 _  1329.1     1  1          END;
 _  1330.1     1             REC_LEN = 0;
 _  1331.1                   /* EXEC CICS READNEXT DATASET('PROTH')
 _  1332.1                                     SET(REC_PTR)
 _  1333.1                                     RIDFLD(RECKEY)
 _  1334.1                                     LENGTH(REC_LEN) */
 _  1335.1     1             DO;
 _  1336.1     1  1          DCL DFHENTRY_BF6577CC_B2D0406B BASED(ADDR(DFHEI0)
 _  1337.1             ASSEMBLER) ENTRY(*,CHAR(8),POINTER,FIXED BIN(15),*,*,FI
 _  1338.1     1  1          CALL DFHENTRY_BF6577CC_B2D0406B('0000011000001110


_  1339.1            00000001100000001000000001011000000000000111100001111010
The program resumes execution and displays the record it has read on your screen as shown in the following screen.
The demo program has succeeded in reading a record from file PROTHLF (the InterTest for CICS Help file). The demo
program displays the first record in that file.
    **********************************************************************
    ****                                                              ****
    ****                  CA InterTest Demo Session                   ****
    ****             Replace File Control Identifications             ****
 537


InterTest™ and SymDump ® 11.0
    ****                                                              ****
    **********************************************************************

         Record retrieved: * 0000000000    VE0301InterTest ZELP Facil *
                           * ity Master Menu                          *
                           *                                          *
                           *                                          *
         Record length = 0960

         You have now successfully utilized the REPLACE option

         Press ENTER to continue or CLEAR to terminate
Review What Happened
In this part of the demo session:
•InterTest for CICS halted the demo program at an automatic breakpoint caused by an incorrect file name
•You dynamically corrected the file name and resumed program execution.
Replacing the incorrect file name in the demo program allowed you to continue testing that program without recompiling it.
Of course, if one of your programs or the CICS FCT has an incorrect file name, you would eventually have to correct the
source code.
In this case the error was caused by a typo. However, the Replacement Options are useful in many situations. For
example:
•You can dynamically change a file name to test a program using a different file. This allows you to use a test file
without altering the name of the production file hard coded in the program.
•You can change a program name or transient data queue name to test a program or queue other than the ones that
are hard coded.
This concludes Option 01 of the advanced demo session. Press Enter to continue with the demo session or press Clear to
terminate the session.
Option 02 Limit CICS Storage and Requests
This section of the demo session shows how to limit CICS main storage and CICS requests for a specific program (the
demo program). Two InterTest for CICS options are detailed in this part of the demo session:


demo program). Two InterTest for CICS options are detailed in this part of the demo session:
•The MXS option limits the amount of main storage obtained by a task. This option is useful in detecting program errors
that cause a task to acquire an excessive amount of storage.
•The MXR option limits the number of CICS requests, commands, and macros that a program can issue. This option is
useful in detecting program loops that generate an excessive number of CICS requests.
WARNING
Before proceeding, be sure you have completed the steps outlined earlier in this article in Demo Preliminaries,
and that you have the InterTest for CICS Demo Session Options Menu displayed on your screen.
1.Select option 02, and press Enter.
The demo program displays a screen that describes what will occur in this part of the demo session.
 538


InterTest™ and SymDump ® 11.0
    **********************************************************************
    ****                                                              ****
    ****                 CA InterTest Demo Session                    ****
    ****          MXR Option - Limit Number of CICS Requests          ****
    ****          MXS Option - Limit Amount of CICS Storage           ****
    ****                                                              ****
    **********************************************************************

    The program has a loop containing a CICS request and another loop
    containing a GETMAIN request. Here is what will happen:

    1. The program is halted at an unconditional breakpoint before the loops.
    2. You set the MXS and MXR options to limit storage and CICS requests.
    3. The program continues to execute.
    4. CA InterTest halts the program at automatic breakpoints when the
       limits are exceeded.
    5. You remove the options and the program completes execution.

    When this section of the demo completes, you will return to the
    Options Menu.

              Press ENTER to continue or CLEAR to terminate
2.Press Enter.
InterTest for CICS halts the program at the procedure name LOOPRTN label because you set an unconditional
breakpoint there as part of the Demo Preliminaries.
Now you can access Special Options from the Program Monitoring menu to set the options you need for testing.
Set the MXS and MXR Options
1.Type SO in the command line.
2.Press Enter.
The Special Options menu appears.
The Special Options menu lets you set several options to change how InterTest for CICS monitors a program. You are
going to set two options:
–MXS, to limit the amount of CICS main storage acquired by the demo program


–MXS, to limit the amount of CICS main storage acquired by the demo program
–MXR, to limit the total number of CICS requests issued by the demo program
3.Specify 50,000 bytes as the maximum amount of main storage the demo program can get, and specify 20 as the
maximum number of CICS requests the demo program can issue.
4.Tab to the MXS field and type in 135000, as shown next.
5.Tab to the MXR field and type in 20, as shown next.
6.Press Enter.
CA InterTest MONITORING COMMAND BUILDER - SPECIAL OPTIONS         22

      SET  one or more options to override the default monitoring rules in:
                                PROG=PL1DEMO

           Enter X next to each option desired:

                 Source Listing Breakpoint      (SLB) _
 539


InterTest™ and SymDump ® 11.0
                 No file updating               (NUP) _
                 Reentrancy check               (RNT) _

           Follow monitoring (ON, name, NOPPT)  (FOL) ________
           Number of times to be monitored      (MUS) _____
           Limit total size of CICS storage     (MXS) 135000
           Limit total number of CICS requests  (MXR) 20_____
           Structure Display Format (HEX,DATA)  (SDF) ____

           Set local automatic breakpoint ('*', TERMID, .ANY, OFF)     ____
           Limit monitoring to your TERMINAL - '*' or TERMID:          ____
           User ID (or .ANY) who will execute the program:             .ANY

 PF1 Help       2            3 End        4 Return     5            6
 PF7            8            9           10           11           12
InterTest for CICS limits main storage and CICS requests for the demo program and redisplays the Program
Monitoring screen.
7.Press PF4 until you are returned to the Source Listing Breakpoint screen.
8.Press PF5 to continue program execution.
The demo program resumes execution.
Limit CICS Requests
The next screen is an automatic breakpoint display screen. InterTest for CICS halted the demo program at an automatic
breakpoint because the maximum number of CICS requests (20) was exceeded.
NOTE
If you are working on a system with LE 370 runtimes, you might reach the automatic breakpoint for the MXS
(max storage size) first.
If you do, perform the demo in the following order:


(max storage size) first.
If you do, perform the demo in the following order:
1.Remove the MXS options by typing STATUS, in the command line then 'R' next to the MXS option, and press enter.
Resume execution.
2.After stopping for the MXR trigger value, remove it the same as the MXS and continue.
3.The Demo will execute to completion.
The instruction that triggered the automatic breakpoint is within a loop containing a CICS request.
CA InterTest for CICS  - PROTSYM FILE  ABEND DETECTED BREAKPOINT
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
---------+---------------------------------------------------------------------
 _  1436.1                   DO I = 1 TO 50;
 _  1437.1                      /* EXEC CICS ASKTIME */
 A   ==>.1     1  1             DO;      ==>
     ==> MXR (max CICS requests) trigger value exceeded.
     ==>
     ==>      Press PF1 for a detailed description.
     ==>

 _  1439.1     1  2             DCL DFHENTRY_BF6577CC_B372BAE6 BASED(ADDR(DFHE
.
 540


InterTest™ and SymDump ® 11.0
.
.
Remove the MXR Option
Now you can remove the MXR option so that the demo program continues executing. If this were your own program, you
would want to examine the instructions that are generating excessive CICS requests.
1.Press PF12 , or type STATUS on the command line and press Enter.
The Monitoring Status appears.
--------------- CA InterTest for CICS  MONITORING STATUS  ----------------
 COMMAND ===>

   Type + to expand or - collapse option levels displayed below,
          or R to remove option(s).
                                                                       More:   +
     Option     Description                Attributes
 _ - PL1DEMO    Program monitor entry      PL/I
     |          Waiting at breakpoint      Task 00087, ABP since 01:02 p.m.
 _ - |-.ANY     User monitoring options    Active
       |        Symbolic listing file      PROTSYM
 _     |-MXR    Maximum CICS requests      20
 _     |-MXS    Maximum total storage      135000
 _ -   |-RBP    Request breakpoint(s)      REWRITE
       |                                   DELETE
       |        Option ID                  88A2A671
       |        From, to terminals         U068, U068
 _ -   |-UBP    Unconditional breakpoint   #1308
       |        Option ID                  813C8815
       |        From, to terminals         U068, U068
 _ -   |-UBP    Unconditional breakpoint   'LOOPRTN'

 PF1 Help       2 Refresh    3 End        4 Return     5 Collapse   6 Expand


PF7 Backward   8 Forward    9           10           11           12
2.Remove the MXR option by typing an r next to the MXR breakpoint's entry and pressing Enter.
InterTest for CICS removes the breakpoint.
3.Press PF3 to return to the Source Listing Breakpoint screen.
4.Press PF5 to resume program execution.
Limit Acquisition of Storage
The next screen is an automatic breakpoint display. InterTest for CICS halted the demo program at an automatic
breakpoint because the maximum main storage limit of 135,000 was exceeded. In most cases, the instruction that
triggered the automatic breakpoint is within a loop that contains a GETMAIN request.
    CA InterTest for CICS  - PROTSYM FILE  ABEND DETECTED BREAKPOINT
COMMAND ===>
Program= PL1DEMO  Option #       Stmt #                             Margin= 01
                                        Search=
---------+---------------------------------------------------------------------
 _  1461.1     1  2             CALL DFHENTRY_BF6577CC_B381D92B('. {. ..ð.0476
 _  1462.1             C0 00 03 00 00 8C 00 F0 F4 F7 F6 F0 F0 F0 F0 'X */,GET_
 541


InterTest™ and SymDump ® 11.0
 A   ==>.1     1  2             END;      ==>
     ==> MXS (max storage size) trigger value exceeded.
     ==>
     ==>      Press PF1 for a detailed description.
     ==>

 _  1464.1     1  1          END;
 _  1465.1     1             GOTO SENDMP00;
 _  1466.1     1      NOSTORG:
.
.
.
Remove the MXS Option
Now you can remove the MXS option so that the demo program continues executing. If this were your own program, you
would want to examine the instructions that are causing the program to obtain excessive amounts of storage.
1.Press PF12, or type STATUS on the command line and press Enter.
The Monitoring Status screen appears.
 --------------- CA InterTest for CICS  MONITORING STATUS ----------------
 COMMAND ===>

   Type + to expand or - collapse option levels displayed below,
          or R to remove option(s).
                                                                       More:   +
     Option     Description                Attributes
 _ - PL1DEMO    Program monitor entry      PL/I
     |          Waiting at breakpoint      Task 00087, ABP since 01:13 p.m.
 _ - |-.ANY     User monitoring options    Active
       |        Symbolic listing file      PROTSYM
 r     |-MXS    Maximum total storage      135000
.
.
.
2.Remove the MXS option by typing an r next to the MXS breakpoint's entry and pressing Enter.
InterTest for CICS removes the breakpoint.
3.Press PF3 to return to the Source Listing Breakpoint screen.


3.Press PF3 to return to the Source Listing Breakpoint screen.
Demo Program Completes Execution
Press PF5 to resume program execution.
The demo program completes execution. InterTest for CICS returns to the demo's Options Menu.
Review What Happened
In this part of the test session you set two options to help test the demo program:
 542


InterTest™ and SymDump ® 11.0
•The MXR option lets you limit the number of CICS requests the program could issue. When the demo program
exceeded this limit, InterTest for CICS halted the program. This feature helps you find program instructions within a
loop that generate an excessive number of CICS requests.
•The MXS option lets you limit the amount of main storage used by the program. When the demo program exceeded
the amount of storage you specified, InterTest for CICS halted the program.
This feature helps you find commands or macros within a loop that are getting excessive amounts of storage.
This concludes Option 02 of the advanced demo session. Press Enter to continue with the demo session or press Clear to
terminate the session.
Option 03 Prevent a Program from Updating a File
This section of the demo session details how to execute a program without having it update a file.
The No File Updating option is useful when you are testing a program. Preventing a program from updating a file means
your test data remains unchanged at the end of each program execution, so you can test the program repeatedly without
having to recreate test data.
Many programs can use the same test file without interfering with each other's work. You can even allow a test program to
use a production file because the integrity of the file is preserved.
WARNING
Before proceeding, be sure you have completed the steps outlined earlier in this article in Demo
Preliminaries and that InterTest for CICS Demo Session Options Menu is displayed on your screen. Also be sure
that the InterTest for CICS checkpoint file (PROTCPF) has been defined to your CICS region and that the file's
current status is Open and Enabled.
1.Select option 03, and press Enter.
The demo program displays the following screen that describes what will occur in this part of the demo session.