home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC73653 Status: Closed

Unintended Internal commit in CLI stored procedure in federated 2 phase
commit environment

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
When a stored procedure uses DB2 CLI interface to make 
connection to the database in a federated 2 
phase commit environment, the DB2 CLI driver may incorrectly 
issue an implicit COMMIT.   (A federated 2 phase commit 
environment involves a federated server with option 
"DB2_TWO_PHASE_COMMIT 'Y'").  This results in a premature ending 
of the transaction. 
 
Also this can impact the execution of an Oracle PL/SQL statement 
in a database with Oracle compatibility enabled even without the 
explicit call to a procedure that uses DB2 CLI connections. 
This is due to the fact 
that internally DB2 uses an internal CLI stored procedure to 
process the Oracle PL/SQL statement. 
 
In the case of the Oracle PL/SQL statement in a federated two 
phase commit environment, this can result in a number of 
symptoms: 
- a transaction that is not complete will be committed 
- internal package cache locks (internal V) will be released 
resulting in possible -901 sqlcodes and possible traps. 
 
When it results in traps, the stack traces at run time might be 
different each time. For example, the stack traces can have but 
not limited to the following two types: 
 
sqlribno 
sqlriSectInvoke 
sqlrr_process_execute_request 
sqlrr_execute.fdpr.clone 
sqljs_ddm_excsqlstt 
sqljsParseRdbAccessed 
sqljsParse.fdpr.clone 
sqljsSqlam 
sqljsDriveRequests 
sqljsDrdaAsInnerDriver 
sqljsDrdaAsDriver 
RunEDU 
EDUDriver 
sqloEDUEntry 
 
and 
 
run 
pvm_entry 
sqloInvokeFnArgs 
sqloInvokeFnArgs 
sqlriInvokerTrusted 
sqlriInvokeInvoker 
sqlricall 
sqlriSectInvoke 
sqlrr_process_execute_request 
sqlrr_execute.fdpr.clone 
sqljs_ddm_excsqlstt.fdpr.clone 
sqljsParseRdbAccessed 
sqljsParse.fdpr.clone 
sqljsSqlam 
sqljsDriveRequests 
sqljsDrdaAsInnerDriver 
sqljsDrdaAsDriver 
RunEDU 
EDUDriver 
sqloEDUEntry 
 
 
And before the trap occurs, you might see the following 
db2diag.log messages in regards to  -901 sqlcode and lost of the 
internal V lock: 
 
2010-11-28-17.35.46.070787+540 I147280A1304       LEVEL: Severe 
PID     : 10220174             TID  : 9768        PROC : db2sysc 
0 
INSTANCE: db2inst1             NODE : 000         DB   : DB1 
APPHDL  : 0-29                 APPID: 127.0.0.1.101128081210 
AUTHID  : DB2INST1 
EDUID   : 9768                 EDUNAME: db2agent (DB1) 0 
FUNCTION: DB2 UDB, lock manager, sqlplhld, probe:430 
MESSAGE : ZRC=0x82100001=-2112880639=SQLP_NONSEVERE_PRGERR 
          "DPS detects non-severe programming error" 
          DIA8532C An internal processing error has occurred. 
DATA #1 : String, 24 bytes 
lock not owned by caller 
DATA #2 : String, 8 bytes 
SQLPLHLD 
CALLSTCK: 
  [0] 0x090000000510D9E8 pdLog + 0xEC 
  [1] 0x090000000666CCAC sqlzSetAndLog901 + 0x1A8 
  [2] 0x090000000460B1CC sqlzSetAndLog901@glueD33 + 0xC4 
  [3] 0x0900000005368D24 sqlplhld__FP8sqeAgentP14SQLP_LOCK_INFO 
+ 0x44 
  [4] 0x09000000052C2CE8 
sqlplhld__FP8sqeAgentP14SQLP_LOCK_INFO@glueC55 + 0x74 
  [5] 0x0900000004BAC970 sqlra_close_sections__FP8sqlrr_cb + 
0x458 
  [6] 0x0900000005041B80 sqlra_close_sections__FP8sqlrr_cbUiT2 + 
0x104 
  [7] 0x090000000503FC90 
sqlrr_cleanup_tran_before_DPS__FP8sqlrr_cbiN62PiT9b + 0x204 
  [8] 0x0900000004E91684 sqlrrcom__FP8sqlrr_cbiT2 + 0x11C 
  [9] 0x09000000050438FC sqlrr_commit__FP14db2UCinterface + 0xB0 
 
2010-11-28-17.35.46.071364+540 I148585A808        LEVEL: Error 
PID     : 10220174             TID  : 9768        PROC : db2sysc 
0 
INSTANCE: db2inst1             NODE : 000         DB   : DB1 
APPHDL  : 0-29                 APPID: 127.0.0.1.101128081210 
AUTHID  : DB2INST1 
EDUID   : 9768                 EDUNAME: db2agent (DB1) 0 
FUNCTION: DB2 UDB, lock manager, sqlplhld, probe:430 
DATA #1 : SQLP_LOCK_INFO, PD_TYPE_SQLP_LOCK_INFO, 96 bytes 
lockname 0000008A0000000A000130A056 SQLP_VARIATION 
pLRB 70000003f3f2b00 prevIntent NON curIntent ..S intent ..S 
duration 1 
rlInFlags 0x00000001 rlOutFlags 0x00000000 cursorBitmap 
0x40000000 rrIIDin 0 rrIIDout 0 
rlUserDataOut.UNKNOWN 0000 0000 0000 0000 
........ 
 
rlUserDataIn.UNKNOWN 0700 0001 D5E9 0080 
........ 
 
<messages snippet> 
 
2010-11-28-17.35.46.071857+540 I151104A865        LEVEL: Error 
PID     : 10220174             TID  : 9768        PROC : db2sysc 
0 
INSTANCE: db2inst1             NODE : 000         DB   : DB1 
APPHDL  : 0-29                 APPID: 127.0.0.1.101128081210 
AUTHID  : DB2INST1 
EDUID   : 9768                 EDUNAME: db2agent (DB1) 0 
FUNCTION: DB2 UDB, trace services, sqlt_logerr_data (secondary 
logging func, probe:0 
DATA #1 : SQLCA, PD_DB2_TYPE_SQLCA, 136 bytes 
 sqlcaid : SQLCA     sqlcabc: 136   sqlcode: -901   sqlerrml: 24 
 sqlerrmc: lock not owned by caller 
 sqlerrp : SQLPL00F 
 sqlerrd : (1) 0x82100001      (2) 0x00000000      (3) 
0x00000000 
           (4) 0x00000000      (5) 0xFFFFFE52      (6) 
0x00000000 
 sqlwarn : (1)      (2)      (3)      (4)        (5)       (6) 
           (7)      (8)      (9)      (10)        (11) 
 sqlstate:
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* Users running a CLI stored procedure in a 2 phase commit     * 
* federated environment( i.e a federated server with option    * 
* "DB2_TWO_PHASE_COMMIT 'Y'").  This issue has been known to   * 
* impact the execution of an Oracle PL/SQL statement in a      * 
* database with Oracle compatibility enabled.                  * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See above Error Description                                  * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 Version 9.7 Fix Pack 4                        * 
****************************************************************
Local Fix:
available fix packs:
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
Problem was first fixed in Version 9.7 Fix Pack 4
Workaround
not known / see Local fix
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
04.01.2011
12.05.2011
12.05.2011
Problem solved at the following versions (IBM BugInfos)
9.7.FP4
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.4 FixList