IBM Support

PI74703: U0847 C2C83012 DFSDBH30 PGSL7700

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • ABENDU0847 return code C2C83012 was issued from module DFSDBH30
    during dynamic backout processing.  This abend was added by a
    prior apar to prevent a loop in DFSDBH30 at label PGSL7700 due
    to an invalid unsorted purgeable buffer ( IBF ) chain.
    .
    The following execution sequence produces the U0847 C2C83012:
    .
    1)  Several partitions were performing concurrent REPL calls
        against a HALDB database in the midst of frequent pseudo-
        abends caused by U3303 (partition unavailable) and U4087
        (appl) abends.
    2)  The pseudoabends caused Dynamic Backout to run for each
        region to back out the updates made by the REPL calls
    3)  DFSDLR00 called DFSPSEL0 to VERIFY PARTITIONED DATABASE
        ACCESS and SELECT a SPECIFIC PARTITION BASED UPON the KEY.
    4)  Routine DFSPSEL1 called DFSDBAU0 via PSAUTH to AUTHORIZE/
        CHECK the PARTITION.
    5)  The Syslog revealed a "FOI110I  /STO DB GDDCDAF LOCAL"
        command had been issued in the middle of the REPL calls
        which made the partition UNAVAILABLE and returned STATUSBA
    6)  "FA EXIT FOR IMS U4087 ABENDS INVOKED" was also found in
        the Syslog, which triggered a pseudoabend of IMS REGION
    6)  DDIRNOSC (STOPPED DUE TO PREVIOUS ERR) was set ON and
        caused authorization to fail with a RC12 (x'0C').
    7)  Execution returned to DFSPSEL0 which changed RC12 to RC8
        for the AUTH FAILURE and set R0 to x'4020' and R2 to RC4.
    8)  Since authorization failed for partition GDDCDAF, DSGAMPA
        was updated in the DSG, but DSGDMBNO was left unchanged.
    9)  Dynamic Backout got control to back out updates made by
        the REPL calls prior to the partition becoming UNAVAILABLE
    10) Logic in routine LOCDSG in backout module DFSRDBC0
        verified the AMP in DSGAMPA matched the partition in the
        log record to be backed out.  However, the DMB number in
        DSGDMBNO was not verified and was passed to DFSDBH10 for
        the Buffer Purge (x'E5')call to write the altered buffer.
    11) At this point,  DFSDBH10 calls STEALBFR with the invalid
        DSGDMBNO and the HASH routine creates a duplicate buffer
        prefix, with different DMB numbers, but the same block,
        UCBAD, and CCHHR values.  The U0847 C2C83012 is issued.
    The fix in this APAR will resolve both the original LOOP
    as well as the U0847 C2C83012 abend that result from two
    OSAM buffer prefixes containing the same IBFCBLK, IBFUCBAD,
    and IBFCCHH2, but different IBFCDMB values.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * All IMS V15 QPP Full Function OSAM HALDB Database users.     *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * ABENDU0847 return code C2C83012 was issued from module       *
    * DFSDBH30 during Dynamic Backout processing. This abend       *
    * was added by a prior apar to prevent a loop in DFSDBH30 at   *
    * label PGSL7700 due to an invalid unsorted purgeable buffer   *
    * ( IBF ) chain.                                               *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * INSTALL CORRECTIVE SERVICE FOR APAR/PTF                      *
    ****************************************************************
    The following execution sequence produces the U0847 C2C83012:
    
    1)  Several partitions were performing concurrent REPL calls
         against a HALDB database in the midst of frequent
         pseudoabends caused by U3303 (partition unavailable) and
         U4087 (appl) abends.
    
    2)  The pseudoabends caused Dynamic Backout to run for
         each region to back out the updates made by the REPL calls.
    
    3)  DFSDLR00 called DFSPSEL0 to VERIFY PARTITIONED
         DATABASE ACCESS and SELECT a SPECIFIC PARTITION
         BASED UPON the KEY.
    4)  Routine DFSPSEL1 called DFSDBAU0 via PSAUTH to
         AUTHORIZE/CHECK the PARTITION.
    
    5)  The Syslog revealed a "FOI110I  /STO DB GDDCDAF LOCAL"
         command had been issued in the middle of the REPL calls
         which made the partition UNAVAILABLE and returned
         STATUSBA.
    6)  "FA EXIT FOR IMS U4087 ABENDS INVOKED" was also found in
         the Syslog, which triggered a pseudoabend of IMS REGION.
    7)  DDIRNOSC (STOPPED DUE TO PREVIOUS ERR) was set ON and
         caused authorization to fail with a RC12 (x'0C').
    8)  Execution returned to DFSPSEL0 which changed RC12 to RC8
         for the AUTH FAILURE and set R0 to x'4020' and R2 to RC4.
    9)  Since authorization failed for partition GDDCDAF, DSGAMPA
    was
         updated in the DSG, but DSGDMBNO was left unchanged.
    10) Dynamic Backout got control to back out updates made by the
          REPL calls prior to the partition becoming UNAVAILABLE.
    11) Logic in routine LOCDSG in backout module DFSRDBC0 verified
          the AMP in DSGAMPA matched the partition in the log record
    to
          be backed out.  However, the DMB number in DSGDMBNO was
          not verified and was passed to DFSDBH10 for the Buffer
    Purge
          (x'E5')call to write the altered buffer.
    12) At this point,  DFSDBH10 calls STEALBFR with the invalid
          DSGDMBNO and the HASH routine creates a duplicate buffer
          prefix, with different DMB numbers, but the same block,
    UCBAD,
          and CCHHR values.  The U0847 C2C83012 is issued.
    
    The fix in this APAR will resolve both the original LOOP as
    well as the U0847 C2C83012 abend that result from two
    OSAM buffer prefixes containing the same IBFCBLK,
    IBFUCBAD, and IBFCCHH2, but different IBFCDMB values.
    

Problem conclusion

  • Code has been modified / added in the following modules to
    correct the reported problems:
    
    DFSPSEL0
    Code has been inserted after label PS1E300 to add the
    partition DMB number, ID, and REORG number to the
    partition DSG. DSGLROOT is cleared and  DSGSETLR is
    reset to match the DSG settings for similar authorization
    errors at labels PS2E300 and PS3E300.
    
    DFSRDBC0
    Code has been inserted after label LOCDSG1 to add an
    additional check to verify if the partition DSGDMBNO
    matches DDIRNUMB.   If they match, the JCBDSG will be
    used.  If they don't match, a branch is taken to BUILDDSG
     to build a temporary DSG for DYN BKO to use.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI74703

  • Reported component name

    IMS V15

  • Reported component ID

    5635A0600

  • Reported release

    500

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-01-10

  • Closed date

    2017-03-16

  • Last modified date

    2017-10-06

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

    PI70071

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

    UI45622

Modules/Macros

  • DFSPSEL0 DFSRDBC0
    

Fix information

  • Fixed component name

    IMS V15

  • Fixed component ID

    5635A0600

Applicable component levels

  • R500 PSY UI45622

       UP17/03/25 P F703

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":"SSEPH2","label":"IMS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"15","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
22 December 2023