AEIV due to length error of COMMAREA on EXEC CICS LINK command
You have a modified Node Error Program, DFHZNEP, that issues an EXEC CICS LINK command to another application. This program has worked for many years until upgrading to z/OS 1.8. Now, the program abends with abend code AEIV indicating that there is a length error (LENGERR).
EXEC CICS LINK command has LENGTH parameter coded incorrectly.
Diagnosing the problem
Your Link command is coded similar to the following:
EXEC CICS LINK PROGRAM('SSCCERR')
NEPCALEN is defined using the DFHNEPCA macro as an equate:
NEPCALEN EQU *-NEPCABEG
Thus, NEPCALEN is equated to a full word binary value of x'0000009E', causing the length value to be picked up at location x'9E'. The CICS translator loads the address of the equated field into the parameter list, and this actually yields an address of x'0000009E'.
Prior to upgrading to z/OS V1.8, location x'9E' either contained a half word of zeros or a half word value not having the left most bit turned on. After upgrading, this storage contains a half word value with the left most bit turned on, thus thought to be a negative value. The negative value causes LENGERR and abendAEIV.
Resolving the problem
Code the LENGTH field on the EXEC CICS LINK command as an address that points to the length of the COMMAREA, not as the actual length of the COMMAREA. Because this scenario involves DFHZNEP, the problem can be resolved by simply removing the LENGTH parameter altogether and the length will be resolved as a pointer to a half word value of x'009E'.
CICS/TS CICS TS CICS Transaction Server