IBM Support

PH45424: CICS AS0002, SR0001, SM0002, PG0002 ABENDS DUE TO INVALID CHANNEL TOKEN

A fix is available

Subscribe

You can track all active APARs for this component.

 

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