CICS COBOL Fault Diagnosis
This tutorial will guide you through some of the capabilities within BMC AMI DevX Abend-AID, including:
- Using Abend-AID to examine a CICS COBOL abend.
- Utilizing Abend-AID's features to view storage, compiled listings, variable values.
- Employing Abend-AID to dig into the transaction executing at the time of the abend.
Table of Contents
- Starting BMC AMI DevX Abend-AID
- The Diagnostic Summary
- Program Detail Screen
- Abend-AID Peek
- Task Detail Screen
- Program Summary Screen
- Wrap-up
Starting BMC AMI DevX Abend-AID
To access Abend-AID for Batch within BMC AMI DevX Workbench for Eclipse:
This opens a view into Abend-AID within your Workbench for Eclipse IDE. Integration of the tools needed for developers to do their daily jobs is a key feature of the BMC AMI DevX Workbench for Eclipse experience.
The main menu of Abend-AID is the gateway to many useful views of your Fault Analysis data. We'll start by looking at the Fault Summary of a specific job (HCCAC013) to spotlight how you can leverage Abend-AID to quickly understand the root cause of a reported abend.
Fault Summary provides you easy, hyperlinked access to your generated batch, CICS, IMS, and SVC dumps sortable by job name, CICS region name, IMS message region name, etc. Each column provides a masking field (asterisks) to shorten the time needed to find your dump.
You now have filtered to only jobnames that begin with HCCA. Next we'll dig a little deeper using Abend-AID's hyperlinks.
We've now filtered down to entries only for jobname HCCAC013. Next we'll select one of the entries to begin diagnosing an abend.
The Diagnostic Summary
The Diagnostic Summary provides the information necessary for diagnosing a transaction abend. The summary provides a probable reason for the abend, and usually suggests a resolution. For COBOL, PL/I, and Assembler programs compiled or assembled with source support, the statement number and source code of the statement in error are provided to the developer.
We'll use the Diagnostic Summary as a window into details about the program, the listing, storage areas, a narrative explanation of the error code, and other information valuable in diagnosing an abend.
Abend-AID provides to you an explanation of the abend code. For many reason codes, recommended corrective action is offered.
Program Detail Screen
The Program Detail screen provides detailed information about the selected program and gives you hyperlinks to source listings, concatenations and storage areas.
You are shown the entire DFHRPL concatenation directly from Abend-AID, saving the time of having to track down the information via other means.
The COBOL Listing screen displays the source listing statements of the selected program, highlighting the active statement (abending offset, program call, etc.). For COBOL programs, Abend-AID for CICS displays the Working Storage Section, the Linkage Section, and the Procedure Division of the selected program. For Pl/I and Assembler programs, Abend-AID for CICS displays the entire source listing.
Abend-AID Peek
Abend-AID's Peek line command displays the program storage for variables in the listing.
To use the Peek command, enter 'Pn' in the first two columns of the line number, where 'n' is the relative number of the variable in the statement.
Abend-AID highlights for you the storage containing the "peeked" variable.
You're placed in the WORKING-STORAGE SECTION of the COBOL Listing Screen. Later we'll look at the Linkage Section storage area, but note that there are more options available on the COBOL Storage Areas screen.
Here you are taken to the Expanded Data Field, which shows values in both zoned decimal and in character mode. This section is particularly helpful for fields containing a mixture of display, binary, and packed decimal fields.
Abend-AID makes it easy to locate the fields that comprise the DFHCOMMAREA, their picture types, variable values and any other fields passed between programs (if present).
Task Detail Screen
The Task Detail screen gives you detailed information about the status of the transaction at the time of the abend. Included is information about the resources being used, such as the program control table (PCT) entry, the task control area (TCA), and the execute interface block (EIB).
Abend-AID provides multiple paths to key information. Earlier we saw the Program Detail screen was accessed from the Diagnostic Summary. Here we access the same info from the Task Detail screen, saving you the time it would take to return to Diagnostic Summary before again accessing Program Detail.
Since the abending program and the initial program were the same, the Program Detail screen from each provides the same information. Had the initial program invoked been different from the abending program, the 'Initial Program' hyperlink would have taken you to the program detail for the program initiated when the transaction was invoked.
Exception: When an invoked program issues a transfer control to a new program, the base is reset to the program that was just called and program storage prior to the transfer control would be cleared. In this situation, clicking on the initial program would return a 'No Program Storage Found' message.
The remaining hyperlinks provide you access to other detailed information about the transaction. For your CICS administrators there is a link to control block information. The 'Supporting Information' section will be discussed later in the script.
The Terminal Detail screen is where you can find information about the terminal associated with the transaction, such as the last 3270 image and data stream analysis.
Here you have direct and clear access to what was displayed on the user's screen when the transaction was invoked.
- The abending line of code is easily found with a hyperlinked line number that takes you to the listing.
- The variables comprising the line of code, along with their picture types and values at the time of the abend. The variables and values are hyperlinks to Working-Storage.
- Abend-AID produces for you a narrative explanation of the abend and IBM messages that accompany the abend.
- The Next Sequential Instruction subsection provides essential information about the instruction after the abend, the load library or program object library from where the module was loaded and the compile date/time.
- The Last Call or EXEC CICS subsection shows you the last program call or last 'EXEC CICS' executed prior to the abend in the paragraph where the statement resided.
- The 'Last Call Arguments and Values' subsection will display any passed variables from the preceding subsection's last program call or last EXEC CICS. Since the last EXEC CICS that was executed was an ignore condition, there were no arguments to be passed.
- The Program Link Summary is one of the more important subsections within Diagnostic Summary. This subsection displays the sequence of programs called from the initial program to the point the abend occurs. In this example, the initial program was the program that abended, so the active calling chain consists of a single module.
As we saw earlier in the Terminal Detail screen, the screen hyperlink shows you an image of the user's terminal.
The File Request Summary summarizes key identification data for each file request on the storage chain at the time of the abend.
The File Detail screen displays general file information, statistics, and status about the selected file. In addition, the Local File Detail screen provides access to the Record Image screen.
The key and record data displayed are associated with the selected file request (available for local files only).
The Program Information screen offers you quick access to four screens of key program-related information.
Program Summary Screen
The Program Summary Information screen identifies all active modules involved in an abending transaction. Key identification data is summarized for each module used by a transaction up to the abending module.
From here you have links to extensive information about the application programs that comprise the active calling chain:
- The Program Detail, Program Listing, and Program Storage options have all been covered in this document previously.
- Clicking on the Compile Options shows the language and version the program was compiled or assembled under, as well as the compile options (if the program was compiled with COBOL).
- Data Locator, Extended Search, Impact Analysis and COBOL PERFORM Flow will be covered in later BMC AMI Test Drive tutorials.
Wrap-up
This concludes our look at how Abend-AID provides powerful tools for diagnosing COBOL CICS abends. We hope that you have enjoyed your look at these capabilities and look forward to working with you to implement some or all of the solution within your systems. Please remember to complete the Test Drive survey, as both your sponsor and our team are very interested in your feedback on the Test Drive Experience.
You can choose from any of the available scripts from the panel to the left or return to the main page here: Welcome to Test Drive