A fix is available
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
GC34701502 |
Fix information
Fixed component name
CICS TS Z/OS V4
Fixed component ID
5655S9700
Applicable component levels
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