IBM Support

PM41580: DFHLD0002 SEVERE ERROR (CODE X'0809') IN MODULE DFHLDLD

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Problem may be seen with either of the following messages:
    .
    DFHLD0002 A severe error (code X'0809') has occurred in
    module DFHLDLD.      or
    DFHLD0001 An abend (code 0C4/AKEA) has occurred at offset
    X'1496' in module DFHLDLD.
    .
    The problem is a locking problem with PG domain PLCB 's. A CONA
    task running on the QR TCB issues an EXEC CICS INQUIRE TASK
    request for a task currently executing on an L8 TCB. During
    processing of this request, DFHPGIS is called for
    INQUIRE_CURRENT_PROGRAM and is passed a valid TXN address. At
    time of the INQUIRE_CURRENT_PROGRAM from CONA, the task being
    inquired on is executing in a TRUE program CSFATRUE, and the
    head PLCB (field PTA_PLCB_HEAD ) is correspondingly CSFATRUE.
    .
    MVS system trace shows that the QR TCB loses control just as
    it's about to execute the LOAD instruction at offset '6C8' in
    DFHPGIS (UK63860). The QR TCB begins running shortly afterward
    but before it does, the task running on it's L8 TCB completes
    it's processing in CSFATRUE and DFHERM updates the PLCBs to
    reflect this. DFHERM uses an inline DFHPGEXI macro (functions
    PREPARE_EXIT and CLEAR_EXIT) to manipulate the PLCBs but doesn't
    hold the PG lock when it does this. So the head PLCB (field
    PTA_PLCB_HEAD ) changes out from under CONA who then goes on to
    load from the now invalid PLCB for CSFATRUE, picks up an invalid
    address and saves it in field PPTE_PTR. DFHPGIS then calls
    Loader domain passing an invalid token and either the DFHLD0002
    Severe error x'0809' or the abend0C4 in DFHLDLD will occur. It
    looks like the same problem could occur in DFHUEH who also uses
    the DFHPGEXI macro to manipulate the PLCBs for GLUEs.
    .
    Additional Symptom(s) Search Keyword(s):
    KIXREVSLY 0809 CONL PTA 0C4 S0C4 abendS0C4 abend0C4 GLUE
    DFHPG0001 An abend (code 0C4/AKEA) has occurred at
              offset X'0B28' in module DFHPGIS.
    ppte plcb pta DFHEIQSK PG0001  40404040
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: DFHLD0002 Severe error (code x'0809')   *
    *                      in module DFHLDLD                       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    While processing an EXEC CICS INQUIRE TASK, DFHPGIS is called
    for inquire_current_program.  If the subject of the inquire is
    running on a different TCB, it can change link level during
    the course of inquire_current_program's execution.
    If task interleaving occurs in a particular way, it is possible
    for inquire_current_program to pick up a pointer to the PLCB for
    the program at the original link level. It then references
    the PLCB after the link level has changed.  It's likely that the
    original PLCB will have been freed at this stage, and therefore
    the contents of storage will be unpredictable.  When the
    current program for a task is a GLUE or TRUE,
    inquire_current_program must call DFHLDLD to obtain some of the
    program's attributes.   It may then pass a bad program token
    retrieved from the freed PLCB, resulting in the severe error
    or 0C4.
    
    Additional keywords: msgDFHLD0002 msgDFHLD0001 LD0002 LD0001
    

