DB2 - Problem description
Problem IC75237 | Status: Closed |
SQLPXTENTRYSWITCHIN REPORTS SQLP_NOTA IF TRANSACTION TIME OUT IS SET. | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - 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: * * DB2 V97 and above * **************************************************************** * 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.7 Fix Pack 5 for Linux, UNIX, and Windows | |
Solution | |
Upgrade to fixpack containing the fix i.e v97fp5 | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 23.03.2011 08.12.2011 08.12.2011 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP5 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.5 |