Investigating loops that cause transactions to abend with abend code AICA

If the loop causes a transaction to abend with abend code AICA, it must either be a tight loop or a non-yielding loop. You do not need to find which type you have, although this is likely to be revealed to you when you do your investigation.

Both a tight loop and a non-yielding loop are characterized by being confined to a single user program. You should know the identity of the transaction to which the program belongs, because it is the transaction that abended with code AICA when the runaway task was detected.

The documentation you need

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.

You can use the system dump to find out:

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.

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 master system trace flag off.

You can find guidance about setting up these tracing options in Using traces in problem determination.

Now start the task, and wait until it abends AICA. Format the CICS system dump with formatting keywords KE and TR, to get the kernel storage areas and the internal trace table. (See Formatting system dumps.) You now have the documentation you need to find the loop.

Looking at the evidence

Look first at the kernel task summary. The runaway task is flagged "*YES*" in the ERROR column. The status of the task is shown as "***Running**".

Now use the kernel task number for the looping task to find its linkage stack. If a user task is looping, DFHAPLI, a transaction manager program, should be near the top of the stack. You are likely to find other CICS modules at the top of the stack that have been invoked in response to the abend. For example, those associated with taking the dump. If you find any program or subroutine above DFHAPLI that has not been invoked in response to the error, it is possible that CICS code, or the code of another program, has been looping. If you find that the loop is within CICS code, you need to contact the IBM® Support Center. Make sure you keep the dump, because the Support Center staff need it to investigate the problem.

If the kernel linkage stack entries suggest that the loop is in your user program, you next need to identify the loop.

Identifying the loop

There are two approaches to identifying loops in user programs. You can use the trace table, or you can look in the transaction dump.

Using the trace table

Go to the last entry in the internal trace table, and work backward until you get to an entry for point ID AP 1942. The trace entry should have been made when recovery was entered after the transaction abended AICA. Make a note of the task number, so you can check that any other trace entries you read relate to the same abended task.

The entries preceding AP 1942 should have been made either just before the loop was entered (for a tight loop), or within the loop itself (for a non-yielding loop). Watch in particular for trace entries with the point ID AP 00E1. These are made on entry to the EXEC interface program (DFHEIP) whenever your program issues an EXEC CICS command, and again on exit from the EXEC interface program. Field B gives you the value of EIBFN, which identifies the specific command that was issued. The table below contains a list of EIBFN values and their meanings.

In the column of the EIBFN codes table headed Type, API indicates that the command is described in the CICS Application Programming Reference, and SPI indicates that it is described in the CICS System Programming Reference. SPI does not indicate that the special (SP) translator option is required for this command. FEPI indicates commands used by the CICS/ESA Front End Programming Interface. They are described in the CICS Front End Programming Interface User’s Guide.

