is an Abend ?
Abend has been coined
from ABbnormal END of a task, it signifies that a transaction has been ended abnormally by CICS for performing some
illegal action, or A CICS command to abnormally
terminate a transaction.
How can it be handled ?
If a CICS
command fails, CICS traps the error and unless told otherwise, will take the
default action i.e. usually an ABEND.
The only way to handle an
abend is transfer control to a general abend handling routine which displays
some meaningful messages and terminates.
This can be achieved by
HANDLE ABEND command which is as follows:
EXEC CICS HANDLE ABEND
Control can also be transferred
another error handling program using
CICS HANDLE ABEND
In the error handling paragraph
we could use a forcible abend after moving proper abend code which results in a
dump. The command to force an
‘CEND’ TO ABEND-CODE.
EXEC CICS ABEND
where ABEND-CODE is an X(4)
variable defined in the working storage to which any 4 letter code can be
moved. The code should not start with letter ‘A’ because CICS abend codes
always start with ‘A’.
are the most occurring abends ?
ASRA A program interrupt has occurred. Either non-numeric
data was found in a numeric field or else addressability has not been properly
established. i.e. say if in a COMP-3 variable there are some alphabet instance
then an ASRA abend will be caused if CICS tried reading it
AICA A runaway task condition has been detected. This indicates either a
logical loop or that the system is overloaded, ultimately it will bring the
whole CICS down. There are CICS parameters that determine how long a task can
run without giving up control. The ICVR parameter in the CICS SIT table can be
used to specify a value for all tasks running in CICS, or you can specify a
RUNAWAY value when a transaction is defined. If a program is looping then you
may not get an AICA abend, because the timer can be reset when certain events
occur, e.g. some EXEC CICS commands may reset the timer to zero
AEXZ SYSTEM ERROR - A serious error occurred within CICS. It usually
means a problem with the data set. At ADP, this generally happens on test CICS
after a checkin/LI function. On native CICS after this abend, issue a new copy
to the program i.e. load module
abend codes and their possible reasons
The usual Response codes can also be seen in a compile
listing for any CICS-COBOL code
ABMO - An
ABMO error means that the map name in the COBOL program does not match the map
name in front of the DFHMDI assembler macro. This error can occur when
executing either a SEND MAP or RECEIVE MAP command
AEIK TERMIDERR - The four character terminal id is not
defined to a local or remote CICS on a START command. This generally means that
the terminal id is not defined to the SYSM CICS version. In plain words it
means CICS has not identified the terminal the transaction is run on.
AEIL (resp=12) DSIDERR - Data set ID or the file cannot
be found in the CICS file control table (FCT).
AEIM (resp=13) NOTFND – A particular record on which
the update lock is being taken or which is being trying to read is not found.
AEIN (resp=14) DUPREC - An attempt was made to add a
record to a data set or file in which the same key or the record already
AEIO (resp=15) DUPKEY - Occurs if a record is retrieved
via an alternate index in which the key that is used is not unique. A record
has been accessed by way of an alternate index with the NONUNIQUEKEY attribute,
and another alternate index record with the same key follows
AEIP (resp=16) INVREQ FILE CONTROL: all the scenarios it can happen in
Invalid file control request according to the CICS
file control table.
A REWRITE, or a DELETE, was issued but no previous
READ with UPDATE command was issued.
A READNEXT, READPREV, ENDBR, or RESETBR was issued
but no previous STARTBR was issued.
A WRITE was issued, but the WS key field did not
match the RIDFLD.
A DELETE command with the RIDFLD option specified
is issued for a VSAM data set when a READ UPDATE command is outstanding.
Following a READ UPDATE command for a data set, a
WRITE or READ UPDATE command is issued for the same data set before exclusive
control is released.
The data area specified in the RIDFLD is not the
same one in all the commands of a browse.
An attempt is made to start a browse with a REQID
already in use for another browse.
A RETURN command with the Commarea option is issued
in a program that is not at the highest logical level.
A RETURN command with the Transid option is issued
in a task that is not associated with a terminal.
AEIQ (resp=17) IOERR - An I/O error occurred; (It can
be during Read, Write , Browse etc. ).
AEIR (resp=18) NOSPACE - Occurs if no space is
available when a new record is added to a VSAM and the condition is not
handled. Some new blocks have to allocated and is an admin level job
AEIS (resp=19) NOTOPEN - The data set or Vsam is not
open. Applications generally don't see this abend. Instead, they should handle
the condition AEXL.
AEIT (resp=20) ENDFILE - Occurs if an end-of-file
condition is detected during a browse and no more records exits after doing a
ReadNext or Read Prev..
AEIU (resp=21) ILLOGIC - Occurs if a VSAM error occurs
that does not fall within one of the other CICS/VS response categories.
AEIV (resp=22) LENGERR The various scenarios under
which Length Error might occur
The length option is not specified for an input
(without the set option) or output operation involving variable-length records.
The length specified for an output operation
exceeds the maximum record size; the record is truncated.
The length of a record read during an input
operation (with the into option) exceeds the value specified in the length
option; the record is truncated, and the data area supplied in the length
option is set to the actual length of the record.
An incorrect length is specified for an input or
output operation involving fixed-length records.
TEMPORARY STORAGE CONTROL:
Occurs if the length of the stored data is greater
than the value specified by the length option for move-mode input operations.
Occurs if the length of data received by an input
request that specifies the into option exceeds the value specified by the
length or tolength option.
In a nut
record length (01 RECORD-LENGTH PIC S9(4) COMP VALUE...) specified in
working-storage does not match the record length stored on the file
The calculated record length, obtained from adding up
the number of characters defined in the working storage layout does not match
the specified record length (RECORD-LENGTH) or the length stored on the file .
The picture given to RECORD-LENGTH is not stored as a two byte field. Usually
this error occurs because the picture is S9(8) instead of S9(4) or is not COMP.
AEIW (resp=23) QZERO - Occurs when the destination
(QUEUE) accessed by a READQ TD is empty.
AEIZ (resp=26) ITEMERR - Occurs when the item number
specified or implied by a READQ TS, or a WRITEQ TS with the rewrite option, is
invalid; or if the QUEUE referred to in a WRITEQ TS cannot be found.
AEI0/APCT (resp=27) PGMIDERR- Occurs if a
program or map cannot be loaded into memory. In order, most likely first:
The program is disabled (compiled while an
intercept was set in XPED).
The program was never compiled
The program is not spelled correctly, or contains
The variable for the program/map name is 5 bytes
long, rather than the correct 8 bytes.
APCT means that mapset name in the COBOL program does not
match the mapset name in front of the DFHMSD assembler macro. This error can
occur when executing either a SEND MAP or RECEIVE MAP command
AEI8 TSIOERR - Occurs if there is an unrecoverable temp
storage I/O error.
AEI9 (resp=36) MAPFAIL - Occurs if the data to be
mapped has a length of zero or does not contain a set buffer address (SBA)
sequence. In order, most likely first:
In test, the WSCA copybook length does not match
the DFHCOMMAREA FILLER.
In production, the client has shut down their
workstation, or closed Passport, with a CICS screen still active.
53 (resp=53) SYSIDERR - Occurs if a remote system,
such as PRODA, is not running. AETA EXIT DISABLED - A
CICS transaction has issued a non-CICS command via an application
"stub". CICS has determined that the exit has been disabled
since the previous request was issued from the transaction. For A+ programs,
this means that CICS Sockets has been shut down.
AEXL (resp=84) DISABLED - The data set or Vsam is not
open. Application should be checked for DISABLED, and display a message to the
user, rather than abending. On test CICS /native CICS screen after this abend,
use DPOC to open the file or manually go the native CICS screen and open
AEXY The executing transaction has been purged before
control could be returned. This is sometimes the result of a task being
cancelled/forced by Operations. It also occurs for A+ Host Listeners, at CICS
- Occurs if the specified journal file identifier does not exist in the journal
control table (JCT). The primary function of the JCT is to register the control
information of the system log and journal files
AEYH (resp=44) QIDERR - Occurs when the symbolic name
identifying the QUEUE to be used with TS or TD requests cannot be found That is the Queue name or identifier used
cannot be found in DCT (Destination control table)
AEY9/DSNC The DB2 plan is not authorized
to CICS, or DB2 is inactive.
task has been purged, probably due to Systems/Operations action such as a TASK
ASP7 DB2 failure. DB2(local or remote) is unable to
continue with the syncpoint. A resource manager involved in syncpoint
protocols has replied 'No' to a request to 'Prepare'. This abend is
caused by a prior problem: for example, the resource manager cannot
flush its buffers because of an I/O error, or it cannot communicate with CICS
because of a TP failure.
ATCH The transaction was cancelled.
This normally happens when your program is in a loop. ADP Operations is in
charge of canceling transactions. The task was purged before a domain call was
able to complete successfully.
User Response: The task might have been purged either as a result of a purge from the
master terminal operator via the CEMT transaction, or by the task being timed
out after waiting for longer than the DTIMOUT (deadlock timeout) value
specified for the transaction, or by CICS issuing a purge request. If the
master terminal operator purged the task, this may have been in an attempt to
clear the system which appeared to be deadlocked for some reason. If the task
was timed out automatically as a result of the DTIMOUT value being exceeded,
this may be due to insufficient main storage being available for the number of
tasks in the system. If the amount of main storage cannot be increased, reduce
the number of tasks in the system to avoid short-on-storage situations. Another
possibility is to increase the value of the DTIMOUT option for the transaction.
ATDD The destination that was specified in a transient
data request is disabled. This could be due to the destination data set being
LGTH The length of the Common Area (DFHCOMMAREA)
received by the ADIN routing program was incorrect.
NATV The ADIN routing program was entered in Native
Mode, instead of the normal RETURN mechanism.
TRSW The Transfer Switch received by the ADIN
routing program was incorrect