A fix is available
APAR status
Closed as program error.
Error description
Several LMAS's are shutdown while an API is executing a CPSM GET OBJECT command that includes one of the LMAS's in the SCOPE of the request. A program check occurs in EYU0XDQA(UQ84101) AT +X'6DE' on an OR CHAR instruction using Reg 2 which contains, zeros. This is in routine ADDR_FILTER_BYP, where register 2 was loaded from the Result Set Descriptor (EYUBXDRD) at +X'100'. This should contain the Data Descriptor EPTR (RDSC_DATA_DESC), but is 2 words of X'00000000'. The error information in the log is: CDH3CMAS ASRA IN XDQA, OFFSET 000006DE PSW=078D4000 AB1DBC86 INTC=0004 ILC=6 TXCP=00000000 SCODE=S00C4 TRAN= XDNR Methods= XDQA, XDP1, XDNR, XLOP Environerror, Socresource (1030, 1321) Additional symptoms Abend0C4 AbendAKEA AbendS0C4 Abends00c4 abend AKEA 0c4 s0c4 s00c4 in EYU0XDP1 offset E84 or E90 at UK12363 in label GETR_EXIT_0015 NI XDF3_ID,X'BF' INVALIDATE BLOCK ID DEFAULTWARNCNT EYUVC1220E EYUXL0905E ASRA XDP1
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All CICSPlex/SM V3R1M0 Users * **************************************************************** * PROBLEM DESCRIPTION: You shut down one or more MASes in * * which CPSM API programs are executing. * * An API task running in the CMAS re- * * ceives abend ASRA (S0C4) in module * * EYU0XDQA (XDQA - Populate API Result * * Set), called from EYU0XDP1 (XDP1 - API * * GET Command Processor). One or more * * API tasks in other MASes may hang in * * one of methods XDE1 - XDE5 (EYU0XDEn - * * MAS API Low Level Routers). Until the * * CMAS is recycled, any further API com- * * mands fail with: * * . * * RESPONSE=ENVIRONERROR, * * REASON=SOCRESOURCE * **************************************************************** * RECOMMENDATION: After applying the PTF that resolves this * * APAR, all CMASes and MASes must be recycled * * to pick up the new code. Note that the * * restarts do not need to be done at the same * * time. * **************************************************************** When an API command executes, a Command Descriptor is acquired from a pool in the DAT1 cache data space, initialized with parameter values from the API parm list, and passed to the local CMAS for processing. When the MAS in which an API program executes is terminated, a serialization error caused the current Command Descriptor to be returned to the free pool twice. This has two effects. It allows the Command Descriptor to be acquired by two API tasks at the same time, and it breaks the free block chain, orphaning all free descriptors already on the free chain. When EYU0XDNR (XDNR - CMAS API Command Router) finishes with an API command, it POSTs the API task waiting in the client ad- dress space. The CONTEXT and SCOPE for the POST are taken from the active API Thread's descriptor block. If the current API Command Descriptor has been reused by another task, the POST may be executed in the wrong region, where it will fail because the target task is unknown. The API task in the real target region will wait indefinitely to be POSTed. Some API commands which build a result set may accept a token for an existing result set which is reused. If the result set is in use by another task, the command fails with RESPONSE=BUSY. A logic flaw in EYU0XDP1 and EYU0XDW3 (XDW3 - API GROUP Command Processor) allows the failing command processor to release the result set if a BUSY condition is detected. The command which owns the result set may receive abend ASRA (S0C4) as the result set descriptor and data blocks have been released.
Problem conclusion
Modules EYU0ABI0 (ABI0 - Batch API Command Analyzer), EYU0XDER (XDER - MAS API Command Analyzer) and EYU0XDNR (XDNR - CMAS API Command Router) were modified to check the address of a Command Descriptor being returned to the free chain. If the address matches the Head-of-Chain address, the descriptor will not be rechained. In a CMAS or MAS, the API Structure Vector and the Command Descriptor will be traced, and the first time this occurs a dump of the CMAS, client, and DATx cache data spaces will be taken. EYU0XDNR was modified to take the CONTEXT and SCOPE of the MAS to be POSTed from the API Origin Block which is passed in the Method Argument List (MAL), not from the Thread Descriptor. EYU0XDP1 and EYU0XDW3 were modified to release the output result set on failure only if it was allocated by the module be- cause a null result token was passed in the Command Descriptor.
Temporary fix
********* * HIPER * ********* FIX AVAILABLE BY PTF ONLY
Comments
APAR Information
APAR number
PK23678
Reported component name
CPSM CICS 3.1
Reported component ID
5655M1501
Reported release
100
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt
Submitted date
2006-04-21
Closed date
2006-07-19
Last modified date
2006-11-08
APAR is sysrouted FROM one or more of the following:
PK23645
APAR is sysrouted TO one or more of the following:
UK16333
Modules/Macros
EYURXDMB EYU0ABI0 EYU0XDER EYU0XDNR EYU0XDP1 EYU0XDW3 EYU0XZPT
Fix information
Fixed component name
CPSM CICS 3.1
Fixed component ID
5655M1501
Applicable component levels
R100 PSY UK16333
UP06/07/21 P F607
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