DB2 - Problem description
Problem IC73457 | Status: Closed |
SQLPXTENTRYSWITCHIN REPORTS SQLP_NOTA IF TRANSACTION TIME OUT IS SET. | |
product: | |
DB2 FOR LUW / DB2FORLUW / 950 - DB2 | |
Problem description: | |
If transaction time out is set using setTransactionTimeout jdbc function or XATimeout (xt) variable in xaopen string, DB2 as RM incorrect rollbacks the transaction under the following conditions. The next XA request reports XAER_NOTA, a message with return code SQLP_NOTA is logged in db2diag.log. 1. DB2 incorrectly rollbacks the transaction before the expired time if transaction endtime is very close to the time used by resync process to check the expired transaction. Bascially, while resync process is checking the transaction to mark it as the expired transaction, transaction is moved to ended state at the same time. db2 inocrrectly marks the transaction as expired and rollback it. TM receives return code -4 (XAER_NOTA) on xa_prepare (prepare to commit) or commit/rollback. A message SQLP_NOTA is logged in db2diag.log 2. DB2 as a RM returns OK, on "prepare to commit" or xa_prepare, but replies XAER_NOTA on xa_commit because transaction is incorrectly rolledback by DB2 as RM. The issue can happen under rare condition. While working on expired transactions, if the transaction is moved to prepared state because of concurrent xa_prepare call from TM, db2 resync process incorrectly rollbacks the prepared transaction. XATimeout is only applicable for ended transaction. db2diag.log shows the following message because of the error condition: EDUID : 45490 EDUNAME: db2agent (CLSCOR) 0 FUNCTION: DB2 UDB, data protection services, sqlpxTEntrySwitchIn, probe:300 RETCODE : ZRC=0x80100024=-2146435036=SQLP_NOTA "Transaction was not found" DIA8036C XA error with request type of "". Transaction was not found. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All users using DB2 db2_v95fp4 and above releases * **************************************************************** * PROBLEM DESCRIPTION: * * SQLPXTENTRYSWITCHIN REPORTS SQLP_NOTA IF TRANSACTION TIME * * OUT IS * * SET. * **************************************************************** * RECOMMENDATION: * * Remove XATimeout from xa_open string or in case of Java * * * * application, remove transaction timeout. * **************************************************************** | |
Local Fix: | |
Remove XATimeout from xa_open string or in case of Java application, remove transaction timeout. | |
available fix packs: | |
DB2 Version 9.5 Fix Pack 8 for Linux, UNIX, and Windows | |
Solution | |
Upgrade to DB2 V95 FP8 or above. | |
Workaround | |
not known / see Local fix | |
BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: IC75237 follow-up : | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 23.12.2010 05.07.2011 05.07.2011 |
Problem solved at the following versions (IBM BugInfos) | |
9.5.FP8 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.5.0.8 |