IBM Support

PK52492: GET/RELEASE BUFFERS FROM WRONG BUFFER POOL 07/09/26 PTF PECHANGE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Get/Release buffers from wrong buffer pools
    .
    This APAR PE's APAR PK24575 whose PTF is UK19165
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of IMS DRF version 3               *
    *                 release 1 might be affected.                 *
    ****************************************************************
    * PROBLEM DESCRIPTION: There are two issues in this APAR.      *
    *                      First, the recover process gets into    *
    *                      a loop while reading logs. Second,      *
    *                      error handling while getting a buffer   *
    *                      during retrieve data processing caused  *
    *                      data corruption.  The buffer error      *
    *                      also caused an abend U385-A.            *
    *                      This is a PE APAR of PK24575.           *
    ****************************************************************
    * RECOMMENDATION: INSTALL CORRECTIVE SERVICE FOR APAR/PTF      *
    ****************************************************************
    There are two loops during the recover process:
    
    The loop in FRXUORM0 was caused by the logic failing to properly
    maintain the free chain of RVUR blocks; in some cases the
    storage for an RVUR block was released, but the free chain was
    not updated to reflect this release.  This resulted in the free
    chain having a pointer to previously released storage. the chain
    had incorrect pointers that resulted in an endless loop.
    
    The loop in FRXRBUF0 was created when a log record of length 0
    was read from an incorrectly allocated log file.  The log file
    had incorrectly been allocated as having unformatted, 0-length
    records. Logic in FRXRBUF0 depended on the length of the log
    record to index through a block of log records kept in memory.
    Because the index was incremented by 0 the end of the block of
    log records was never reached.
    
    The data corruption and Abend U385-A are caused when a process
    in DRF obtains a buffer and saves it for future processing.  The
    buffer is filled with log records and sent to the UOR manager.
    The pointer to the buffer is not cleared when the buffer is
    sent.  The next set of log records is copied into the same
    buffer that is enqueued to the UOR manager.  This happens over
    and over again until the end of data is reached.  The Abend
    U385-A happens when the earlier buffer data is overlayed and
    detected by the UOR manager.  The data corruption occurs when
    the overlay is within a log record and not detected by the
    UOR manager.  The later case sends the overlayed log data to
    later processing which writes the bad data to the output
    database data set.
    

Problem conclusion

  • AIDS: RIDS/UTIL RIDS/DBS DBS/UTIL
      GEN:
    
    *** END IMS KEYWORDS ***
    The following modules have been modified to fix the problems:
    
    FRXUORM0: The logic was changed to properly maintain the free
              chain of RVUR blocks.
    FRXRBUF0 and FRXRLRA0: changed to detect 0-length records and
              terminate with a message that includes the name of the
              log dataset that was incorrectly allocated.
    FRXQBUF0: Was modified to get a new buffer each time when we
              retrieve a new block of data to fix the data
              corruption and ABENDU385-A.
    FRXHBUF0: The definition of two buffer pools was modified to
              avoid buffer size mismatches as a potential problem.
              The buffer size was also corrected from a standard
              buffer size to the size of the buffer that we are
              actually getting.
    FRXLMRG0,FRXICTL0,FRXPDSR0,FRXPDSS0,FRXPSDR0,FRXPSDS0:
              These modules are modified to make sure that the
              buffers will be returned to the right buffer pools.
    FRXIOCN0: The field of input record was initialized to NIL to
              avoid the situation of presenting I/O error message
              when no error has occurred.
    FRXCAMG0: A new message was added for detecting 0-length
              records.
    FRXRBUF0 and FRXCAMG0:  MSGFRD2892I is modified to add a new
              reason:  'INVALID REC LENGTH' to the message.
    
    The User's Guide and Reference of IBM IMS Database Recovery
    Facility for z/OS has been changed (SC18-9407-02).
    
    FRD2892I needs to be modified:
    
    Reason    Indicates the reason for the error, and is one of
              the following:
              . INVALID TIME STAMP
              . INVALID REC LENGTH
    
    
    After existing Explanation for 'invalid time stamp', add the
    following:
    
    INVALID REC LENGTH   An invalid record length is detected when
              processing a record while reading from a log data set.
              The record length is zero.  This can occur when the
              log data set is created with unformatted data set
              characteristic.  DRF terminates early without
              completing the recovery.
    
    After existing User response for 'invalid time stamp', add the
    following:
    
    User response:   Examine the log data set
              identified in the message and repair it to the
              log data set characteristics which the IMS product
              supports.
    

Temporary fix

  • *********
    * HIPER *
    *********
    

Comments

APAR Information

  • APAR number

    PK52492

  • Reported component name

    IMS DB RECOVERY

  • Reported component ID

    5655I4400

  • Reported release

    310

  • Status

    CLOSED PER

  • PE

    YesPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2007-09-07

  • Closed date

    2007-10-24

  • Last modified date

    2008-04-30

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

    PK52261

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

    UK30638

Modules/Macros

  • FRXBDMG0 FRXCAMG0 FRXHBUF0 FRXICTL0 FRXLMRG0
    FRXPDSR0 FRXPDSS0 FRXPSDR0 FRXPSDS0 FRXQBIN0 FRXQBUF0 FRXRBUF0
    FRXRLRA0 FRXRVGB  FRXUORM0
    

Publications Referenced
SC18940702    

Fix information

  • Fixed component name

    IMS DB RECOVERY

  • Fixed component ID

    5655I4400

Applicable component levels

  • R310 PSY UK30638

       UP07/10/27 P F710 «

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCX88Z","label":"IMS Database Recovery Facility"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.1.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
30 April 2008