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 IC83204 Status: Closed

2-PART NAME REFERENCES TO A FUNCTION MAY FAIL TO RE-RESOLVE AFTER A SCHEMA
CHANGE

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
Within the same connection, if there are multiple identical 
statements 
that reference a function in the form 
(<module-name>.<function-name>) under different implicit schema, 
DB2 may fail to re-resolve the schema name despite a schema 
change.  They will happen when SYSIBM is the first entry in both 
the function path of the cached statement and the current 
function path. 
 
Example 1: 
 
Assuming the existence of a function M.Func1()  (where M is the 
name of a module or PL/SQL package) in both schema A and schema 
B. 
 
   set current path = sysibm, A, sysproc, sysfun; 
   select M.Func1() from sysibm.dual; 
 
   set current path = sysibm, B, sysproc, sysfun; 
 
   --  A.M.Func1, instead of B.M.Func1, may be incorrectly 
invoked. 
   select M.Func1() from sysibm.dual; 
 
 
Example 2: 
 
Implications where multiple connections under different authids 
are involved.  Default function path has 'SYSIBM' as the first 
entry. 
 
   --@USERA 
   db2 connect to testdb 
   db2 create or replace module test 
   db2 "alter module test publish function test () returns 
char(10) begin return 'USERA'; end" 
   db2 "select test.test() from sysibm.dual" 
   1 
   ---------- 
   USERA 
   db2 terminate 
 
   @USERB 
   db2 connect to testdb 
   db2 create or replace module test 
   db2 "alter module test publish function test () returns 
char(10) begin return 'USERB'; end" 
   db2 "select test.test() from sysibm.dual" 
   1 
   ---------- 
   USERB 
   db2 terminate 
 
   @USERA 
   db2 connect to testdb 
   db2 "select test.test() from sysibm.dual" 
   1 
   ---------- 
   USERB        <=== INCORRECT
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* All                                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See Error Description                                        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to Version 9.7 FixPack 7                             * 
****************************************************************
Local Fix:
Add a "flush package cache dynamic" statement after changing 
current schema.
available fix packs:
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 DB2 UDB Version 9.7 FixPack 7
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC87900 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
08.05.2012
30.10.2012
30.10.2012
Problem solved at the following versions (IBM BugInfos)
9.7.FP7
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.7 FixList