IBM Support

75 ways to demystify DB2: # 37: db2iupgrade fails with, ERROR: DBI1453E Invalid component name 10.5

Technical Blog Post


Abstract

75 ways to demystify DB2: # 37: db2iupgrade fails with, ERROR: DBI1453E Invalid component name 10.5

Body

Problem:
 
When trying to upgrade a V9.7 instance to V10.5 instance, upgrade fails with the following message:
 
A minor error occurred during the execution.
 
For more information see the DB2 installation log at
"/tmp/db2iupgrade.log.30983".
DBI1264E  This program failed. Errors encountered during execution were
      written to the installation log file. Program name:
      db2iupgrade. Log file name: /tmp/db2iupgrade.log.30983.
 
 
Checking /tmp/db2iupgrade.log.30983 , we see:
 
Setting default global profile registry variables :.......Success
Initializing instance list :.......Success
ERROR: An error occurred while upgrading the instance "instedi". The return
value is "1". If the problem persists contact your technical service
representative.
 
ERROR: DBI1453E  Invalid component name 10.5
 
Explanation:
 
Specified component name is either incorrect or misspelled. If the
component name is correct, this component name might not be valid on
this operating system or platform.
 
User response:
 
Check to see if the component name is a valid DB2 component for the
current operating system or platform.
 
 
   Related information:
   Response file uninstall basics
 
 
Analysis:
 
Since the upgrade was done with -d option (debug), the trace file will be generated in /tmp 
 
Looking at: db2iupgrade.trc.30983
   
...
+ echo '## Entering: chk_migrpath 199'
## Entering: chk_migrpath 199
+ tee -a /tmp/db2iupgrade_local.log.19743
+ set -x
+ db2instver=199
+ '[' X199 = X105 ']'
+ case ${db2instver?} in
++ echo 199
++ sed 's/\(.$\)/.\1/'
+ version_from=19.9
++ echo 105
++ sed 's/\(.$\)/.\1/'
+ version_to=10.5
+ display_msg /opt/ibm/db2/V105fp5/msg/en_US.iso88591/db2install.cat 453 'DBI1453E You are trying to upgrade an instance to version %s. Instance upgrade from version %s to current version is not supported.\n' 10.5 19.9
+ set -x
+ unset catname msgid deftmsg msgstr warnmsg infomsg
+ catname=/opt/ibm/db2/V105fp5/msg/en_US.iso88591/db2install.cat
+ msgid=453
+ deftmsg='DBI1453E You are trying to upgrade an instance to version %s. Instance upgrade from version %s to current version is not supported.\n'
+ warnmsg=1
+ infomsg=1
+ echo DBI1453E You are trying to upgrade an instance to version %s. Instance upgrade from version %s to current version is not 'supported.\n'
+ grep DBI....W
+ '[' 1 -eq 0 ']'
+ echo DBI1453E You are trying to upgrade an instance to version %s. Instance upgrade from version %s to current version is not 'supported.\n'
+ grep DBI....I
+ '[' 1 -eq 0 ']'
+ '[' 1 -eq 0 ']'
+ '[' 1 -eq 1 -a 1 -eq 1 ']'
++ expr 0 + 1
+ MSGCOUNT=1
+ shift
+ shift
+ shift
+ disp_msg_file=/opt/ibm/db2/V105fp5/instance/disp_msg
+ '[' '!' -f /opt/ibm/db2/V105fp5/instance/disp_msg ']'
+ /opt/ibm/db2/V105fp5/instance/disp_msg 1 453 /opt/ibm/db2/V105fp5/msg/en_US.iso88591/db2install.cat 'DBI1453E You are trying to upgrade an instance to version %s. Instance upgrade from version %s to current version is not supported.\n' 10.5 19.9
+ tee -a /tmp/db2iupgrade_local.log.19743
 
 
Looking a bit more deeper, we can find the following:
 
+ echo '## Exiting: find_homedir'
## Exiting: find_homedir
+ tee -a /tmp/db2iupgrade_local.log.19743
+ return 0
+ INSTUSE=/home/instedi/sqllib/.instuse
+ '[' X = Xdas ']'
+ '[' '!' -f /home/instedi/sqllib/.instuse ']'
++ /opt/ibm/db2/V105fp5/bin/db2fupdt -f /home/instedi/sqllib/.instuse -p BitWidth
+ INSTUSE_VALUE=64
+ rc=0
+ '[' 0 -ne 0 ']'
+ trax query_instuse_string
 
If we look at 'db2iutil' file:
 
3667 # This function queries the current .instuse to find a string
3668 query_instuse_string()
3669 {
3670     trac query_instuse_string $@
3671     set ${setopts?}
3672
3673     INST2QUERY="$1"
3674     DB2FTN="$2"
3675     DEFAULT="$3"
3676     BYDAS="$4"
3677
3678     CMD_DB2FUPDT=${DB2DIR?}/bin/db2fupdt
3679     find_homedir ${INST2QUERY?}
3680     INSTUSE=${USERHOME?}/sqllib/.instuse
3681     if [ "X${BYDAS?}" = "Xdas" ]; then
3682         INSTUSE=${USERHOME?}/das/ctrl/.instuse
3683     fi
3684
3685     if [ ! -f ${INSTUSE?} ] && [ -f ${USERHOME?}/sqllib/ctrl/.instuse ]
3686     then
3687         db2_inst_ver=`${DB2DIR?}/bin/db2fupdt -f ${USERHOME?}/sqllib/ctrl/.instuse -p INSTVER`
3688         if [ ${db2_inst_ver?} -le ${DB2VER_V97?} ]
3689         then
3690             INSTUSE="${USERHOME?}/sqllib/ctrl/.instuse"
3691         fi
3692     fi
3693
3694     INSTUSE_VALUE=`${CMD_DB2FUPDT?} -f ${INSTUSE?} -p ${DB2FTN?}`
3695     rc=$?
3696
 
You need to trace through the function to understand this deeper. Above trace output, along with the 'db2iutil' code tells us the following:
 
When ever we do an instance update/upgrade, we check to the file called .instuse. On V9.7 or earlier release of DB2 the file is located at <instance home dir>/sqllib/ctrl/.instuse. But, from V10.1 onwards, the location has changed to <instance home dir>/sqllib/.instuse . 
 
Somehow, due to a corruption, or failure on a previous attempt of upgrade, we have the .instuse file in both locations for this V9.7 instance. 
 
[instedi@hobbits ctrl]$ ls -al /home/instedi/sqllib/ctrl/.instuse

-rw-r--r-- 1 instedi instedi 118 May 24 13:46 /home/instedi/sqllib/ctrl/.instuse

[instedi@hobbits ctrl]$ ls -al /home/instedi/sqllib/.instuse

-rw-r--r-- 1 root instedi 28 May 24 13:20 /home/instedi/sqllib/.instuse
 
This is the issue.
 
Solution:
 
Given this is a V9.7 instance, we should remove the /home/instedi/sqllib/.instuse and re-try the upgrade process. Prior to removing, ensure that the content of the .instuse file under ~/sqllib/ctrl/ is good.
 
i.e : 
[instedi@hobbits ctrl]$ cat /home/instedi/sqllib/ctrl/.instuse
BitWidth=64
RealBitWidth=64
DB2DIR=/opt/ibm/db2/V9.7
InstanceType=1
InstallerID=0
INSTVER=97
V=9
R=7
M=0
F=10
I=0
S=0
 

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSEPGG","label":"DB2 for Linux- UNIX and Windows"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":""}]

UID

ibm11141096