Problem conclusion

  • All CICS code which modifies the PLCB has been changed to copy
    data used by inquire_current_program into an area in the
    PTA.  DFHPGIS inquire_current_program has been updated to use
    this data, rather than referencing the PLCB, so that it does
    not risk referencing a PLCB which is no longer available. In
    addition, an update count is maintained for the area in the PTA.
    The means that inquire_current_program can tell if the data has
    changed since the inquire started, and retry if so.
    
    The CICS Transaction Server for z/OS, Version 4, Release 1
    Supplementary Data Areas manual, GC34-7015-02, will be updated
    with the changes to the PTA and PLCB as follows:
    
    In Table 439, after PTA_FREE_HTB_CHAIN, add the following:
    Offset Type      Len Name                Description
    54     CHARACTER 44  PTA_PLCB_HEAD_COPY  Copy of info from head
                                             PLCB for
                                             inquire_current_program
    54     ADDRESS   4   PTA_PLCB_PREV_PTR   Previous PLCB
    58     CHARACTER 28  PTA_PLCB_PROGRAM_INSTANCE Instance of
                                                   current prog
    58     CHARACTER 8   PTA_PLCB_PROGRAM_NAME Prog name
    60     ADDRESS   4   PTA_PLCB_PROG_PPTE  PPT entry for this lvl
    64     CHARACTER 16  PTA_PLCB_PROGRAM_DETAILS This structure is
                                             used for improving
                                             performance
    64     ADDRESS   4   PTA_PLCB_LOAD_POINT Program load point
    68     ADDRESS   4   PTA_PLCB_ENTRY_POINT Program entry point
    68     CHARACTER 1   *
           1... ....     PTA_PLCB_AMODE_31   AMODE on=31 off=24
    6C     FULLWORD  4   PTA_PLCB_PROGRAM_LENGTH program_length
    70     ADDRESS   4   PTA_PLCB_LANGUAGE_TOKEN Progam language
                                                extension
    74     BIT(8)    1   PTA_PLCB_INSTANCE_FLAGS Bit settings are
                                 the same as those in PPTE_DEFINTION
           1... ....     PTA_PLCB_CEDF_STATUS   CEDF status
           .1.. ....     *
           ..1. ....     PTA_PLCB_ANY_DATA_LOC  Data location
           ...1 ....     PTA_PLCB_DPLSUBSET  Program execution set
           .... 11..     *
           .... ...1     PTA_PLCB_DYNAMIC_STATUS Dynamic DPL status
    75     CHARACTER 1   PTA_PLCB_ENVIRONMENT Environment info
           UNSIGNED  1   PTA_PLCB_ENVIRONMENT_TYPE Enviroment type
    76     BIT(8)    1   PTA_PLCB_FLAGS
           1... ....     PTA_PLCB_INPUTMSG_SUPPLIED Input msg passed
                                       on link or XCTL to this level
           .1.. ....     PTA_PLCB_XCTL_IN_PROGRESS XCTL in progress
           ..1. ....     PTA_PLCB_HANDLE_ABEND_PGM Abend handler
                                                   program
           ...1 ....     PTA_PLCB_SYSEIB_REQUEST SYSEIB specified
           .... 1...     PTA_PLCB_HPJ_PROGRAM Java program object
           .... .111     *                     Reserved
    77     CHARACTER  1  *                     Unused
    78     CHARACTER  8  PTA_PLCB_INVOKING_PROG Invoking program
    80     FULLWORD   4  PTA_PLCB_HEAD_UPDATE_COUNT Number of times
                                                PLCB updated
    
    The last two rows should be updated with offset of 84 and 90.
    
    Table 440 should updated as follows:
    After PLCB_BLOCK_NAME, insert the following:
    10     CHARACTER  35 PLCB_INQUIRE_DATA Used to copy into PTA
    

Temporary fix

  • FIX AVAILABLE BY PTF ONLY
    

Comments

  • ž**** PE12/01/23 FIX IN ERROR. SEE APAR PM55461  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PM41580

  • Reported component name

    CICS TS Z/OS V4

  • Reported component ID

    5655S9700

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    YesSpecatt / Pervasive

  • Submitted date

    2011-06-14

  • Closed date

    2011-09-28

  • Last modified date

    2012-02-14

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

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

    UK72341 UK72342 PM55755

Modules/Macros

  •    DESPGCM  DESPGDC  DESPGEX  DESPGIS  DESPGLK
    DESPGLU  DESPGPG  DFHABAB  DFHAMPIL DFHAPCR  DFHAPEX  DFHAPLI1
    DFHAPLI2 DFHAPLI3 DFHAPLJ1 DFHAPLJ3 DFHAPLX1 DFHAPLX3 DFHAPPG
    DFHAPRT  DFHBAAR2 DFHBRIC  DFHBRMS  DFHBRSP  DFHBRTC  DFHDLI
    DFHDUDU  DFHD2EX1 DFHECEC  DFHECEI  DFHECRL  DFHEEI   DFHEIBAM
    DFHEIFC  DFHEIIC  DFHEIP   DFHEPAS  DFHEPC   DFHEPEV  DFHEPRL
    DFHERM   DFHFCFR  DFHICXM  DFHMNMN  DFHMQTRU DFHPCPG  DFHPCXDF
    DFHPGAI  DFHPGAQ  DFHPGCH  DFHPGCP  DFHPGCR  DFHPGDCC DFHPGDCD
    DFHPGDD  DFHPGDM  DFHPGDUF DFHPGEX  DFHPGEXI DFHPGHM  DFHPGIS
    DFHPGLD  DFHPGLE  DFHPGLK  DFHPGLU  DFHPGPG  DFHPGRE  DFHPGRP
    DFHPGST  DFHPGUE  DFHPGXE  DFHPGXM  DFHSMGF  DFHSMMG  DFHSNTU
    DFHSUEX  DFHUEH   DFHWBAP  DFHWBCL  DFHXSAD  DFHXSRC  DFHZAND
    

Publications Referenced
GC34701502    

Fix information

  • Fixed component name

    CICS TS Z/OS V4

  • Fixed component ID

    5655S9700

Applicable component levels

  • R600 PSY UK72341

       UP11/10/13 P F110

  • R700 PSY UK72342

       UP11/10/13 P F110

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":"4.1","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":"4.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
14 February 2012