Technical Blog Post
[Db2] db2icrt receives "DBI1264E This program failed" on Linux
Why does db2icrt fail on Linux? It was able to run without any error and an instance was created one year ago.
Here is the steps and result. As root user:
[root]# useradd testuser
[root]# su - testuser
[root]# /opt/ibm/db2/V10.5/instance/db2icrt -d -u testuser testuser
DBI1446I The db2icrt command is running.
DBI1264E This program failed. Errors encountered during execution were
written to the installation log file. Program name: db2icrt. Log file name:
And here is an associated db2icrt.log.12345 file which was generated by db2icrt command.
It only has below three lines.
DB2 Setup log file started at: Mon Oct 30 03:55:10 PM 2017 JST
Operating system information: Linux 3.10.0-514.21.1.el7.x86_64.#1...
With '-d' option of db2icrt at the above steps, it will create a debug
information file /tmp/db2icrt.trc.12345 and contains trace information in
timestamp order until it is finished. Each line contains, from left,
number, function name and related information. So the biggest number is
the latest information of the db2icrt execution. The bottom of the file
does not always have the biggest number and may need to searching
the biggest number manually. Here is the line of biggest number 7857 and
some previous line of numbers:
7845 |||||||||||||\ 4062680896 FilesetUtility::getDB2InstallPath EXIT Wed Dec 13 11:52:32 2017 -- , INT = 0
7846 ||||||||||||| 4062680896 iGetDB2InstallPath 40 -DATA- , STRING = /opt/ibm/db2/V10.5
7847 ||||||||||||\ 4062680896 iGetDB2InstallPath EXIT Wed Dec 13 11:52:32 2017 -- , INT = 0
7848 ||||||||||||/ 4062680896 iDirectoryExists ENTRY Wed Dec 13 11:52:32 2017 -- ,
7849 ||||||||||||| 4062680896 iDirectoryExists 10 -DATA- , STRING = /opt/ibm/db2/V10.5/lib64
7850 ||||||||||||\ 4062680896 iDirectoryExists EXIT Wed Dec 13 11:52:32 2017 -- , UINT = 1
7851 |||||||||||| 4062680896 ureCacheGetFunction2 5 -DATA- , STRING = /opt/ibm/db2/V10.5/lib64
7852 ||||||||||||/ 4062680896 ureLoadLib ENTRY Wed Dec 13 11:52:32 2017 -- ,
7853 ||||||||||||| 4062680896 ureLoadLib 10 -DATA- , STRING = /opt/ibm/db2/V10.5/lib64/libdb2isys.so
7854 ||||||||||||| 4062680896 ureLoadLib 30 -ERROR- , STRING = /lib64/libxml2.so.2: symbol gzopen64, version ZLIB_22.214.171.124 not defined infile libz.so.1 with link time reference
7855 ||||||||||||\ 4062680896 ureLoadLib EXIT Wed Dec 13 11:52:32 2017 -- , INT = 5001
7856 |||||||||||\ 4062680896 ureCacheGetFunction2 EXIT Wed Dec 13 11:52:32 2017 -- , INT = 5001
7857 ||||||||||\ 4062680896 ureCacheGetFunction EXIT Wed Dec 13 11:52:32 2017 -- , INT = 5001
As above, at line #7854, it has -ERROR- for file libxml2.so.2: symbol gzopen64. This is
the problem and db2icrt exits.
Generally speaking, db2icrt should work without any error so the symptom may be the
environment specific. And it can be caused by one of two things, 1) application
finds an unexpected file, 2) the file itself is not expected one.
For 1) Check out root user's env command output to see if their LD_LIBRARY_PATH is
defined or not. If it's there, remove it, such as "export LD_LIBRARY_PATH=" and try
again. In this specific case, since it run a year ago, most probably it is caused
by unexpected LD_LIBRARY_PATH environment variable.
(basically LD_LIBRARY_PATH is not required to run db2icrt on any Linux)
For 2) It is suspected that applied OS patches and/or applications. And these files
have been upgraded or downgraded unexpectedly. If nobody knows what did on the system,
try to upgrade latest OS patches and/or latest Db2 which potentially will update related
files and may run db2icrt without the error.
Hope this helps.
V10.5, db2icrt - Create instance command