Table 12. EIB Field Name Values & Types
EIBFN value Command Type
X'0202' ADDRESS API
X'0204' HANDLE CONDITION API
X'0206' HANDLE AID API
X'0208' ASSIGN API
X'020A' IGNORE CONDITION API
X'020C' PUSH API
X'020E' POP API
X'0210' ADDRESS SET API
X'0402' RECEIVE API
X'0404' SEND API
X'0406' CONVERSE API
X'0408' ISSUE EODS API
X'040A' ISSUE COPY API
X'040C' WAIT TERMINAL API
X'040E' ISSUE LOAD API
X'0410' WAIT SIGNAL API
X'0412' ISSUE RESET API
X'0414' ISSUE DISCONNECT API
X'0416' ISSUE ENDOUTPUT API
X'0418' ISSUE ERASEAUP API
X'041A' ISSUE ENDFILE API
X'041C' ISSUE PRINT API
X'041E' ISSUE SIGNAL API
X'0420' ALLOCATE API
X'0422' FREE API
X'0424' POINT API
X'0426' BUILD ATTACH API
X'0428' EXTRACT ATTACH API
X'042A' EXTRACT TCT API
X'042C' WAIT CONVID API
X'042E' EXTRACT PROCESS API
X'0430' ISSUE ABEND API
X'0432' CONNECT PROCESS API
X'0434' ISSUE CONFIRMATION API
X'0436' ISSUE ERROR API
X'0438' ISSUE PREPARE API
X'043A' ISSUE PASS API
X'043C' EXTRACT LOGONMSG API
X'043E' EXTRACT ATTRIBUTES API
X'0602' READ API
X'0604' WRITE FILE API
X'0606' REWRITE API
X'0608' DELETE API
X'060A' UNLOCK API
X'060C' STARTBR API
X'060E' READNEXT API
X'0610' READPREV API
X'0612' ENDBR API
X'0614' RESETBR API
X'0802' WRITEQ TD API
X'0804' READQ TD API
X'0806' DELETEQ TD API
X'0A02' WRITEQ TS API
X'0A04' READQ TS API
X'0A06' DELETEQ TS API
X'0C02' GETMAIN API
X'0C04' FREEMAIN API
X'0E02' LINK API
X'0E04' XCTL API
X'0E06' LOAD API
X'0E08' RETURN API
X'0E0A' RELEASE API
X'0E0C' ABEND API
X'0E0E' HANDLE ABEND API
X'1002' ASKTIME API
X'1004' DELAY API
X'1006' POST API
X'1008' START API
X'1008' START BREXIT API
X'100A' RETRIEVE API
X'100C' CANCEL API
X'1202' WAIT EVENT API
X'1204' ENQ API
X'1206' DEQ API
X'1208' SUSPEND API
X'1402' WRITE JOURNALNUM API
X'1404' WAIT JOURNALNUM API
X'1406' WRITE JOURNALNAME API
X'1408' WAIT JOURNALNAME API
X'1602' SYNCPOINT API
X'1604' RESYNC ENTRYNAME SPI
X'1802' RECEIVE MAP API
X'1804' SEND MAP API
X'1806' SEND TEXT API
X'1808' SEND PAGE API
X'180A' PURGE MESSAGE API
X'180C' ROUTE API
X'180E' RECEIVE PARTN API
X'1810' SEND PARTNSET API
X'1812' SEND CONTROL API
X'1C02' DUMP API
X'1E02' ISSUE ADD API
X'1E04' ISSUE ERASE API
X'1E06' ISSUE REPLACE API
X'1E08' ISSUE ABORT API
X'1E0A' ISSUE QUERY API
X'1E0C' ISSUE END API
X'1E0E' ISSUE RECEIVE API
X'1E10' ISSUE NOTE API
X'1E12' ISSUE WAIT API
X'1E14' ISSUE SEND API
X'2002' BIF DEEDIT API
X'2004' DEFINE COUNTER API
X'2006' GET COUNTER API
X'2008' UPDATE COUNTER API
X'200A' DELETE COUNTER API
X'200C' REWIND COUNTER API
X'200E' QUERY COUNTER API
X'2014' DEFINE DCOUNTER API
X'2016' GET DCOUNTER API
X'2018' UPDATE DCOUNTER API
X'201A' DELETE DCOUNTER API
X'201C' REWIND DCOUNTER API
X'201E' QUERY DCOUNTER API
X'2202' ENABLE PROGRAM SPI
X'2204' DISABLE SPI
X'2206' EXTRACT EXIT SPI
X'2402' ALLOCATE API
X'2404' ASSIGN API
X'2406' EXTRACT PROCESS API
X'2408' FREE API
X'240A' ISSUE ABEND API
X'240C' CONNECT PROCESS API
X'240E' ISSUE CONFIRMATION API
X'2410' ISSUE ERROR API
X'2412' ISSUE SIGNAL API
X'2414' RECEIVE API
X'2416' SEND API
X'2418' WAIT API
X'241A' ISSUE PREPARE API
X'241C' EXTRACT ATTRIBUTES API
X'3002' CREATE PROGRAM SPI
X'3004' CREATE MAPSET SPI
X'3006' CREATE PARTITIONSET SPI
X'3008' CREATE TRANSACTION SPI
X'300A' CREATE PROFILE SPI
X'300C' CREATE TYPETERM SPI
X'300E' CREATE CONNECTION SPI
X'3010' CREATE TERMINAL SPI
X'3012' CREATE SESSIONS SPI
X'3014' CREATE FILE SPI
X'3016' CREATE LSRPOOL SPI
X'3018' CREATE PARTNER SPI
X'301A' CREATE TRANCLASS SPI
X'301C' CREATE TDQUEUE SPI
X'301E' CREATE JOURNALMODEL SPI
X'3020' CREATE DB2CONN SPI
X'3022' CREATE DB2ENTRY SPI
X'3024' CREATE DB2TRAN SPI
X'3026' CREATE PROCESSTYPE SPI
X'3028' CREATE TSMODEL SPI
X'302A' CREATE ENQMODEL SPI
X'302C' CREATE REQUESTMODEL SPI
X'302E' CREATE DOCTEMPLATE SPI
X'3030' CREATE TCPIPSERVICE SPI
X'3402' DEFINE ACTIVITY API
X'3404' DEFINE PROCESS API
X'3406' RUN ACTIVITY API
X'3408' RUN ACQPROCESS API
X'340E' ACQUIRE PROCESS API
X'3410' ACQUIRE ACTIVITYID API
X'3412' DELETE CONTAINER API
X'3414' GET CONTAINER API
X'3416' PUT CONTAINER API
X'3418' RESET ACTIVITY API
X'341A CHECK ACTIVITY API
X'341C' CANCEL ACTIVITY API
X'341E' CANCEL ACQPROCESS API
X'3420' SUSPEND ACTIVITY API
X'3422' SUSPEND ACQPROCESS API
X'3424' RESUME ACTIVITY API
X'3426' RESUME ACQPROCESS API
X'3428' DELETE ACTIVITY API
X'342A' LINK ACQPROCESS API
X'342C' LINK ACTIVITY API
X'342E' CANCEL ACQACTIVITY API
X'3430' RUN ACQACTIVITY API
X'3432' LINK ACQACTIVITY API
X'3434' SUSPEND ACQACTIVITY API
X'3436' RESUME ACQACTIVITY API
X'3438' CHECK ACQPROCESS API
X'343A' CHECK ACQACTIVITY API
X'343C' RESET ACQPROCESS API
X'3602' DEFINE INPUT EVENT API
X'3602' DEFINE COMPOSITE EVENT API
X'3604' DELETE EVENT API
X'3608' ADD SUBEVENT API
X'360A' REMOVE SUBEVENT API
X'360E' TEST EVENT API
X'3610' RETRIEVE REATTACH EVENT API
X'3612' RETRIEVE SUBEVENT API
X'3614' DEFINE TIMER API
X'3616' DELETE TIMER API
X'3618' CHECK TIMER API
X'361A' FORCE TIMER API
X'3802' WEB RECEIVE API
X'3804' WEB SEND API
X'3806' WEB READ API
X'3808' WEB STARTBROWSE API
X'380A' WEB READNEXT API
X'380C' WEB ENDBROWSE HTTPHEADER API
X'380E' WEB WRITE API
X'3810' WEB EXTRACT API
X'3814' WEB RETRIEVE API
X'3A02' INQ RRMS SPI
X'3C02' DOCUMENT CREATE API
X'3C04' DOCUMENT INSERT API
X'3C06' DOCUMENT RETRIEVE API
X'3C08' DOCUMENT SET API
X'3E0E' EXTRACT TCPIP API
X'3E10' EXTRACT CERTIFICATE API
X'4202' INQUIRE AUTINSTMODEL SPI
X'4210' DISCARD AUTINSTMODEL SPI
X'4402' INQUIRE PARTNER SPI
X'4410' DISCARD PARTNER SPI
X'4602' INQUIRE PROFILE SPI
X'4610' DISCARD PROFILE SPI
X'4802' ENTER TRACENUM API
X'4804' MONITOR API
X'4A02' ASKTIME ABSTIME API
X'4A04' FORMATTIME API
X'4C02' INQUIRE FILE SPI
X'4C04' SET FILE SPI
X'4C10' DISCARD FILE SPI
X'4E02' INQUIRE PROGRAM SPI
X'4E04' SET PROGRAM SPI
X'4E10' DISCARD PROGRAM SPI
X'5002' INQUIRE TRANSACTION SPI
X'5004' SET TRANSACTION SPI
X'5010' DISCARD TRANSACTION SPI
X'5202' INQUIRE TERMINAL SPI
X'5204' SET TERMINAL SPI
X'5206' INQUIRE NETNAME SPI
X'5208' SET NETNAME SPI
X'5210' DISCARD TERMINAL SPI
X'5212' INQUIRE TERMINAL SPI
X'5214' SET TERMINAL SPI
X'5216' INQUIRE NETNAME SPI
X'5402' INQUIRE SYSTEM SPI
X'5404' SET SYSTEM SPI
X'5412' INQ SYSTEM SPI
X'5602' SPOOLOPEN INPUT API
X'5602' SPOOLOPEN OUTPUT API
X'5604' SPOOLREAD API
X'5606' SPOOLWRITE API
X'5610' SPOOLCLOSE API
X'5802' INQUIRE CONNECTION SPI
X'5804' SET CONNECTION SPI
X'5806' PERFORM ENDAFFINITY SPI
X'5810' DISCARD CONNECTION SPI
X'5A02' INQUIRE MODENAME SPI
X'5A04' SET MODENAME SPI
X'5C02' INQUIRE TDQUEUE SPI
X'5C04' SET TDQUEUE SPI
X'5C10' DISCARD TDQUEUE SPI
X'5E02' INQUIRE TASK SPI
X'5E04' SET TASK SPI
X'5E06' CHANGE TASK API
X'5E08' INQUIRE STORAGE SPI
X'5E12' INQUIRE TCLASS SPI
X'5E14' SET TCLASS SPI
X'5E18' DISCARD TRANCLASS SPI
X'5E1A' INQUIRE TRANCLASS SPI
X'5E1C' SET TRANCLASS SPI
X'5E22' WAIT EXTERNAL API
X'5E32' WAITCICS API
X'6002' INQUIRE JOURNALNUM SPI
X'6004' SET JOURNALNUM SPI
X'6010' DISCARD JOURNALNAME SPI
X'6012' INQUIRE JOURNALNAME SPI
X'6014' SET JOURNALNAME SPI
X'6202' INQUIRE VOLUME SPI
X'6204' SET VOLUME SPI
X'6402' PERFORM SECURITY SPI
X'6602' INQUIRE DUMPDS SPI
X'6604' SET DUMPDS SPI
X'6612' INQUIRE TRANDUMPCODE SPI
X'6614' SET TRANDUMPCODE SPI
X'6622' INQUIRE SYSDUMPCODE SPI
X'6624' SET SYSDUMPCODE SPI
X'6802' INQUIRE VTAM® SPI
X'6804' SET VTAM SPI
X'6812' INQUIRE AUTOINSTALL SPI
X'6814' SET AUTOINSTALL SPI
X'6822' INQUIRE DELETSHIPPED SPI
X'6824' SET DELETSHIPPED SPI
X'6826' PERFORM DELETSHIPPED SPI
X'6A02' QUERY SECURITY API
X'6C02' WRITE OPERATOR API
X'6C12' CICSMESSAGE API
X'6E02' INQUIRE IRC SPI
X'6E04' SET IRC SPI
X'7002' INQUIRE STATISTICS SPI
X'7004' SET STATISTICS SPI
X'7006' PERFORM STATISTICS SPI
X'7008' COLLECT STATISTICS SPI
X'7012' INQUIRE MONITOR SPI
X'7014' SET MONITOR SPI
X'7202' PERFORM RESETTIME SPI
X'7402' SIGNON API
X'7404' SIGNOFF API
X'7406' VERIFY PASSWORD API
X'7408' CHANGE PASSWORD API
X'7602' PERFORM SHUTDOWN SPI
X'7802' INQUIRE TRACEDEST SPI
X'7804' SET TRACEDEST SPI
X'7812' INQUIRE TRACEFLAG SPI
X'7814' SET TRACEFLAG SPI
X'7822' INQUIRE TRACETYPE SPI
X'7824' SET TRACETYPE SPI
X'7A02' INQUIRE DSNAME SPI
X'7A04' SET DSNAME SPI
X'7C02' INQUIRE EXCI SPI
X'7E02' DUMP TRANSACTION API
X'7E04' PERFORM DUMP SPI
X'8002' INQUIRE TSQUEUE SPI
X'8004' SET TSQUEUE SPI
X'8012' INQUIRE TSQNAME SPI
X'8014' SET TSQNAME SPI
X'801A' INQUIRE TSPOOL SPI
X'8022' INQUIRE TSMODEL SPI
X'8030' DISCARD TSMODEL SPI
X'820C' REQUEST PASSTICKET FEPI
X'820E' AP FEPI
X'8210' ALLOCATE POOL FEPI
X'8210' ALLOCATE PASSCONVID FEPI
X'8212' CONVERSE FORMATTED FEPI
X'8214' CONVERSE DATASTREAM FEPI
X'8216' EXTRACT CONV FEPI
X'8218' EXTRACT FIELD FEPI
X'821A' EXTRACT STSN FEPI
X'821C' FREE FEPI
X'821E' ISSUE FEPI
X'8220' RECEIVE FORMATTED FEPI
X'8222' RECEIVE DATASTREAM FEPI
X'8224' SEND FORMATTED FEPI
X'8226' SEND DATASTREAM FEPI
X'8228' START FEPI
X'840E' SP NOOP FEPI
X'8422' INQUIRE PROPERTYSET FEPI
X'8428' INSTALL PROPERTYSET FEPI
X'8430' DISCARD PROPERTYSET FEPI
X'8442' INQUIRE NODE FEPI
X'8444' SET NODE FEPI
X'8444' SET NODELIST FEPI
X'8448' INSTALL NODELIST FEPI
X'844A' ADD POOL FEPI
X'844C' DELETE POOL FEPI
X'8450' DISCARD NODELIST FEPI
X'8462' INQUIRE POOL FEPI
X'8464' SET POOL FEPI
X'8464' SET POOLLIST FEPI
X'8468' INSTALL POOL FEPI
X'8470' DISCARD POOL FEPI
X'8482' INQUIRE TARGET FEPI
X'8484' SET TARGETLIST FEPI
X'8484' SET TARGET FEPI
X'8488' INSTALL TARGETLIST FEPI
X'8490' DISCARD TARGETLIST FEPI
X'84A2' INQUIRE CONNECTION FEPI
X'84A4' SET CONNECTION FEPI
X'8602' ACQUIRE SPI
X'8802' INQUIRE EXITPROGRAM SPI
X'8A02' INQUIRE REQID SPI
X'8C02' WRITE MESSAGE API
X'9002' INQUIRE UOW SPI
X'9004' SET UOW SPI
X'9022' INQUIRE UOWENQ SPI
X'9042' INQUIRE UOWLINK SPI
X'9044' SET UOWLINK SPI
X'9062' INQUIRE UOWDSNFAIL SPI
X'9082' INQUIRE ENQMODEL SPI
X'9084' SET ENQMODEL SPI
X'9090' DISCARD ENQMODEL SPI
X'9202' INQUIRE JOURNALMODEL SPI
X'9210' DISCARD JOURNALMODEL SPI
X'9212' INQUIRE STREAMNAME SPI
X'9402' INQUIRE DB2CONN SPI
X'9404' SET DB2CONN SPI
X'9410' DISCARD DB2CONN SPI
X'9422' INQUIRE DB2ENTRY SPI
X'9424' SET DB2ENTRY SPI
X'9430' DISCARD DB2ENTRY SPI
X'9442' INQUIRE DB2TRAN SPI
X'9444' SET DB2TRAN SPI
X'9450' DISCARD DB2TRAN SPI
X'9602' INQUIRE PROCESSTYPE SPI
X'9604' SET PROCESSTYPE SPI
X'9610' DISCARD PROCESSTYPE SPI
X'9612' INQUIRE ACTID SPI
X'9614' INQUIRE CONTAIN SPI
X'9616' INQUIRE EVENT SPI
X'9618' INQUIRE PROCESS SPI
X'9620' STARTBROWSE ACTIVITY SPI
X'9622' GETNEXT ACTIVITY SPI
X'9624' ENDBROWSE ACTIVITY SPI
X'9626' STARTBROWSE CONTAINER SPI
X'9628' GETNEXT CONTAINER SPI
X'962A' ENDBROWSE CONTAINER SPI
X'962C' STARTBROWSE EVENT SPI
X'962E' GETNEXT EVENT SPI
X'9630' ENDBROWSE EVENT SPI
X'9632' STARTBROWSE PROCESS SPI
X'9634' GETNEXT PROCESS SPI
X'9636' ENDBROWSE PROCESS SPI
X'9638' INQUIRE TIMER SPI
X'963A' STARTBROWSE TIMER SPI
X'963C' GETNEXT TIMER SPI
X'963E' ENDBROWSE TIMER SPI
X'9802' INQUIRE CFDTPOOL SPI
X'9A02' INQUIRE REQUESTMODEL SPI
X'9A10' DISCARD REQUESTMODEL SPI
X'9C02' INQUIRE TCPIPSERVICE SPI
X'9C04' SET TCPIPSERVICE SPI
X'9C10' DISCARD TCPIPSERVICE SPI
X'9C12' INQUIRE TCPIP SPI
X'9C14' SET TCPIP SPI
X'9C22' INQUIRE WEB SPI
X'9C24' SET WEB SPI
X'9E02' INQUIRE DOCTEMPLATE SPI
X'9E10' DISCARD DOCTEMPLATE SPI
X'B002' INQUIRE JVMPOOL SPI
X'B004' SET JVMPOOL SPI
X'B202' INQUIRE CORBASERVER SPI
X'B204' SET CORBASERVER SPI
X'B206' PERFORM CORBASERVER SPI
X'B210' DISCARD CORBASERVER SPI
X'B222' INQUIRE DJAR SPI
X'B226' PERFORM DJAR SPI
X'B230' DISCARD DJAR SPI
X'B242' INQUIRE BEAN SPI
X'B402' INQUIRE BRFACILITY SPI
X'B404' SET BRFACILITY SPI
X'B602' INQUIRE DISPATCHER SPI
X'B604' SET DISPATCHER SPI

