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.