A fix is available
APAR status
Closed as program error.
Error description
A transaction called for a COMMIT. RRS and MQ are participants in the 2 phase commit process. RRS and MQ are both successful, but before Db2 has a chance to perform the log writes to commit the COMMIT, the Db2 thread is canceled. Db2 is then taken down and brought back up. Instead of Db2 committing the in-doubt thread, Db2 rolls it back and aborts. Data can be become inconsitent.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: * * All Db2 for z/OS users of the Resource * * Recovery Services attachment facility * * (RRSAF). * **************************************************************** * PROBLEM DESCRIPTION: * * During Db2 Restart processing, Db2 * * aborted an indoubt Unit of Recovery * * (UR) for an RRSAF application that * * was using Two Phase Commit Protocols * * even though Resource Recovery * * Services (RRS) had driven the COMMIT * * exit to Db2. If the affected * * transaction involved at least one * * other resource manager (RM) besides * * Db2, then this could cause * * inconsistent results for the * * transaction. * **************************************************************** * RECOMMENDATION: * * Apply corrective PTF when available * **************************************************************** This condition occurs during a rare timing window, where: - RRS has driven the PREPARE exit to all affected resource managers (RMs) involved in the transaction being committed and all RMs have successfully responded back to RRS with a vote to COMMIT the transaction. - RRS begins driving the COMMIT exit to each of the RMs involved in the transaction being committed. - The thread on Db2 is cancelled via the Db2 CANCEL THREAD command before RRS drives the COMMIT exit to Db2. Because the thread has been cancelled, the COMMIT exit request is received by Db2, but the COMMIT processing for the UR in Db2 cannot be executed, as there is no longer an agent structure. As a result, the UR on Db2 is put into an indoubt state. During resync processing at Db2 Restart time, Db2 does not take into account the RRS request to COMMIT the UR, so assumes that the UR is to be aborted instead.
Problem conclusion
Db2 has been changed to ensure that an indoubt UR for a cancelled thread against which RRS has driven the COMMIT exit will be committed during resync processing after Db2 has been stopped using the Db2 STOP COMMAND (-STOP DB2) and subsequently started again using the Db2 START command (-START DB2).
Temporary fix
Comments
APAR Information
APAR number
PH22246
Reported component name
DB2 ZOS SUBSYS
Reported component ID
5740XYR01
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2020-02-14
Closed date
2021-02-04
Last modified date
2021-03-05
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI73814 UI73815
Modules/Macros
DSN3RRSX
Fix information
Fixed component name
DB2 ZOS SUBSYS
Fixed component ID
5740XYR01
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.
[{"Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B10"}]
Document Information
Modified date:
06 March 2021