For trace entries made on exit from DFHEIP, field A gives you the response code from the request. Look carefully at any response codes--they could provide the clue to the loop. Has the program been designed to deal with every possible response from DFHEIP? Could the response code you see explain the loop?

If you see a repeating pattern of trace points for AP 00E1, you have a non-yielding loop. If you can match the repeating pattern to statements in the source code for your program, you have identified the limits of the loop.

If you see no repeating pattern of trace points for AP 00E1, it is likely that you have a tight loop. The last entry for AP 00E1 (if there is one) should have been made from a point just before the program entered the loop. You might be able to recognize the point in the program where the request was made, by matching trace entries with the source code of the program.

Using the transaction dump

First you need to find the PSW, and see if it points into your program. This is likely to be the case if you have a tight loop, and it should lead you to an instruction within the loop.

If the next instruction address is not within your code, it is of less value for locating the loop. However, you should attempt to identify the module containing the instruction, as it is likely to be one that was called during the execution of a CICS request made within the loop. Use the module index at the end of the formatted dump to find the module name. If the PSW address is not contained in one of these areas, another program was probably executing on behalf of CICS when the runaway task timer expired.

Note:
It is possible that the loop was contained entirely within a module owned by CICS or some other product, and your program was not responsible for it at all. If you find that the loop is contained within CICS code, contact the IBM Support Center.

If the PSW does point to a module outside your application program, you need to find the address of the return point in your program from the contents of register 14 in the appropriate register save area. The return address will lie within the loop, if the loop is not confined to system code.

When you have located a point within the loop, work through the source code and try to find the limits of the loop.

Finding the reason for the loop

When you have identified the limits of the loop, you need to find the reason why the loop occurred. Assuming you have the trace, and EI level-1 tracing has been done, ensure that you can explain why each EIP entry is there. Verify that the responses are as expected.

A good place to look for clues to loops is immediately before the loop sequence, the first time it is entered. Occasionally, a request that results in an unexpected return code can trigger a loop. However, you usually can only see the last entry before the loop if you have CICS auxiliary or GTF trace running, because the internal trace table is likely to wrap before the AICA abend occurs.

Related concepts
CICS tracing
Selecting trace destinations and related options
Related tasks
The dump code options you can specify
Selecting tracing by component
Formatting transaction dumps
Interpreting transaction dumps
What to do if you cannot find the reason for a loop
[[ Contents Previous Page | Next Page Index ]]