During an active monitoring session, if InterTest for CICS detects a potential problem with an application program, it will stop program execution and issue an Automatic Breakpoint (ABP) .
One such example is when a program attempts to write to the CICS Common Work Area (CWA); an area of storage defined within a CICS region that any user application can potentially utilize. Although the CWA can be considered a "public" area, while monitoring a program with InterTest, any attempt to write to this area will be perceived as a potential storage violation. In such a situation, InterTest will stop program execution and issue an automatic breakpoint. Any attempts to continue will be prevented unless the programmer takes some sort of corrective action.
My program will write data to the CICS CWA and never have a problem when it is not being monitored with InterTest. However, when the program is monitored, InterTest issues an automatic breakpoint, displays a message "About to change an area that does not belong to this task", and will not let the program continue. How can this problem be prevented?
Using CA InterTest for CICS to monitor an application program that writes to the CICS CWA.
InterTest offers different methods to allow programs to write to the CWA.
- The CWA monitoring option
- Can be set from Option 21 "Protection Options" of the CNTL menu
- Unprotect the CWA starting at a specified offset (hex) for a specfied length (hex)
- If set with a CNTL command, the format of the option is CWA=(offset,length)
- Unprotect the CWA according to the specified values
- Can be set on one specific program, a group of like named programs, or globally
- CNTL=ON,PROG=COBDEMO,CWA=(1C,30) - when monitoring Cobdemo, unprotect the CWA at offset 1C for 30 (hex, 48 decimal) bytes
- CNTL=ON,PROG=COB*,CWA=(1C,30) - when montoring any program beginning with COB, unprotect the CWA as above
- CNTL=ON,PROG=.OPTIONS,CWA=(1C,30) - set the CWA option globally for any monitored program
- Any of these options above can be set automatically using a PROMMAC macro
- The CWALET keyword of IN25OPTS
- This method is used if certain fields of the CWA need to be globally unprotected
- The keyword format is CWALET=novalue or CWALET=(label1,label2)
- novalue - the default. Do not unprotect the CWA
- label1,label2 - label1 defines the first byte of the area to be unprotected; label2 defines the first byte past the area
- labels must be defined in the CWA DSECT required for the application programs that use it
- this same DSECT must be included in the IN25OPTS assembly
- If specifying more than one CWALET area, you must specify each area separately using it's own TYPE=CSECT
- The CWALET macro(s) must follow all other IN25OPTS macros but precede the TYPE=FINAL which must be the last
Depending upon the needs of the applications in use, these options can be used individually or in conjunction with each other to remove InterTest protection from this area.
Refer to the CA Intertest and Symdump r 10 documentation wiki for information on both the
- CWA monitoring option described in the section entitled CNTL Commands and Menus
- The description of CWALET found within the CA InterTest for CICS Keywords subsection of the IN25OPTS Keywords
- see the section "Sample JCL to Assemble the Options Program" for details on setting up the CWALET option.
Information on the CICS CWA can be obtained from the IBM Knowledge Center, CICS Transaction Server description of Storage Protection