A fix is available
APAR status
Closed as program error.
Error description
EYUXZ0910I SVCDUMP issued by CMAS while other CMAS connection paths are changing and MASes are joining. The SVCDUMP is from an LNMI Receive Link task. The debug text is MisngBuf with Point Id 18. The link buffer is for a TSLG (Topology Services List Get) request which is out of sequence. The internal trace contains previous exception trace entries with debug text InvlDLST with Point Id 19 for the missing link buffers. The COMGDLST contains invalid CMAS SYSIDs due to the sending CMAS changing paths to other CMASes while needing to send multiple buffers for the TSLG MAL data. . Additional Symptom(s) Search Keyword(s): CTRP CTSN_PCK_NUM COMGPSID_NUM COMGPSID_PCKTYPE_MIC middle-in-chain linkbuf
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All CICSPlex/SM V3R1M0 Users * **************************************************************** * PROBLEM DESCRIPTION: Various unpredictable errors may occur * * when a CMAS is sending information to * * another CMAS while in the process of * * acquiring or terminating a direct or * * indirect connection to one or more * * additional CMASes. * * * * One possible symptom is an SVC dump * * taken by the receiving CMAS. The dump * * title will be similar to the following: * * * * EYU0XZPT Dump,<cmasjobn>,<cmasname>, * * <lpar>,CMAS,<tranid>,<tasknum>,TRAC, * * EYU0CTRP,<date>,<time> * * * * Examination of the auxtrace datasets * * for the CMAS that requested the dump * * will show an accompanying exception * * trace issued by method EYU0CTRP (CTRP), * * with a debug text of "MisngBuf" and a * * trace point ID of 18. This will most * * likely be preceded by at least one * * additional exception trace issued by * * method EYU0CTRD (CTRD), with a debug * * text of "InvlDLST" and a trace point ID * * of 19. * **************************************************************** * RECOMMENDATION: After applying the PTF that resolves this * * APAR, all CMASes must be restarted. Note * * that the restarts do not need to occur at * * the same time. * **************************************************************** When a CMAS sends information to another CMAS, method EYU0CTST (CTST) calls method EYU0CPLC (CPLC) to retrieve the address of the destination list (DLST) which defines the path from the sending CMAS to the receiving CMAS. CTST stores the address of the DLST in the Transport Services Source Block (EYURCTSR) section of the Transport Services Block (EYURCTSB) for the request, copies the DLST data into the communications buffer, and then the buffer is shipped to the receiving CMAS. If the request requires additional buffers of data, CTST is recalled, retrieving the DLST address from the EYURCTSR and copying the DLST into each subsequent buffer. When the last buffer for a request is formatted, the EYURCTSR is cleared. When a CMAS acquires or terminates a direct or indirect connection to another CMAS, method EYU0CPAG (CPAG) is called to rebuild all the DLSTs for the CMAS, since the addition or subtraction of a connection may result in changed paths between the CMAS and the other CMASes it is connected to. If after CTST places the address of a DLST into a EYURCTSR for a request and before CTST completes sending all buffers for the request, CPAG is called to rebuild the DLSTs, the address of the DLST in the EYURCTSR may be invalid, especially if the area has been reused for a different DLST. This results in an invalid DLST being placed into a buffer. When processing the buffer, CTRP running in the receiving CMAS will throw away the buffer and generate an "InvlDLST" trace. If another CPAG call is made before the original request is complete, it is possible that the original DLST area will be reset. This will result in the next buffer being shipped with the correct DLST, but since previous buffers were rejected with the "InvlDLST" trace, the current buffer will be rejected with the ""MisngBuf" trace and the accompanying dump.
Problem conclusion
The parameter list (MAL - method argument list) for CPLC, EYUZCPLC, has been updated to allow a caller to request a copy of the DLST in CICS task storage, instead of the pointer to the DLST. CPLC has been updated to recognize the new parm, and if it is specified, will issue a CICS getmain in task storage for the length of the DLST, copy the DLST into the task storage, and return the address of the task storage to its caller. This copy is a private copy made available only to the caller, and will not be affected by subsequent CPAG calls. CTST has been updated to request a copy of the DLST instead of the DLST pointer when calling CPLC. CTST will place the address of the copy of the DLST into the EYURCTSR. When CTST no longer needs the DLST, it will issue a CICS freemain to release the storage and will clear the address in the EYURCTSR.
Temporary fix
FIX AVAILABLE BY PTF ONLY
Comments
Various unpredictable errors may occur when a CMAS is sending information to another CMAS while in the process of acquiring or terminating a direct or indirect connection to one or more additional CMASes. One possible symptom is an SVC dump taken by the receiving CMAS. The dump title will be similar to the following: EYU0XZPT Dump,<cmasjobn>,<cmasname>, <lpar>,CMAS,<tranid>,<tasknum>,TRAC, EYU0CTRP,<date>,<time> Examination of the auxtrace datasets for the CMAS that requested the dump will show an accompanying exception trace issued by method EYU0CTRP (CTRP), with a debug text of "MisngBuf" and a trace point ID of 18. This will most likely be preceded by at least one additional exception trace issued by method EYU0CTRD (CTRD), with a debug text of "InvlDLST" and a trace point ID of 19. When a CMAS sends information to another CMAS, method EYU0CTST (CTST) calls method EYU0CPLC (CPLC) to retrieve the address of the destination list (DLST) which defines the path from the sending CMAS to the receiving CMAS. CTST stores the address of the DLST in the Transport Services Source Block (EYURCTSR) section of the Transport Services Block (EYURCTSB) for the request, copies the DLST data into the communications buffer, and then the buffer is shipped to the receiving CMAS. If the request requires additional buffers of data, CTST is recalled, retrieving the DLST address from the EYURCTSR and copying the DLST into each subsequent buffer. When the last buffer for a request is formatted, the EYURCTSR is cleared. When a CMAS acquires or terminates a direct or indirect connection to another CMAS, method EYU0CPAG (CPAG) is called to rebuild all the DLSTs for the CMAS, since the addition or subtraction of a connection may result in changed paths between the CMAS and the other CMASes it is connected to. If after CTST places the address of a DLST into a EYURCTSR for a request and before CTST completes sending all buffers for the request, CPAG is called to rebuild the DLSTs, the address of the DLST in the EYURCTSR may be invalid, especially if the area has been reused for a different DLST. This results in an invalid DLST being placed into a buffer. When processing the buffer, CTRP running in the receiving CMAS will throw away the buffer and generate an "InvlDLST" trace. If another CPAG call is made before the original request is complete, it is possible that the original DLST area will be reset. This will result in the next buffer being shipped with the correct DLST, but since previous buffers were rejected with the "InvlDLST" trace, the current buffer will be rejected with the ""MisngBuf" trace and the accompanying dump. The parameter list (MAL - method argument list) for CPLC, EYUZCPLC, has been updated to allow a caller to request a copy of the DLST in CICS task storage, instead of the pointer to the DLST. CPLC has been updated to recognize the new parm, and if it is specified, will issue a CICS getmain in task storage for the length of the DLST, copy the DLST into the task storage, and return the address of the task storage to its caller. This copy is a private copy made available only to the caller, and will not be affected by subsequent CPAG calls. CTST has been updated to request a copy of the DLST instead of the DLST pointer when calling CPLC. CTST will place the address of the copy of the DLST into the EYURCTSR. When CTST no longer needs the DLST, it will issue a CICS freemain to release the storage and will clear the address in the EYURCTSR.
APAR Information
APAR number
PK17376
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-01-05
Closed date
2006-04-18
Last modified date
2006-05-01
APAR is sysrouted FROM one or more of the following:
PK17440
APAR is sysrouted TO one or more of the following:
UK13566
Modules/Macros
EYUQCPLC EYURCPLC EYURCTSR EYUTRCOM EYUYCPLC EYUZCPLC EYU0CPLC EYU0CTST EYU9CMPU EYU9CMP3 EYU9CMP4 EYU9CMP5
Fix information
Fixed component name
CPSM CICS 3.1
Fixed component ID
5655M1501
Applicable component levels
R100 PSY UK13566
UP06/04/19 P F604
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