Getting the documentation you need

Before you begin

When investigating loops that cause transactions to abend AICA, you need the CICS® system dump accompanying the abend. System dumping must be enabled for dump code AICA.

About this task

You can use the system dump to find out:
  • Whether the loop is in your user code or in CICS code
  • If the loop is in your user code, the point at which the loop was entered.
It is also useful to have trace running, as trace can help you to identify the point in your program where looping started. If you have a non-yielding loop, it can probably also show you some instructions in the loop.

A tight loop is unlikely to contain many instructions, and you might be able to capture all the evidence you need from the record of events in the internal trace table. A non-yielding loop may contain more instructions, depending on the EXEC CICS commands it contains, but you might still be able to capture the evidence you need from the record of events in the internal trace table. If you find that it is not big enough, direct tracing to the auxiliary trace destination instead.

Procedure

  1. You need to trace CICS system activity selectively, to ensure that most of the data you obtain is relevant to the problem. Set up the tracing like this:
    1. Select level-1 special tracing for AP domain, and for the EXEC interface program (EI).
    2. Select special tracing for just the task that has the loop, and disable tracing for all other tasks by turning the main system trace flag off.
    You can find guidance about setting up these tracing options in Using CICS trace.
  2. Start the task, and wait until it abends AICA.
  3. Format the CICS system dump with formatting keywords KE and TR, to get the kernel storage areas and the internal trace table.

Results

You now have the documentation you need to find the loop.