IBM Support

ASRD after recompiling and link-editing a CICS TS assembler program

Troubleshooting


Problem

Your assembler application program fails with an abend ASRD (abendASRD) after you translate, compile, and link-edit it with the CICS Transaction Server (CICS TS) libraries. The message prior to the ASRD is DFHSR0618 An illegal macro call or reference to the CSA or TCA has caused the abend which follows. Programs that you do not re-assemble run successfully.

Cause

CICS stub is not included at the beginning of the program in output from the link-edit.

Diagnosing The Problem

The abend was within DFHEIENT. A transaction dump of the abend contains a section called PROGRAM STORAGE. In this section, the eyecatcher for the CICS stub DFHYA660 could not be seen at the beginning of the program. The stub was towards the end of the program. This indicated that the link-edit had been done incorrectly.

In this case, the eyecatcher for the CICS stub was DFHYA660 because the CICS TS V4.1 libraries were being used. The three numbers will change depending on the release of CICS TS you are using but the rest of the stub name will be the same (410 for V1.1.1 on VSE, 640 for V3.1, 650 for V3.2, 660 for V4.1, 670 for V4.2, and 680 for V5.1).

Resolving The Problem

For AMODE(24) and AMODE(31) assembler application programs, include the ORDER and INCLUDE statements for DFHEAI in the link-edit step of your JCL so that the CICS stub will be included at the beginning of the program in the output from the link-edit.

CICS supplies assembler procedure DFHEITAL in the SDFHPROC library. The COPYLINK step of this procedure copies SDFHMAC(DFHEILIA). DFHEILIA contains the following statements that need to be included:

ORDER DFHEAI
INCLUDE SYSLIB(DFHEAI)

The statements are put into a temporary file that is concatenated before the assembled application program in the LKED step of the procedure.

In CICS TS 5.1 or higher, you can use procedure DFHEGTAL to translate, assemble, and link-edit your AMODE(64) assembler application programs. In this case, DFHEAG is the stub that you need to include and the eyecatcher for the stub is DFHGAnnn. The COPYLINK step of this procedure copies SDFHMAC(DFHEGLIA ). DFHEGLIA contains the following statements that need to be included:

ORDER DFHEAG
INCLUDE SYSLIB(DFHEAG)

For more information about why the CICS stub is needed, see Using the EXEC interface modules for AMODE(24) and AMODE(31) applications and Using the EXEC interface modules for AMODE(64) applications in the CICS TS documentation.

[{"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Command Level","Platform":[{"code":"PF035","label":"z\/OS"},{"code":"PF038","label":"z\/VSE"}],"Version":"5.1;4.2;4.1;3.2;3.1;1.1.1","Edition":"","Line of Business":{"code":"LOB70","label":"Z TPS"}}]

Product Synonym

CICS/VSE CICS VSE CICS/TS CICS TS CICS Transaction Server

Document Information

Modified date:
05 January 2026

UID

swg21053907