APAR status
Closed as program error.
Error description
Rational Business Developer V7.5.1.5: A VisualAge Generator generated COBOL program receives an abend AZCT which is expected when the transcation times out. After migrating the program from VisualAge Generator to Rational Business Developer and regenerating the program with Rational Business Developer, an abend APCT is received instead of the expected AZCT abend. The following is the failing scenario: 1) EGL generataed COBOL program XYZ requests an exec cics handle abend program (ELAESABD). 2) When the transaction times out and receives an abend AZCT, the handle abend program ELAESABD is passed control as expected. 3) As control is being passed to ELAESABD, a commarea address of 0's and a commarea length of 4 is passed. Since the commarea address is 0's, the link to ELAESABD fails with an invalid_commarea_address. This is the cause for the APCT abend. 4) Program XYZ does not have a commarea, but it is linking to program ABC with a commarea that has a length of 4. 5) When control is returned from ABC to XYZ, the CICS EIBCALEN (EIB Commarea Length) did not return to 0, but continued to hold the value of 4. APAR PM14429 resolved this issue when the abend occurs in a called program and the call is made via an EXEC CICS LINK. This problem still occurs when the call is made using the COBOL CALL statement.
Local fix
A temporary fix is available from support.
Problem summary
**************************************************************** * USERS AFFECTED: * **************************************************************** * PROBLEM DESCRIPTION: * **************************************************************** * RECOMMENDATION: * **************************************************************** The problem is that when calling the EGL abend handler directly, instead of through the use of HANDLE LABEL, the CICS environment expects that a commarea must have been set up initially. EGL calls its called programs directly, instead of using exec cics link (unless the program is defined as external) which bypasses the cics internal logic to set its internal commarea address pointer. When the called program abends, the abend handler EGL program is attempted to be invoked, but cics detects that the commarea length ? 0, but the address it thinks the commarea is at is 0. This causes the APCT abend. The solution is to use exec cics handle abend label instead of habdle abend program. Once in the label section of the cobol code, then the abend handler is called using exec cics link. This avoids the commarea/length discrepancy.
Problem conclusion
Software updated. Fixtest available.
Temporary fix
Comments
APAR Information
APAR number
PM24643
Reported component name
RBD EGL FOR COB
Reported component ID
5724S5001
Reported release
751
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-10-15
Closed date
2011-05-06
Last modified date
2011-05-06
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
RBD EGL FOR COB
Fixed component ID
5724S5001
Applicable component levels
R751 PSN
UP
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
06 May 2011