Fixes are available
APAR status
Closed as program error.
Error description
Environment: IBM z/OS Product name: IBM? Rational? Business Developer Program Version : 8.5 Description: Abend in heap memory management due to TUI segmented converse logic not refreshing exception record address Additional Problem: Invalid call to EZESSM results in ASRA at +4BE.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: * **************************************************************** * PROBLEM DESCRIPTION: * **************************************************************** * RECOMMENDATION: * **************************************************************** This problem only occurs on segmented converse TUI programs that also issue their own "throw" statement in the code. The throw statement created a temporary exception record that really is not temporary. This record is associated with the global program list of variables. When a TUI segmented converse occurs, the program variables are saved in the environment and restored when the user presses enter. Once restored, any heap memory pointers need to be updated to use the new memory location that the restore allocates for them. The list of these variables is passed to the SSM program which then allocates new memory and updates the pointer. The problem was that temporary variables were not being added to this list, which is normally correct. However temporary exception records are really not temporary, so they should have been added. Because they were not added, when the SSM program restored the program variables, the old pointer address was left in place, causing the variable to now be pointing to a piece of memory in CICS that was wrong. An abend would not necessarily occur at this point, because it is possible this memory address is still in CICS. If transaction isolation was turned on, the abend would likely occur. Later on, when a garbage collection was performed by the heap memory manager, this invalid address would be used in the calculation of memory to be used. Due to the invalid address, a variety of problems could occur, such as a huge length being used, or an abend.
Problem conclusion
The resolution to this, is on the generator side to include the exception record as part of the list of pointers that SSM is to fixup. There is a fixtest for this problem for both 801x and 85 systems. This fixtest should be applied and only the program that is doing the segmented converse needs to be regenerated.
Temporary fix
Comments
APAR Information
APAR number
PM75874
Reported component name
RATL BUS DEV
Reported component ID
5724S5000
Reported release
850
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-10-25
Closed date
2012-11-27
Last modified date
2012-11-27
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
RATL BUS DEV
Fixed component ID
5724S5000
Applicable component levels
R850 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":"8.5","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
27 November 2012