IBM Support

PK90219: DFR GETS INFINITE LOOP IN DFRCMRCX (X=9, A OR B)

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • If a failed IMS was in the following situation, DFR generates
    an External Subsystem UOR Status list:
      - The IMS is the sync point coordinator.
      - The IMS application program makes one or more External
        Subsystem (ESS) calls.
      - The external subsystem contains any in-doubt UORs.
    Then, DFR analyzes the condition of the external subsystem with
    IMS logs and gets an infinite loop in DFRCMRCx (x=9, A or B).
    The loop is due to inaccurate resources that are left by
    the previous analysis for the condition of the external
    subsystem.
    
    Keywords: DFRCMRC9 DFRCMRCA DFRCMRCB looping loops
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All IMS DEDB FAST RECOVERY Version 2         *
    *                 Release 2 (FMID=H1J2220) users who use an    *
    *                 IMS application program makes one or more    *
    *                 External Subsystem (ESS) calls in IMS V9,    *
    *                 IMS V10 or IMS V11.                          *
    ****************************************************************
    * PROBLEM DESCRIPTION: DFR gets infinite loop in DFRCMRCx      *
    *                      (x=9, A or B) by inaccurate resources   *
    *                      (RCIEs) that are left by previous       *
    *                      analysis for the situation of the       *
    *                      external subsystem.                     *
    ****************************************************************
    * RECOMMENDATION: Apply the maintenance for this APAR.         *
    ****************************************************************
    If a failed IMS was in the following situation, DFR generates
    an External Subsystem UOR Status list.
    - IMS is the sync point coordinator.
    - IMS application program makes one or more External Subsystem
      (ESS) calls.
    - The external subsystem contains any in-doubt UORs.
    Then, DFR analyzes the situation of the external subsystem with
    IMS logs.
    Usually, when a log record for a sync-abort-point is processed,
    DFR deletes a RPST and related resources, before processing
    X'07' or X'5612' log record for this RPST. However, when the
    external subsystem is being used, DFR saves the information of
    the external subsystem into an External Subsystem Block (ESBK)
    and even if DFR processes the log record for the sync-abort-
    point, DFR does not delete the RPST in order to process the
    log records of the external subsystem.
    Moreover, DFR processes only one of the log records about the
    RPST for the sync-commit-point or for the sync-abort-point.
    Therefore, DFR does not process the log record for the sync-
    commit-point in this case.
    When IMS application program is being run on an IFP region, or
    it issues a ROLB call, IMS writes the log records for the sync-
    abort-point. And IMS increases a recovery token of a UOR only
    after the sync-commit-point. After the ROLB call or an internal
    ROLB call for the IFP region, the recovery token is not
    increased. So, if DB updates and the sync-commit-point were
    performed after the log records for the sync-abort-point were
    written, these log records have the same recovery-token as the
    log records for the sync-abort-point.
    Even if the log record for two or more sync-point exists in one
    UOR, DFR recognizes the log record for the first sync-point to
    be the last situation of the UOR, and continues processing.
    Although DFR registers a RCIE by the log record for DB update
    after the log record for the sync-abort-point, the log record
    for the sync-commit-point is not processed.
    And even if the target RPST is deleted with the log record for
    the external subsystem before X'5612' or X'07' log record for
    the target RPST, the RCIE remains as inaccurate information.
    *
    The following two problems may occur depending on the situation
    of the failed IMS.
    . When other UOR updated the same CI of DEDB that is registered
      with the RCIE left as inaccurate information, DFR gets
      infinite loop in DFRCMRCx. (x=9, A or B)
    . When IMS failed before writing X'5612' or X'07' log record for
      the target UOR, DFR loses CI updates of DEDB which should be
      recovered.
    

Problem conclusion

  • The following macro and modules have been modified.
    (x = 9, A and B)
    DFRRPSTx - Add a new flag RPSTCOMT (X'01') which indicates that
               X'37', X'5937' or X'5637' log record was processed.
    DFRCMRCx - This module was changed so that it ends with abend
               code U3999 in a subroutine RPUTONE when a previous
               RPST chained from a RCIE does not have a chain to the
               RCIE (RPSTRCIE=0).
    DFRLUORx - This module was changed as follows.
               . A RPSTWTDE flag is not turned ON when X'38',
                 X'5938' or X'5638' log record is processed.
                 (It turns ON only when X'5612' or X'07' log record
                  is processed.)
               . A RPSTABOT flag is reset and a new RPSTCOMT flag is
                 turned ON when X'37', X'5937' or X'5637' log record
                 is processed.
    DFRL593x - This module was changed so that a new RPSTCOMT flag
               might be used for a judgement of whether a UOR was
               committed instead of a RPSTSYNC flag.
               Multiple log records for one sync-abort-point came to
               be processed by this change.
               For a mixed mode environment, the following processes
               were added so that multiple registration of the same
               information to a Sync-Abort UOR list might not be
               carried out by multiple log records for one sync-
               abort-point.
               . Judge whether X'5950' or X'5951' log record was
                 processed by this sync-abort-point.
               . After an entry is registered, information required
                 for registration (RPSTLSNF, RPSTLSNL and RPSTBSN)
                 is cleared.
    DFRNLG0x - This module was changed as follows.
               . A Sync-Abort UOR entry has two log sequence
                 numbers.
                 One is the first update log record sequence
                 number of a UOR, the other is the last update log
                 record sequence number of the UOR aborted.
                 This module was changed as follows in consideration
                 of the log sequence numbers overlapping case.
                 . When checking whether X'5950' or X'5951' log
                   record is registered into a Sync-Abort UOR list,
                   not only the log sequence number but also a
                   recovery token is checked.
                 . When the entry is searched, it is searched from
                   the first Sync-Abort UOR list at every log
                   record.
                 . When the log sequence number of the target log is
                   smaller than the first log sequence number
                   (ABTELSNF) of the Sync-Abort UOR entry, it
                   changed so that the search process might be
                   ended.
               . When a value of ABTLENXT field was 0 (when only one
                 ABTL is used and 100 entries of the ABTL are used
                 up), it changed so that the search process might be
                 ended.
               . The error of the timing which clears a RSYNSTAT
                 flag is corrected.
    *
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK90219

  • Reported component name

    DEDB FAST RECOV

  • Reported component ID

    5655E3200

  • Reported release

    220

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2009-06-30

  • Closed date

    2009-07-16

  • Last modified date

    2009-08-03

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

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

    UK48423

Modules/Macros

  •    DFRCMRCA DFRCMRCB DFRCMRC9 DFRLUORA DFRLUORB
    DFRLUOR9 DFRL593A DFRL593B DFRL5939 DFRNLG0A DFRNLG0B DFRNLG09
    DFRRPSTA DFRRPSTB DFRRPST9
    

Fix information

  • Fixed component name

    DEDB FAST RECOV

  • Fixed component ID

    5655E3200

Applicable component levels

  • R220 PSY UK48423

       UP09/07/18 P F907

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.

[{"Line of Business":{"code":null,"label":null},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCX895","label":"IMS DEDB Fast Recovery"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"2.2.0"}]

Document Information

Modified date:
03 October 2020