CICS PL/I Fault Diagnosis


This tutorial will guide you through some of the capabilities within BMC AMI DevX Abend-AID, including:

  • Using BMC AMI DevX Abend-AID to examine a CICS PL/I 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

To access Abend-AID for Batch within BMC AMI DevX Workbench for Eclipse:

Do This

  • Click on the BMC dropdown.
  • Click on Operations.
  • Click on Abend-AID.
  • Click on TestDrive.













The Abend-AID Logon view opens in the bottom pane.

  • Double-click the tab for the Abend-AID view to maximize the pane.
  • Enter your Test Drive ID and password, and then press enter.

This opens a view into Abend-AID within your BMC AMI DevX Workbench for Eclipse IDE. Integration of the tools needed for developers to do their daily jobs is a key feature of the Workbench 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.



Do This

When successfully logged on, you are taken to the Abend-AID main menu.

  • Click on 'Fault Summary'.

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.



Do This

  • Type HCCA in columns 1-4 of the asterisks and press <Enter>.

You now have filtered to only jobnames that begin with HCCA. Next, we'll dig a little deeper using Abend-AID's hyperlinks.



Do This

  • Click the 'HCCAC013' hyperlink.

We've now filtered down to entries only for jobname HCCAC013. Next we'll select one of the entries to begin diagnosing an abend.



Do This

  • Scroll through the list of abends until you reach entry number 0017119. You may need to use the Next button in the upper-right corner to reach the page containing entry 0017119. 


Do This

You can access an Abend-AID report using a couple of methods.


  • Click on entry 0017119 to view the Diagnostic Summary.




OR


  • Click the menu icon (circled in red) to the left of entry 0017119 to display the dropdown menu.



  • Select 'Diag' to view the Diagnostic Summary.





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.


 


Do This

  • Click the Diagnostic Summary's 'ASRA' hyperlink to see the IBM Message Text for the abend code.

 

Abend-AID provides to you an explanation of the abend code. For many reason codes, recommended corrective action is offered.



Do This

  • Click on <F3> to return to the Diagnostic Summary, then click on the 'CWDEMPL1' hyperlink.




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.




Do This

  • Click on the 'CTS530.CICS.HCCAC013.LOADLIB.PDSE' hyperlink to display your concatenation.

 

CICS has no STEPLIB or JOBLIB, but Abend-AID gives you easy access to your DFHRPL concatenation. Highlighted for you is the dataset from where the program was loaded.



Do This

  • Press <F3> to return to the Program Detail screen, then click the 'Listing' hyperlink.

You are now placed in your compiled listing, directly at the last instruction processed (the abending instruction). The line is also highlighted to quickly catch your eye and move you forward in your diagnosis.

  • To see the complete instruction, you'll need to back-up one page and then return to the page with the abending line of code.



Do This

  • Click 'Previous' to back-up one page, then click the original page #, which is '6' in our case.

Now Abend-AID displays the entire instruction but also maintains the highlight for the last line of the instruction processed.



Do This

  • Press <F3> to return to the Program Detail screen, then click the 'Storage Areas' hyperlink.

 
The PL/I Storage Selection List displays the internal procedures for the selected transaction abend. Each internal procedure entry represents a PL/I library procedure, internal procedure, begin block, or on-unit. Only those active at the time of the failure are shown.



Do This

  • Click on the menu icon (inside the red circle) next to the instruction, then select 'Format Storage'.


Here you can see the program storage for the abending program.




Do This

  • Click the 'CURR-PAY' hyperlink (+34000.00) to see the format(s) of the field.



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.



Do This

  • Press <F3> twice to return to the PL/I Storage Selection List. Click on the menu icon (inside the red circle) and now select 'Storage Areas'.

Here Abend-AID gives you a one-stop location for the various storage areas in the PL/I program.

  • Not all PL/I programs will have storage in every one of these areas.


Do This

  • Click on the 'Automatic Storage Areas' option, then click the 'PLIAUT01' hyperlink.

The PL/I Automatic Storage List displays the name, address, length, owning internal procedure name, and generation number of each PL/I automatic storage area allocated during program execution. 

Each automatic storage area represents a PL/I library procedure, internal procedure, begin block, or on-unit. These storage blocks remain allocated until program execution ends in the PL/I block containing the storage declaration. The most current generation of the automatic storage is generation zero.


Do This

  • Press <F3> twice to return to PL/I Storage Areas, then select 'Static Storage Area'.

Static storage areas are those storage locations allocated when the selected program is loaded, and which remain allocated until the selected program ends. Static storage areas are displayed in hexadecimal format on the Memory Display screen.


