Information
Space announcement This documentation space provides the same content as before, but the organization of the content has changed. The content is now organized based on logical branches instead of legacy book titles. We hope that the new structure will help you quickly find the content that you need.

MRO and ISC Debugging Considerations


BMC recommends the following special procedures be followed to more effectively debug transactions in MRO and ISC environments:

  • If possible, avoid using the CRTE transaction to connect the terminal directly to one specific region. Although a direct connection works well with local traps, if the user sets a global trap for abends for another terminal (in the same or another region), the user’s terminal cannot receive the Code Debug CICS remote bulletin that is generated when the system traps an abend. The terminal does not receive the remote bulletin because CICS always directs the DBXG auto-initiated transaction to the TOR.
    If CRTE was used to connect the terminal to a region, the TOR considers the terminal busy because it is owned by the CRTE transaction. Unless you use one of the Code Debug CICS List Abends screens (1.3/9.3) to process the remote bulletins, they do not appear until you enter CANCEL to exit the CRTE session and return to the TOR.
    Code Debug global parameter OK_TO_USE_XPEDITER_WITHIN_CRTE_SESSION=NO can be specified to prevent starting a Code Debug session within a CRTE explicit routing session. For more information, see the section entitled “Configuration-Parameters” in the Code Debug CICS Advanced Configuration space.
  • Although the test transaction can execute outside the TOR, it is best not to set traps for abends occurring in the TOR. When setting a trap for abends in the TOR, Code Debug CICS first traps any abend for the AOR, as requested. If you then request a dump or return to CICS, Code Debug CICS will also trap the resulting AZI6 abend for the TOR DFHCRP relay program as a reflection of the original problem. The second abend trap is of little use, and it can lead to the false conclusion that a second terminal abend has occurred. If the test transaction executes in the TOR, set the traps there.
  • When using CICS function-shipping, do not set breakpoints or abend traps to catch abends for CICS CSM* mirror transactions that may service file control and other CICS requests in other regions. Setting these breakpoints or traps can cause the terminal to hang if it is busy with the test transaction. This condition could cause the test transaction to wait for a response from the CSM* transaction, abended and trapped in another region.
    If this lockout situation occurs, the user can only sign on to Code Debug CICS at a second terminal in the region where the CSM* abended transaction was trapped. Select the trapped CSM* abended transaction from the List Abends screen (1.3/9.3) and debug as required. When completed, request a dump from the Exit Session screen. The dump will continue the abend and free both the mirror and the test transaction. 
Warning

Important

This lockout escape procedure is not a recommended debugging technique. It is better to trap abends in the test transaction, where you can observe the tasks that enter and leave the function-shipping CICS call. In most cases, these observations provide the information needed to debug the program.

Example Debugging Procedure Using CICS Static Transaction Routing

The following debugging procedure assumes a possible testing scenario where two test transactions (TST1 and TST2) execute in two different application-owning regions (AORs) named AOR1 and AOR2. In this scenario, always assume that a system programmer has installed Code Debug CICS with CICS transaction routing and that the XPRT transactions were given the aliases of XPR1 and XPR2 for regions AOR1 and AOR2 respectively. The following steps detail the debugging procedure:

  1. Sign on to the TOR, and then enter the XPR1 command to start Code Debug CICS in region AOR1. The Primary Menu is displayed. The system automatically establishes an abend trap for all abends that occurred on the terminal (in region AOR1).
  2. Set breakpoints, a program trace, or protection rules for the program in region AOR1. Press Clear, or type =X and press Enter, to transfer to the Exit Session screen (X).
  3. Press Enter on the Exit Session screen (X) to leave the Code Debug CICS session active and to return to a blank CICS screen in the TOR.
  4. Enter XPR2 to start Code Debug CICS in region AOR2. Repeat Step 2 and Step 3 as needed for AOR2.
  5. Enter the test transaction name TST1 to run the test transaction.
    If the program in either region encounters abends or breakpoints, Code Debug CICS automatically takes control and displays either the View Break-Abend-2-1 screen or the Source-Listing-2-L screen. At this point, the system allows single-stepping, resuming, and other available functions. Successive Code Debug CICS screens may originate from alternating regions, in the order in which the trapped events occurred.
  6. When finished debugging, end both Code Debug CICS sessions.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC AMI DevX Code Debug for CICS 17.02