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

DB2IUPGRADE FAILURE WHEN DB2NODES.CFG CONTAINS VIRTUAL IP ADDRESSES

product:
DB2 FOR LUW / DB2FORLUW / A10 - DB2
Problem description:
Background of the problem ; 
- db2ckupgrade API does sqlestar() and then sqleatin() , 
sqleatin() fails  if virtual host names are used  AND sqleatin() 
is called after sqlestar()  from the same ckupgrade app. 
The actual problem is in oss code sqloGetDftNodeNum() that 
compares a tcpip resolved host name to db2nodes.cfg node lines 
which is not a good comparison if virtual hostnames are used. It 
will fail to understand these 2 hosts are actually same hosts. 
There is a ssh/rsh solution executing this at remote node when 
db2rstar  is used to do ssh/rsh  in this host and figure out 
what it resolves and save it to a file. Then compare these 
values to match the host later instead of trying to do strcmp in 
db2nodes.cfg with tcpip resolve names. 
 
 
API -> blah() -->  sqlestar() -> sqleatin() -> blah... 
 
Closer look : 
                          sqlestar() - > INITAPPENV- > CACHE 
NODE UNKNOWN -> (noDEfaultNodeKnown - IT IS NORMAL - db2start is 
not DONE yet)  [ see detail#2 ] -> sqleatin() -> VOID 
(INITAPPENV : it is already done DOES NOT DO refersh node info) 
-> getDefaultnodeToAttachDBMS ->  CACHED NODE IS STILL UNKNOWN - 
SQLEATIN -> FAILS on attaching DBMS. 
 
 
[detail #2] db2start creates a .dft file that has indeed default 
node number created in .dft file from port 0 detection. Now if 
you call another api indeed it would know the only reason above 
failure in sqleatin()  never do multiple INITAPPENV from same 
app that might be calling 2 different db2 API in the same exe. 
and the point we bail out second time INITAPPENV we WONT refresh 
the nodes info from .dft file. If we were calling now  a second 
time another API that has sqleatin() it would SUCCEED. 
 
 
SUCCESS CASE 
exe1 - sqlestar  OR outright db2start 
exe2 - sqleatin 
 
exe1 + exe2 would work  (sqleatin would refresh in initAPPENV) 
 
 
FAIL CASE 
exe3 - sqlestar + sqleatin  (sqleatin  would NOT refresh in 
initAPPENV ) if it were virtual ip it would fail... 
exe3 would fail 
 
 
The fix : 
inside sqlestart() after startup completes ok , but if node is 
still unknown in the cache of INITAPPENV then refresh this cache 
again. Limited and ugly workaround.
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* users who have db2nodes.cfg contain virtual ips              * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See Error Description                                        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to product Db2 v101fp4                               * 
****************************************************************
Local Fix:
change the entries in db2nodes.cfg from virtual ip to hostname
available fix packs:
DB2 Version 10.1 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 10.1 Fix Pack 6 for Linux, UNIX, and Windows

Solution
Fixed in DB2 version 10 fixpack 4.
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC99935 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
07.03.2014
02.06.2014
02.06.2014
Problem solved at the following versions (IBM BugInfos)
Problem solved according to the fixlist(s) of the following version(s)
10.1.0.4 FixList