IBM Support

PM29899: DFHDS0002 (CODE X'0068') , TASK GETS SUSP_ALREADY_SUSPENDED EXCEPTION BECAUSE ANOTHER TASK IS SUSPENDED ON ITS SUSPEND TOKEN

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A task (Task #1) receives a SUSP_ALREADY_SUSPENDED exception
    because another task (Task #2) is currently suspended using the
    initial task's (Task #1) suspend token. This occurs because when
    the second task called DFHDSSR to suspend, the suspend token
    that it passed was the same suspend token as the initial task.
    So when the initial task validly tried to suspend on his own
    token, he recieved the SUSP_ALREADY_SUSPENDED exception since
    the second taskhas already suspended on it. This has occurred
    because the two tasks are both using the same NQEA. This causes
    the SUSP_ALREADY_SUSPENDED problem and a loop of NQEA addresses.
    There is a chain of free NQEAs maintained off of the NQPL. When
    a task needs an NQEA, it tries first to get one off that chain.
    And there are 2 places that is done.  There is code in the
    DFHNQEDI function(ENQUEUE) macro to do that.  And there is code
    in DFHNQED to do that. The problem is caused by DFHNQED not
    using CDS to take off an NQEA from the free chain.  The code in
    the DFHNQEDI macro *does* use CDS for taking an NQEA off the
    free chain.get_nqea_from_quickcel is the fragment used by
    DFHNQED that does not use CDS for taking NQEAs off the chain.
    Additional Keywords: DS0002 , 0068 , ENQUEUE , SUSPAREA ,
    DFHPD0105
    KIXREVEPH
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All.                                         *
    ****************************************************************
    * PROBLEM DESCRIPTION: Message DFHDS0002 code x'0068' issued.  *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Enqueue and Dequeue mechanisms within CICS code use a
    combination of NQLOCK, Compare Double and Swap and Compare
    and swap to manage a chain of Enqueue Element Areas ( NQEA ).
    
    A timing window exists where an update of the chain of NQEAs
    can go undetected because of the use of CS instead of CDS. This
    means that an NQEA already in use by a task is at the head of
    the NQEA free chain and is available for use by another task.
    If another task obtains the NQEA, message DFHDS0002 is produced.
    In addition, CICS trace may contain *EXC entries showing
    DSKE_TASK_SUSP_TOK_IN_USE and/or SUSP_ALREADY_SUSPENDED.
    
    Keywords: DFHME0116 DS0002 msgDFHDS0002 DFHMQTRU
    

Problem conclusion

  • DFHNQED has been amended to use a CDS instruction rather than a
    CS when removing an NQEA from the free chain.
    

Temporary fix

  • FIX AVAILABLE BY PTF ONLY
    

Comments

APAR Information

  • APAR number

    PM29899

  • Reported component name

    CICSTS V3 Z/OS

  • Reported component ID

    5655M1500

  • Reported release

    500

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-01-05

  • Closed date

    2011-02-22

  • Last modified date

    2011-03-02

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PM32183 UK65104

Modules/Macros

  •    DESNQNQ  DFHMQTRU DFHNQED  DFHNQEDT DFHNQNQ
    DFHNQNQT
    

Fix information

  • Fixed component name

    CICSTS V3 Z/OS

  • Fixed component ID

    5655M1500

Applicable component levels

  • R500 PSY UK65104

       UP11/02/26 P F102

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.2","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.2","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 March 2011