A fix is available
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