Do This

  • Press <F3> to return to PL/I Storage Areas, then select 'Controlled Storage Area'.

As the message indicates, CWDEMPL1 does not have PL/I controlled storage.

The PL/I Controlled Storage List, when available, lists the name, address, length, pseudo register name, and generation number of each PL/I controlled storage area that was allocated by the program.

Each controlled storage area represents a PL/I structure that has been declared with the controlled attribute. The controlled attribute allows multiple procedures to access the same PL/I structure. These storage blocks remain allocated until program execution ends in the PL/I block containing the storage declaration. The most current generation of the controlled storage is zero.



Do This

  • Select 'External Storage Area'.

 

As the message indicates, CWDEMPL1 does not have PL/I external storage.

The PL/I External Storage List displays the name, address, and length of each PL/I external storage area that was allocated by the program. Each external storage area represents a PL/I structure that has been declared with the external attribute. The external attribute allows multiple procedures to access the same PL/I structure.



Do This

  • Press <F3> three times to return to the Diagnostic Summary screen, then click on the 'XPLI' hyperlink to see information about the transaction running at the time of abend.



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).





Do This

  • Click the 'Abending Program' hyperlink to go to the Program Detail screen.

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.



Do This

  • Press <F3> to go back to the Task Detail panel, then click on the 'Initial Program' hyperlink.

 

The initial program was not in this dump because the program storage was no longer available. This can occur when an invoked program issued a transfer control to a new program.


When control is transferred, the base is reset to the called program. Program storage for programs prior to the transfer is cleared. In this situation, clicking the initial program returns message ‘Program name ******** is not in this dump’. If the abending program and the initial program are the same, clicking the initial program would display the same Program Detail section.





The remaining fields on the top half of the page contain detailed information about the transaction, including control block information for use by the CICS administrators.

  • The Supporting Information subsection will be discussed later in the script.



Do This

  • Press <F3> to return to the Diagnostic Summary, then click on the terminal 'C512' hyperlink.

 
The Terminal Detail screen provides information about the terminal used to invoke the transaction. This is only viewable for terminal-based transactions (not message-based transactions).



Do This

  • Click on 'Last 3270 Image' to see what was displayed on the user's screen when the transaction was invoked.

 


Do This

  • Press <F3> two times to return to the Diagnostic Summary.




To summarize, the Diagnostic Summary screen provides an extensive amount of information to begin fault analysis, and it also adds hyperlinks to additional information.



  • The abending statement is easily found with a hyperlinked line number that takes you to the listing.



  • The variables that comprise the line of code are displayed along with your picture types and the values at the time of the abend.

 


  • Abend-AID also provides a narrative explanation of what the abend was, as well as any IBM messages that accompany the abend.


  • The Next Sequential Instruction subsection provides basic information about the instruction after the abend, the load library or program object library the module was loaded from and the bind date/time.


  • The Last Call or EXEC CICS subsection provides information about 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 displays variables and values passed when the previous subsection shows a call. In this case, it's an EXEC CICS Request so there are no arguments and values to display.

 


  • The Program Link Summary displays the sequence of programs called from the initial program to the point the abend occurs. In this example, the initial program was the abending program, so the active calling chain consists of a single module.

 


Here's another example of Abend-AID's helpful employment of hyperlinks: clicking either 'CWDEMPL' or 'CWDEMPL1' would take you to the Program Summary screen.




Do This

  • The Supporting Information section of Diagnostic Summary provides links to more valuable information. The same information is available via the Command Line Interface (CLI) if preferred. Scroll down to the Supporting Information subsection, then click on 'SCREEN'.

As with the Terminal Detail screen's 'Last 3270 Image' hyperlink, clicking the 'SCREEN' hyperlink (or command if using the CLI) will display an image of the user's terminal.



Do This

  • Press <F3> to go back to the Diagnostic Section and scroll down to the Supporting Information subsection.

  • There is no 'PROG' command listed on the Supporting Information screen, but you can execute the 'PROG' command via the CLI.



Do This

  • Click on the Tools icon and select 'Command Line' from the drop down, then enter 'PROG' in the box and click 'Submit'.


Provided are links to information about the called application programs appearing in the Diagnostic Summary's subsection Program Link Summary.



Do This

  • Click on 'Program Summary 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.


 



Do This

  • Click on the menu icon next to program CWDEMPL.

As you can see from the menu, you can gather a great deal of 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).
  • Note that Impact Analysis, Extended Search, and Perform Flow options are not available for PL/I programs.




Wrap-up

This concludes our look at how Abend-AID provides powerful tools for diagnosing PL/I abends in CICS. 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


Was this page helpful? Yes No Submitting... Thank you

Comments