Tag Archives: abend codes

CICS Abends – AEIS

This is my second in a series of brief descriptions of common abends in CICS. If my first posting was any indication, a lot of people will hit this page as they Google AIES in an  attempt to get a quick answer as to what can cause this particular abend.

An AEIS abend will occur when a CICS application attempts some kind of file operation using the CICS API (i.e., an EXEC CICS statement), and the file is not available to CICS, and the application does not have a HANDLE condition coded for NOTOPEN. Why the file is not available – that requires some investigation. Perhaps the file is in use by a batch  job and the file’s share options would not allow CICS to open it, perhaps the file’s definition in CEDA has a typo in the DSNAME field, maybe someone explicitly closed the file. Those are just some possibilities; CICS can’t help with the “why”, but knowing what file is not available will be a big first step in determining what the problem is.

Now for the philosophical part of this … Should you ever get an AEIS abend? I personally think that every application should contain code for NOTOPEN being a possibility and handle that condition without giving the user an ugly abend. But many shops do not  have that as a standard. These days it would be so easy to handle that condition by shooting the help desk and/or CICS tech support area an email to make sure they are aware, and give the end user a friendly message that their request cannot be fulfilled at the time.

CICS Abends – AZI6

I had planned to do a series of blog entries on CICS abends, following up a bit on my CICS Messages and Codes entry a while back. And what better abend to start with than AZI6?

An AZI6 is the code returned when a transaction running in a remote region abends. In a standard TOR/AOR MRO environment, this abend will be seen on the user’s screen – but all it is doing is reporting the real abend that we are interested in that ocurred in the AOR. I often get a request to help a user or new programmer with an AZI6 (or they sometimes report it as an AZ16) … When that happens, my stock response is to keep reading, because the real abend code is burried further in the message. Here’s an example:

DFHAC2206 15:42:44 TORAPPL TRANSACTION XYZ1 FAILED WITH ABEND AZI6. UPDATES
TO LOCAL RECOVERABLE RESOURCES BACKED OUT. DFHAC2261 SYSTEM AOR SENT MESSAGE
(SENSE CODE 0824089E). 'DFHAC2206 15:42:44 AORAPPL TRANSACTION XYZ1 FAILED
WITH ABEND ASRA. UPDATES TO LOCAL RECOVERABLE RESOURCES BACKED OUT.'.


In this example, the real issue is an ASRA abend on transaction XYZ1 in a CICS with a SYSID of AOR and an APPLID of AORAPPL. So, now armed with the real information, we can consult our abend product to find out what happened. ASRA’s are fairly easy to resolve, even without an abend product, so we’ll take a look at how to read a transaction dump for an ASRA in a future blog entry.

CICS Messages and Codes

I was recently reminded while helping a colleague that not everyone is aware that explanations for all CICS messages and codes are always right at our fingertips.

It used to be that to look up a message issued by CICS, we had to grab the CICS Messages and Codes manual. And that meant getting up and going to the manual area, as we didn’t even have electronic copies of manuals in those days. With the CMAC transaction, CICS makes it almost too easy these days. CMAC is a supplied transaction, one of the few transaction id’s that is an acronym (CICS Messages And Codes). That transaction along with the DFHCMACD file, provides pretty much everything in the Messages and Code manual.

Using the CMAC Transaction

To look up a message, on a blank screen enter CMAC followed by the component id and message number. All CICS messages are in the format DFHss9999, where ss is the component id and 9999 is the message number.  So, to look up message DFHFC0200, enter CMAC FC0200 on a blank screen. You can also enter the whole message id, as in CMAC DFHFC0200. Alternately, enter CMAC on a blank screen, then enter FC in the Component ID field and 0200 in the Message Number field.

To look up an abend code, enter CMAC followed by the abend code. For example, enter CMAC AEIS to look up what an AEIS abend is. You can also just enter CMAC on a blank screen, then enter AEIS in the Message Number field. Hint: All CICS abends start with “A”. If you see an abend that starts with any other letter, it is likely that the program issued an EXEC CICS ABEND and provided that code.

Defining the Resources Necessary for CMAC

If the CMAC dataset, DFHCMACD, was not created when CICS was installed, the CICS Installation Guide details the process to create it. It is normally defined with the appropriate VSAM share options to be able to access it from multiple CICS regions, so there is no need to create one for each CICS region that you run. In fact, for those in an MRO environment, it is common just to define the CMAC resources in the TOR only.

The DFHCMAC RDO group contains the resource definitions (transaction, mapset, program, and file definitions) necessary to run the CMAC transaction.