A fix is available
APAR status
Closed as program error.
Error description
Your CMAS reaches SOS condition in the ECDSA while your CPSM application processes HTASK data. Your application issues GET OBJECT(TASK) 48 times in it major loop and issues SPECIFY FILTER six times in a minor loop. It appears that there is a "fragmentation " problem in the ECDSA because there is 63 MB of "current free space". Domain subpool SMSHRC31 is fragmented with most of the elements containing XDF3 blocks(MOS Filter Execute Work Areas). When CPSM releases storage, the eyecatcher in the block is normally invalidated. XDF3 eyecatchers are not invalidated when freed. Thus, there is no way to visuually tell if the code that releases storage has been executed. Invalidating the eyecatcher when storage is released will aid in diagnosing storage leaks. Additional Keyword(s) and Symptom(s) : DFHSM0133 CMAS short on Storage 5697E9301 R300 2.3 230
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All CICSPlex/SM V3R1M0 Users * **************************************************************** * PROBLEM DESCRIPTION: You run an API program that builds * * several filters and result sets, but * * does not call DISCARD to release the * * storage held on behalf of each object * * until the thread is disconnected, by * * the DISCONNECT or TERMINATE commands, * * or by MVS (for API programs running in * * a batch, TSO, or NetView environment) * * or CICS (for API programs running in * * a local MAS) end-of-task processing. * * After the program has run a number of * * times, your CMAS goes short on storage * * in ECDSA. Examination of the storage * * maps shows that ECDSA is badly frag- * * mented with many blocks of storage * * in subpool SMSHRC31 which contain the * * string 'XDF3'. * **************************************************************** * RECOMMENDATION: After applying the PTF that resolves this * * APAR, all CMASes must be recycled to pick * * up the new code. Note that the restarts * * do not need to be done at the same time. * **************************************************************** When module EYU0XDH4 (XDH4 - API Discard Token) is called to release all resources held on behalf of a disconnecting thread, the address of the first slot in the thread's token index is loaded, the next-in-chain pointer value is saved, and the type flag is tested. If the token is active, all storage held on behalf of the filter, result set, or view is released and the token is returned to the free queue. The saved next- in-chain value is then reloaded and the process is repeated. The next-in-chain pointer in the thread's token index entry actually points to the next free entry when the current entry is on the free queue. The value is not cleared when an entry is taken from the free queue for use, and a number of active token entries may be chained, but as soon as a free entry is reached, no further active entries will be processed. In the extreme case where the first slot has been used and returned to the free queue, no tokens will be freed, and when the thread token and thread descriptor block are released, all unfreed objects will be orphaned. When API filters are discarded, the eyecatchers in the Filter Descriptor (EYUXDEYUBXDFD, in the DATx cache data space) and the Filter Execution Block (XDF3, in ECDSA) are not invalidated, so when examining a dump it is difficult to determine whether a block has actually been released by CICS FREEMAIN or by module EYU0XCBR (XCBR - Cache Block Release). During processing of the API GROUP (EYU0XDW3, XDW3) command, module EYU0MOFL (MOFL - Manager Object Services Extract Field Information) is called to retrieve default summary options for each field. When the generated names EYU_CICSNAME, EYU_CICSREL, and EYU_RESERVED are passed, a response and reason of EXCEPTION and UNKNOWN_FIELD are returned by MOFL, and an exception trace is written. This may cause the AUXTRACE datasets or internal trace buffer to wrap, overwriting trace records needed to diag- nose a problem.
Problem conclusion
Module XDH4 was modified to scan the thread's token index sequentially, rather than by chaining through the next-in-chain pointer. Modules XDH4, EYU0XDP1 (XDP1 - API Get Command) and EYU0XDV1 (XDV1 - API Specify Filter) were modified to insure that block eyecatchers are invalidated when the blocks are released. The common find_field_by_name routine in design file DYU0MOCM was modified to suppress tracing of UNKNOWN_FIELD exceptions if the field name is one of the generated names. All modules which include the common subroutine were recompiled to pick up the change.
Temporary fix
FIX AVAILABLE BY PTF ONLY
Comments
APAR Information
APAR number
PK20561
Reported component name
CPSM CICS 3.1
Reported component ID
5655M1501
Reported release
100
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2006-03-01
Closed date
2006-03-08
Last modified date
2006-04-04
APAR is sysrouted FROM one or more of the following:
PK19249
APAR is sysrouted TO one or more of the following:
UK12363
Modules/Macros
DYU0MOAV DYU0MOCM DYU0MOFL DYU0MOFS DYU0MOFT DYU0MOMS DYU0MOSS DYU9MOTL EYUQXXCB EYU0MOAV EYU0MOFL EYU0MOFS EYU0MOFT EYU0MOMS EYU0MOSS EYU0XDH4 EYU0XDOL EYU0XDP1 EYU0XDV1 EYU9MOTL
Fix information
Fixed component name
CPSM CICS 3.1
Fixed component ID
5655M1501
Applicable component levels
R100 PSY UK12363
UP06/03/09 P F603
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
22 February 2023