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