A fix is available
APAR status
Closed as program error.
Error description
CICS may take multiple abends such as; DFHAS0002 applid A severe error (code X'0205') occurred in module DFHASXM. DFHSM0002 applid A severe error (code X'030D') has occurred in module DFHSMGF. DFHPG0002 applid A severe error (code X'1709') has occurred in module DFHPGCH. In the exception trace at offset x'1A' you will see that it completed with a Return code 02 (Exception) and Reason code 08 ( Invalid Token ): AS 0205 ASXM *EXC* - BIND_CHANNEL_FAILED - FUNCTION(BIND_XM_CLIENT) CLIENT_REQUEST_BLOCK 2-0000 00480000 0000022C 00000000 00000000 0010 B4000000 00000000 04000208 00000000 0020 00000000 00000000 00000000 1FE97070 0030 00000000 00000000 00000000 00000000 0040 00000000 00000000 And when looking at the channel token at offset x'2C' you will find that address is not currently a getmained CHCB, it was freed prior by a different task. The problem is that when a parent task runs a child task, the child will get to its end and post the parent to wake up out of its FETCH ANY wait. At that point there is a race, if the parent runs first and frees the CHCB, and then the CHCB is re-getmained for use for another copy channel from a new parent to a new child, the errors can result. Additional symptoms: KIXREVTT DFHAS0002 DFHSR0001 DFHSM0002 DFHPG0002 INVALID_TOKEN CHANNEL_TOKEN ICE_CHANNEL_TOKEN
Local fix
NA
Problem summary
**************************************************************** * USERS AFFECTED: All CICS users. * **************************************************************** * PROBLEM DESCRIPTION: Various abends (AS0002, SM0002 and/or * * PG0002 due to an invalid channel token. * **************************************************************** A parent transaction starts a child transaction with a RUN-TRANSID command, passing a copied channel to it. The parent then waits on an ECB in FETCH-CHILD (or FETCH-ANY) command processing. At some point, the child completes and drives DFHASRM commit to post the ECB to awaken the parent once more. Depending upon CICS transaction dispatching; z/OS TCB dispatching and processor availability, either the child or the parent may run before the other at this point. If the parent runs first, it can rename the channel it receives back from the child and add it to its own set of channels. The parent may then end, freeing the channel and its CHCB control block - this means there is the potential for the CHCB to be GETMAIN'd again and reused for another channel passed between another parent and child transaction pair. When the original child transaction gets dispatched again, it finds that accb_channel_token is still set in the ACCB, so it deletes the channel and freemains the CHCB. This means the child has now freed the CHCB in use for another channel owned by another child transaction. This can lead to an AS0002, SM0002 and/or PG0002 abend, depending on what happens next in relation to the current usage of the channel and its (now freemained) CHCB. It can also prevent a new child from detaching its channel when it ends, if chcb_persistent does not happen to be on at that point in time due to the CHCB being freed and reused during that time.
Problem conclusion
DFHASRM has been changed to test that the accb_channel_fetched flag is not set on before deleting the child's channel at the end of commit processing.
Temporary fix
Comments
APAR Information
APAR number
PH45424
Reported component name
CICS TS Z/OS V5
Reported component ID
5655Y0400
Reported release
100
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2022-04-04
Closed date
2022-06-10
Last modified date
2022-09-08
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI80973 UI80974 UI80975
Modules/Macros
DFHASAS DFHASRM
Fix information
Fixed component name
CICS TS Z/OS V5
Fixed component ID
5655Y0400
Applicable component levels
R100 PSY UI80975
UP22/06/11 P F206 ¢
R200 PSY UI80974
UP22/06/16 P F206 ¢
R300 PSY UI80973
UP22/06/15 P F206 ¢
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"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.4","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
08 September 2022