IBM Support

PM70502: 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.                                         *
    ****************************************************************
    * 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 3, Release 1
    Supplementary Data Areas manual, GC34-6905-03, will be updated
    with the changes to the PTA and PLCB as follows:
    
    Within DSECT PGDCC, PTA - PG Transaction Area on page 386:
    After PTA_CHCB, add the following:
    Offset Type      Len Name                Description
    48     CHARACTER 44  PTA_PLCB_HEAD_COPY  Copy of info from head
                                             PLCB for
                                             inquire_current_program
    48     ADDRESS   4   PTA_PLCB_PREV_PTR   Previous PLCB
    4C     CHARACTER 28  PTA_PLCB_PROGRAM_INSTANCE Instance of
                                                   current prog
    4C     CHARACTER 8   PTA_PLCB_PROGRAM_NAME Prog name
    54     ADDRESS   4   PTA_PLCB_PROG_PPTE  PPT entry for this lvl
    58     CHARACTER 16  PTA_PLCB_PROGRAM_DETAILS This structure is
                                             used for improving
                                             performance
    58     ADDRESS   4   PTA_PLCB_LOAD_POINT Program load point
    5C     ADDRESS   4   PTA_PLCB_ENTRY_POINT Program entry point
    60     CHARACTER 1   *
           1... ....     PTA_PLCB_AMODE_31   AMODE on=31 off=24
    60     FULLWORD  4   PTA_PLCB_PROGRAM_LENGTH program_length
    64     ADDRESS   4   PTA_PLCB_LANGUAGE_TOKEN Progam language
                                                extension
    68     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
    69     CHARACTER 1   PTA_PLCB_ENVIRONMENT Environment info
           UNSIGNED  1   PTA_PLCB_ENVIRONMENT_TYPE Enviroment type
    6A     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
    6B     CHARACTER  1  *                     Unused
    6C     CHARACTER  8  PTA_PLCB_INVOKING_PROG Invoking program
    74     FULLWORD   4  PTA_PLCB_HEAD_UPDATE_COUNT Number of times
                                                PLCB updated
    
    The last row should be updated with an offset of 78 and the
    Len value of the PTA structure at offset 0 should be changed
    to: 120 .
    
    Within DSECT PGDCC, PLCB - Program Level Control Block on page
    386:
    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

  • ž**** PE13/09/04 FIX IN ERROR. SEE APAR PM96353  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PM70502

  • Reported component name

    CICSTS V3 Z/OS

  • Reported component ID

    5655M1500

  • Reported release

    400

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-08-08

  • Closed date

    2012-11-05

  • Last modified date

    2013-09-25

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

    PM55755

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

    UK83233 UK83234 UK83235 UK83236

Modules/Macros

  •    DFHABAB  DFHABABT DFHAMPIL DFHAPCR  DFHAPCRT
    DFHAPEX  DFHAPLI1 DFHAPLI2 DFHAPLI3 DFHAPLJ1 DFHAPLJ3 DFHAPLX1
    DFHAPLX3 DFHAPPG  DFHAPRT  DFHAPRTT DFHBAAR1 DFHBAAR2 DFHBRIC
    DFHBRMS  DFHBRSP  DFHBRSPT DFHBRTC  DFHDLI   DFHDUDU  DFHD2EX1
    DFHEEI   DFHEIBAM DFHEIFC  DFHEIIC  DFHEIP   DFHEPC   DFHERM
    DFHFCFR  DFHICXM  DFHMNMN  DFHPCPG  DFHPCXDF DFHPGAI  DFHPGAIT
    DFHPGAQ  DFHPGAQT DFHPGAQX DFHPGAQY DFHPGCH  DFHPGCHT DFHPGCP
    DFHPGCPT DFHPGCR  DFHPGCRT DFHPGDD  DFHPGDDT DFHPGDM  DFHPGDUF
    DFHPGEX  DFHPGEXT DFHPGHM  DFHPGIS  DFHPGISA DFHPGISM DFHPGIST
    DFHPGISX DFHPGISY DFHPGLD  DFHPGLDT DFHPGLE  DFHPGLET DFHPGLK
    DFHPGLKT DFHPGLU  DFHPGLUT DFHPGPG  DFHPGPGT DFHPGRE  DFHPGRET
    DFHPGRP  DFHPGRPT DFHPGST  DFHPGUE  DFHPGXE  DFHPGXET DFHPGXM
    DFHPGXMT DFHSMGF  DFHSMMG  DFHSNAS  DFHSNPU  DFHSNSG  DFHSNSU
    DFHSNTU  DFHSNUS  DFHSNUST DFHSUEX  DFHUEH   DFHWBAP  DFHWBAPF
    DFHWBAPT DFHWBCL  DFHWBCLD DFHWBCLH DFHWBCLI DFHWBCLL DFHWBCLO
    DFHWBCLT DFHWBDM  DFHWBSR  DFHWBSRT DFHWBXM  DFHWBXMT DFHXSAD
    DFHXSADT DFHXSRC  DFHXSRCT DFHZAND
    

Publications Referenced
GC34690503    

Fix information

  • Fixed component name

    CICSTS V3 Z/OS

  • Fixed component ID

    5655M1500

Applicable component levels

  • R400 PSY UK83233

       UP12/11/09 P F211

  • R401 PSY UK83234

       UP12/11/09 P F211

  • R402 PSY UK83235

       UP12/11/09 P F211

  • R403 PSY UK83236

       UP12/11/09 P F211

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

Document Information

Modified date:
25 September 2013