Category Archives: DB2

Install PHP DB2 libraries on CentOS

We came across the requirement to manipulate DB2 using PHP scripts. In order to be able to do that you need to the DB2 libraries installed on your machine. First of all install DB2 Express ( desired version, we used 11.1 ). Make sure you are installing the development libraries with the product as you will need this when you compile the DB2 PHP libraries. Once the server is installed check out the content of the following directory /home/db2inst1/sqllib/include/ if you see a bunch of files in there you have the development pack installed and you are good to go. if you used a different instance name obviously check in there 🙂

The following command sequence will get the rest sorted, we assume you already have php installed on your machine.

  • yum install php-pear
  • yum install php-devel
  • yum install gcc
  • pecl install ibm_db2

The installer will ask where the DB2 directories are located,  just define the directory of your instance. Since we have db2inst1 as the instance the DB2 directory is located at /home/db2inst1/sqllib.

The installer will now compile the PHP libraries. Once it is done just add extension=ibm_db2.so into your php.ini file and you are good to go.

malloc(): memory corruption at DB2 installation on CentOS or Suse Linux

I spent quite a few hours to figure out what caused this error message. This appeared when I started db2setup on either OpenSUSE or CentOS. The error refers to a memory leak when in reality it is related to the location of the installer.

  • if the installer is located on a mounted filesystem this problem occurs.
  • If I copy the installation bundle locally to the server and kick off the installation from there it works without an error.

So before you go any further try copying the installation images locally to the server and see if it solves the issue.

The error message I got is shown below:

# ./db2setup
DBI1190I  db2setup is preparing the DB2 Setup wizard which will guide
you through the program setup process. Please wait.

*** Error in `/tmp/db2.tmp.12752/db2/linuxamd64/install/../java/jre/bin/java’: malloc(): memory corruption: 0x00007fbbe0b142b0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libstdc++.so.6(_Znwm+0x1d)[0x7fbbcc7620ad]
./libdb2ure.so(_ZN7UREInfo12setMsgTokensEPK14MsgTokenHolder+0x33)[0x7fbbcc146443]
./libdb2ure.so(_ZN7UREInfo9setVitalsEiPKciliP14MsgTokenHolderji+0x85)[0x7fbbcc146375]
./libdb2ure.so(_ZN7UREInfoC1EiPKciliP14MsgTokenHolderji+0x6b)[0x7fbbcc14665b]
./libdb2ure.so(_Z11ureSendInfoiPKciiiP14MsgTokenHolderij+0x43)[0x7fbbcc10d1e3]
./libdb2ure.so(_ZN11GPFSFileset9initLevelEbPcb+0xa4e)[0x7fbbcc28305e]
./libdb2ure.so(_ZN11GPFSFileset8initSpecEb+0x204)[0x7fbbcc283ea4]
./libdb2ure.so(_ZN11GPFSFileset12setInstalledEv+0x35)[0x7fbbcc27d5e5]
./libdb2ure.so(_ZN11FilesetList18setExternInstalledEv+0x82)[0x7fbbcc274e52]
./libdb2ure.so(_ZN14FilesetUtility10scanSystemEv+0x2fb)[0x7fbbcc26104b]
./libdb2ure.so(_ZN11FilesetList4initEv+0x338)[0x7fbbcc27ac98]
./libdb2ure.so(_ZN11FilesetList11getInstanceEv+0x139)[0x7fbbcc2780e9]
./libdb2ure.so(_Z14PIResetAllOnCDv+0xb)[0x7fbbcc26d04b]
./libdb2ure.so(_ZN14FilesetUtility9scanMediaEPKc+0x544)[0x7fbbcc263474]
./libdb2ure.so(_ZN14FilesetUtility13getImgVersionEv+0x33)[0x7fbbcc265dc3]
./libdb2ure.so(Java_com_ibm_db2_install_core_DB2Copy_getInstalledDB2CopyObjsNative+0x41)[0x7fbbcc1cf651]
/tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/default/libj9vm26.so(+0x33070)[0x7fbbe480b070]
======= Memory map: ========
00010000-00011000 rw-p 00000000 00:00 0
00400000-00401000 r-xp 00000000 fd:00 67754603                           /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/bin/java
00500000-00501000 rw-p 00000000 fd:00 67754603                           /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/bin/java
021c4000-021e5000 rw-p 00000000 00:00 0                                  [heap]
7fbbac000000-7fbbac0fc000 rw-p 00000000 00:00 0
7fbbac0fc000-7fbbb0000000 —p 00000000 00:00 0
7fbbb0000000-7fbbb008f000 rw-p 00000000 00:00 0
7fbbb008f000-7fbbb4000000 —p 00000000 00:00 0
7fbbb4000000-7fbbb4021000 rw-p 00000000 00:00 0
7fbbb4021000-7fbbb8000000 —p 00000000 00:00 0
7fbbb8000000-7fbbb8021000 rw-p 00000000 00:00 0
7fbbb8021000-7fbbbc000000 —p 00000000 00:00 0
7fbbbd51b000-7fbbbd523000 r-xp 00000000 fd:00 135419944                  /usr/lib64/libnss_sss.so.2
7fbbbd523000-7fbbbd722000 —p 00008000 fd:00 135419944                  /usr/lib64/libnss_sss.so.2
7fbbbd722000-7fbbbd723000 r–p 00007000 fd:00 135419944                  /usr/lib64/libnss_sss.so.2
7fbbbd723000-7fbbbd724000 rw-p 00008000 fd:00 135419944                  /usr/lib64/libnss_sss.so.2
7fbbbd724000-7fbbbd725000 —p 00000000 00:00 0
7fbbbd725000-7fbbbd765000 rw-p 00000000 00:00 0                          [stack:18095]
7fbbbd765000-7fbbbd7bb000 r-xp 00000000 fd:00 135555513                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libsplashscreen.so
7fbbbd7bb000-7fbbbd8bb000 —p 00056000 fd:00 135555513                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libsplashscreen.so
7fbbbd8bb000-7fbbbd8bc000 rw-p 00056000 fd:00 135555513                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libsplashscreen.so
7fbbbd8bc000-7fbbbd8bf000 rw-p 00000000 00:00 0
7fbbbd8bf000-7fbbbd8f2000 r-xp 00000000 fd:00 135555509                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libjpeg.so
7fbbbd8f2000-7fbbbd9f2000 —p 00033000 fd:00 135555509                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libjpeg.so
7fbbbd9f2000-7fbbbd9f3000 rw-p 00033000 fd:00 135555509                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libjpeg.so
7fbbbd9f3000-7fbbbda09000 r-xp 00000000 fd:00 135555530                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnet.so
7fbbbda09000-7fbbbdb09000 —p 00016000 fd:00 135555530                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnet.so
7fbbbdb09000-7fbbbdb0a000 rw-p 00016000 fd:00 135555530                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnet.so
7fbbbdb0a000-7fbbbdb1a000 r-xp 00000000 fd:00 135555500                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnio.so
7fbbbdb1a000-7fbbbdc19000 —p 00010000 fd:00 135555500                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnio.so
7fbbbdc19000-7fbbbdc1a000 rw-p 0000f000 fd:00 135555500                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnio.so
7fbbbdc1a000-7fbbbdc1b000 —p 00000000 00:00 0
7fbbbdc1b000-7fbbbdc5b000 rw-p 00000000 00:00 0                          [stack:18094]
7fbbbdc5b000-7fbbbdc5c000 —p 00000000 00:00 0
7fbbbdc5c000-7fbbbdc9c000 rw-p 00000000 00:00 0                          [stack:18081]
7fbbbdc9c000-7fbbbdc9d000 —p 00000000 00:00 0
7fbbbdc9d000-7fbbbdcdd000 rw-p 00000000 00:00 0                          [stack:18080]
7fbbbdcdd000-7fbbbdcde000 —p 00000000 00:00 0
7fbbbdcde000-7fbbbdd1e000 rw-p 00000000 00:00 0                          [stack:18079]
7fbbbdd1e000-7fbbbdd23000 r-xp 00000000 fd:00 136347703                  /usr/lib64/libXfixes.so.3.1.0
7fbbbdd23000-7fbbbdf22000 —p 00005000 fd:00 136347703                  /usr/lib64/libXfixes.so.3.1.0
7fbbbdf22000-7fbbbdf23000 r–p 00004000 fd:00 136347703                  /usr/lib64/libXfixes.so.3.1.0
7fbbbdf23000-7fbbbdf24000 rw-p 00005000 fd:00 136347703                  /usr/lib64/libXfixes.so.3.1.0
7fbbbdf24000-7fbbbdf2e000 r-xp 00000000 fd:00 136347751                  /usr/lib64/libXcursor.so.1.0.2
7fbbbdf2e000-7fbbbe12d000 —p 0000a000 fd:00 136347751                  /usr/lib64/libXcursor.so.1.0.2
7fbbbe12d000-7fbbbe12e000 r–p 00009000 fd:00 136347751                  /usr/lib64/libXcursor.so.1.0.2
7fbbbe12e000-7fbbbe12f000 rw-p 0000a000 fd:00 136347751                  /usr/lib64/libXcursor.so.1.0.2
7fbbbe12f000-7fbbbe131000 r-xp 00000000 fd:00 134400335                  /usr/lib64/libfreebl3.so
7fbbbe131000-7fbbbe330000 —p 00002000 fd:00 134400335                  /usr/lib64/libfreebl3.so*** Error in `/tmp/db2.tmp.12752/db2/linuxamd64/install/../java/jre/bin/java’: malloc(): memory corruption: 0x00007fbbe0b142b0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
/lib64/libc.so.6(__vsyslog_chk+0x7a)[0x7fbbe58a717a]
/lib64/libc.so.6(+0x75d66)[0x7fbbe582cd66]
/lib64/libc.so.6(+0x7ebbc)[0x7fbbe5835bbc]
/lib64/libc.so.6(__libc_malloc+0x5c)[0x7fbbe583718c]
/lib64/libc.so.6(open_memstream+0x1a)[0x7fbbe582b99a]
======= Memory map: ========
00010000-00011000 rw-p 00000000 00:00 0
00400000-00401000 r-xp 00000000 fd:00 67754603                           /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/bin/java
00500000-00501000 rw-p 00000000 fd:00 67754603                           /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/bin/java
021c4000-021e5000 rw-p 00000000 00:00 0                                  [heap]
7fbbac000000-7fbbac0fc000 rw-p 00000000 00:00 0
7fbbac0fc000-7fbbb0000000 —p 00000000 00:00 0
7fbbb0000000-7fbbb008f000 rw-p 00000000 00:00 0
7fbbb008f000-7fbbb4000000 —p 00000000 00:00 0
7fbbb4000000-7fbbb4021000 rw-p 00000000 00:00 0
7fbbb4021000-7fbbb8000000 —p 00000000 00:00 0
7fbbb8000000-7fbbb8021000 rw-p 00000000 00:00 0
7fbbb8021000-7fbbbc000000 —p 00000000 00:00 0
7fbbbd51b000-7fbbbd523000 r-xp 00000000 fd:00 135419944                  /usr/lib64/libnss_sss.so.2
7fbbbd523000-7fbbbd722000 —p 00008000 fd:00 135419944                  /usr/lib64/libnss_sss.so.2
7fbbbd722000-7fbbbd723000 r–p 00007000 fd:00 135419944                  /usr/lib64/libnss_sss.so.2
7fbbbd723000-7fbbbd724000 rw-p 00008000 fd:00 135419944                  /usr/lib64/libnss_sss.so.2
7fbbbd724000-7fbbbd725000 —p 00000000 00:00 0
7fbbbd725000-7fbbbd765000 rw-p 00000000 00:00 0                          [stack:18095]
7fbbbd765000-7fbbbd7bb000 r-xp 00000000 fd:00 135555513                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libsplashscreen.so
7fbbbd7bb000-7fbbbd8bb000 —p 00056000 fd:00 135555513                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libsplashscreen.so
7fbbbd8bb000-7fbbbd8bc000 rw-p 00056000 fd:00 135555513                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libsplashscreen.so
7fbbbd8bc000-7fbbbd8bf000 rw-p 00000000 00:00 0
7fbbbd8bf000-7fbbbd8f2000 r-xp 00000000 fd:00 135555509                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libjpeg.so
7fbbbd8f2000-7fbbbd9f2000 —p 00033000 fd:00 135555509                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libjpeg.so
7fbbbd9f2000-7fbbbd9f3000 rw-p 00033000 fd:00 135555509                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libjpeg.so
7fbbbd9f3000-7fbbbda09000 r-xp 00000000 fd:00 135555530                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnet.so
7fbbbda09000-7fbbbdb09000 —p 00016000 fd:00 135555530                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnet.so
7fbbbdb09000-7fbbbdb0a000 rw-p 00016000 fd:00 135555530                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnet.so
7fbbbdb0a000-7fbbbdb1a000 r-xp 00000000 fd:00 135555500                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnio.so
7fbbbdb1a000-7fbbbdc19000 —p 00010000 fd:00 135555500                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnio.so
7fbbbdc19000-7fbbbdc1a000 rw-p 0000f000 fd:00 135555500                  /tmp/db2.tmp.12752/db2/linuxamd64/java/jre/lib/amd64/libnio.so
7fbbbdc1a000-7fbbbdc1b000 —p 00000000 00:00 0
7fbbbdc1b000-7fbbbdc5b000 rw-p 00000000 00:00 0                          [stack:18094]
/tmp/db2.tmp.12752/db2/linuxamd64/install//db2setup_exec: line 592: 18068 Aborted                 (core dumped) ${DB2INSTALLER?} ${DB2OPTS?} 2> ${ERRFILE?}

Relocating SCCD database

When we install SmartCloud Control Desk in a Unix/Linux box using middleware installer, it only asks for db instance user. (If we accept the default value, it’s ctginst1)

The installer then creates the user, and places the db in it’s home directory.

In lots of cases there is a dedicated filesystem to hold business critical data, ( and usually it’s not /home)  so we have to move database to that location.

db2relocatedb is the tool to use. First, copy/move  /home/ctginst1/ctginst1 directory to the new location (for eg.: /data/ctginst1 ), then create a config file for db2relocatedb. ( Keep in mind that we have to move tablespace containers as well )

so the command is:

db2relocatedb -f relocate.cfg

relocate.cfg is :

DB_NAME=maxdb75
DB_PATH=/home/ctginst1,/data/ctginst1
INSTANCE=ctginst1
STORAGE_PATH=/home//ctginst1/,/data/ctginst1/

(don’t forget, the instance should be stopped ! )

Installing and Configuring IBM Control Desk Service Provider Edition V7.5.3

This article will help you install and configure IBM Control Desk Service Provider Edition V7.5.3. As usual we will use SLES 11 SP3 as an installation OS. We used 6 gigabyte of RAM, 2 CPU cores and 50 gigabytes of disk space in this scenario.

We downloaded the following packages from Passport Advantage:

  • IBM SmartCloud Control Desk V7.5.1 TDI Integrations Multiplatform Multilingual (CI9CWML )
  • IBM Control Desk Service Provider Edition V7.5.3 for Linux Multilingual (CN2HNML )
  • Tivoli Middleware Installer Images V7.5.0.2, 1 of 3 for Linux x86-64 Multilingual (CI913ML )
  • Tivoli Middleware Installer Images V7.5.0.2, 2 of 3 for Linux x86-64 Multilingual (CI5JBML )
  • Tivoli Middleware Installer Images V7.5.0, 3 of 3 for Linux x86-64 Multilingual (CZX5JML )
  • IBM DB2 Server V10.5 for Linux on AMD64 and Intel EM64T systems (x64) Multilingual (CIK9IML )
  • IBM DB2 ESE Restricted Use, Quick Start and Activation V10.5 for Linux, UNIX and Windows Multilingual (CIK0LML )

We will use the Middleware installer to install & configure the middleware for us. Once all products installed we will gradually upgrade and distribute the middleware components across multiple servers. The middleware installer will install the following software and versions:

  • DB2 9.7
  • WepSphere Application Server Network Deployment 7.0.0.17
  • IBM Tivoli Directory Server 6.3
  • IBM HTTP Server 7.0.0.17

Before the installation we perform the following steps:

Set environment variable for mwi_launchpadroot. This will set the installation location of the installer. Our setting was like this:

export mwi_launchpadroot=/Downloads/TIVOLI-IMAGES/CONTROLDESK753/

Raise the OS open file limit to 8192 by adding the following 2 files:

root hard nofile 8192
root soft nofile 8192
to
/etc/security/limits.conf

Once the file is modified and saved reboot the system for the settings to take effect. Please note that you must have root access to perform this installation.

Installing the Middleware

The middleware installation is started with the setupLinux64.sh command from ./Install/MWI directory if the Control Desk installation media. Alternatively you can use the launchpad application to execute this installation script.

HUCTRLDSK001-P1:/Downloads/TIVOLI-IMAGES/CONTROLDESK753/Install/MWI # ./setupLinux64.sh
————————————————————-
Preparing the IBM Tivoli Middleware Installer. Please wait…
————————————————————-
Operating System: Linux
Linux distribution: suse
Host HUCTRLDSK001-P1 not found: 3(NXDOMAIN)
Hostname HUCTRLDSK001-P1 is a fully qualified domain name.OK.
The library libstdc++.so.5(64-bit) is installed.OK.
Env variable mwi_launchpadroot is set.OK.
Copying the installation files to a temporary location…

Once the installation dialog pops up select the installation language and click OK.

sccd-middleware-installer-select-language

Click Next at the Welcome window accept the license agreement then select the location of the installation plan and click Next.

sccd-middleware-installer-select-plan-locationClick Next at the Autonomic Deployment Engine installation window.

sccd-middleware-installer-autonomic-deployment-engineSelect everything in the next window then click Next.

sccd-middleware-installer-select-softwareThe installer is now generating an installation plan based on what was picked. Once ready the plan and installation order is displayed. Review the plan then click Next.

sccd-middleware-installer-generated-planMake sure that you give the fully qualified domain name at the following window then click Next.

sccd-middleware-installer-local-machine-fqdnDefine the master password in the next window. We used this option as we want all middleware passwords to be the same. You can unselect  this option and type different passwords for different software components as you progress with the installation. Click Next to get to the following installation step.

sccd-middleware-installer-passwordSelect the installation location of DB2 9.7 then click Next.

sccd-middleware-installer-db2Leave the default configuration values for the DB2 instance then click Next.

sccd-middleware-installer-db2-instanceLeave the default configuration values for the DB2 fenced user then click Next.

sccd-middleware-installer-db2-fencedLeave the default configuration values for the DB2 admin group user then click Next.

sccd-middleware-installer-db2-admin-groupLeave the default configuration values for the IBM Tivoli Directory Server installation, then click Next. It is important to point out here that the install location of the IBM Tivoli Directory Server can not be changed.

sccd-middleware-installer-tivoli-directory-serverLeave the default configuration values for the IBM Tivoli Directory Server configuration, then click Next.

sccd-middleware-installer-tivoli-directory-server-configurationLeave the default configuration values for the IBM Tivoli Directory Server database configuration, then click Next.

sccd-middleware-installer-tivoli-directory-server-databaserLeave the default configuration values for the WebSphere Application Server Security, then click Next.

sccd-middleware-installer-tivoli-directory-websphere-application-server-securityLeave the default configuration values for the WebSphere Application Server Security, then click Next.

sccd-middleware-installer-tivoli-directory-websphere-application-server-security-2Leave the default configuration values for the WepSphere Application Server Network Deployment installation, then click Next.

sccd-middleware-installer-websphere-configurationLeave the default configuration values for the Deployment Manager profile name and the Application Server Profile Name then click Next.

sccd-middleware-installer-websphere-configuration-serversLeave the default configuration values for the WepSphere Application Server Network Deployment configuration, then click Next.

sccd-middleware-installer-websphere-configuration-servers-2Leave the default configuration values for the IBM HTTP Server Installation, then click Next.

sccd-middleware-installer-http-serverLeave the default configuration values for the IBM WebSphere application server plugin for the IBM HTTP Server, then click Next.

sccd-middleware-installer-http-server-pluginSelect Specify the directory to location where the Middleware installation images are, then click Next.

sccd-middleware-installer-image-locationWe copied everything into the root installation directory under the linux64 directory. Select your image location then click Next.

sccd-middleware-installer-image-location-linux64Specify the temporary directory for the installation, then click Next.

sccd-middleware-installer-tmpSelect the Deploy Plan option then click Next.

sccd-middleware-installer-deploy-planReview the installation plan then click Deploy to kick off the installation.

sccd-middleware-installer-deploy-plan-2The installation will take about 125 minutes in our environment. It is time to take a break now.

sccd-middleware-installer-installationIf everything goes as expected you should see this:

sccd-middleware-installer-successful

Installing Control Desk

Once the Middleware is installed we are ready to install the IBM Control Desk Service Provider Edition. Before you start the installation it is important to know that all configuration values will be validated once the Next button is clicked so there should be know unexpected surprises once the physical installation process starts. You will see the Validating inputs dialog a lot during configuration specification.

control-desk-service-provider-edition-installer-validating-inputs

The installation process does take a very long time. Let the installer finish its procedure. It is not uncommon the the installation is running for more than 8 hours. If you have to stop the installation procedure for some reason, you can resume the installation using taskrunner utility. The utility is located in your control desk installation directory under scripts. Run the following command to continue a halted installation:

./scripts/taskRunner.sh CONTINUE

We start the installation using the command line installer instead of the launchpad. The installer is located in ./Install/ISM directory.

HUCTRLDSK001-P1:/Downloads/TIVOLI-IMAGES/CONTROLDESK753/Install/ISM # ./install_linux64.sh
Entering ./install_linux64.sh at Thu Feb  5 21:36:06 CET 2015.
Preparing to install…
Extracting the JRE from the installer archive…
Unpacking the JRE…
Extracting the installation resources from the installer archive…
Configuring the installer for this system’s environment…

Launching installer…

Select the installation language then click OK.

control-desk-service-provider-edition-installer-select-languageClick Next at the Introduction window, specify the installation location, then click Next.

control-desk-service-provider-edition-installer-select-install-locationClick Next after the install location verification, and the pre-installation process starts.

control-desk-service-provider-edition-installer-pre-installation-progressCheck the Package Summary then click Next to continue the installation process.

control-desk-service-provider-edition-installer-package-summaryAccept the License Agreement then select Custom Deployment in the following window then click Next.

control-desk-service-provider-edition-installer-deploymentSelect the Import the Middleware configuration information and fill in the fields with your Host name, Workspace location and root account details. This is actually very handy as it will pick up all the Middleware configuration parameters apart from the passwords so most of the following installation parameters will be pre-filled. Click Next to continue the installation.

control-desk-service-provider-edition-installer-import-middleware-configurationSelect DB2 as the database type then click Next.

control-desk-service-provider-edition-installer-db2Type the DB2 user password, then click Next.

control-desk-service-provider-edition-installer-db2-instanceSelect Automate database creation and configuration as the database is not yet created and we would like the installer to do this for us. Click Next to continue the installation. control-desk-service-provider-edition-installer-db2-create-databaseSpecify an administrative account such as root so the installer can perform the required database operations. Click Next to continue the installation.

control-desk-service-provider-edition-installer-remote-access-authorizationSpecify the required database passwords, then click Next.

control-desk-service-provider-edition-installer-db2-instance-loginLeave the DB2 table space values on default, then click Next.

control-desk-service-provider-edition-installer-db2-table-spaceSelect IBM WebSphere Application Server and select the Automate WebSphere configuration option, then click Next.

control-desk-service-provider-edition-installer-websphere-selectSpecify the wasadmin password then click Next.

control-desk-service-provider-edition-installer-websphere-wasadmin Specify root and its password for the remote access user, then click Next.

control-desk-service-provider-edition-installer-websphere-remote-accessLeave the WebSphere Application Server Configuration parameters on default and click Next.

control-desk-service-provider-edition-installer-websphere-configuration-paramsSince we have the LDAP server pre-installed and configured select the first option at the Security panel then click Next.

control-desk-service-provider-edition-installer-ldapSpecify passwords for the default maximo users. Please note that the password must contain at least one numeric and one special character. Click Next to continue the installation process.

control-desk-service-provider-edition-installer-specify-maximo-usersLeave the LDAP schema settings on default, then click Next.

control-desk-service-provider-edition-installer-ldap-schemaLeave the JMS settings on default and click Next.

control-desk-service-provider-edition-installer-jms-settingsIf you have TADDM already installed you can specify the TADDM connection settings here. Since we have TADDM already rolled out we specify the required values.

control-desk-service-provider-edition-installer-taddmWe do not specify an SMTP server for now. Click Next to continue the installation process.

control-desk-service-provider-edition-installer-smtpWe use the maxdb75 database for everything so we picked the Deploy data integration and context menu services to the same database option. Click Next to continue the installation.

control-desk-service-provider-edition-installer-db-integrationAfter selecting the product languages, the installation gets to its final stage, you have various options here to do the installation later or perform actions manually. if you do not pick any of the options the setup program will perform the installation…

control-desk-service-provider-edition-installer-conig-setup… once you reviewed your input summary and …

control-desk-service-provider-edition-installer-input-summary.. the pre-installation summary. Click Install to start the installation process.

control-desk-service-provider-edition-installer-pre-install-summaryThe installation have 15 stages ( tasks ) and as I pointed out before it will take a very long time. Stage 6 ( Task 6 )  when the Database configuration is happening is a notoriously long process for example. Therefore it is good to use a utility that checks the real time load on your server for example top or htop if you like more visualized results. This way you can see if the installer is actually doing its job.

control-desk-service-provider-edition-installer-stagesUpon successful completion you should see the following screenshot.

control-desk-service-provider-edition-installation-completedOpen your browser and type the following URL to get to the maximo console:

http://yoursccdhost/maximo

The admin user is maxadmin and use the password you have specified at installation time. If you are not able to log in right after the installation, you will need to restart the server and start up the components one by one. This usually solves the initial login issues for me.

control-desk-service-provider-edition-welcomeThis is how you start your IBM Control Desk server components:

HUCTRLDSK001-P1:~ # su – idsccmdb -c db2start
02/06/2015 13:48:13     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
HUCTRLDSK001-P1:~ # /opt/ibm/ldap/V6.3/sbin/ibmslapd -I idsccmdb
GLPSRV041I Server starting.
GLPCTL113I Largest core file size creation limit for the process (in bytes): ‘1024’(Soft limit) and ‘-1′(Hard limit).
GLPCTL119I Maximum Data Segment(Kbytes) soft ulimit for the process is -1 and the prescribed minimum is 262144.
GLPCTL119I Maximum File Size(512 bytes block) soft ulimit for the process is -1 and the prescribed minimum is 2097152.
GLPCTL122I Maximum Open Files soft ulimit for the process is 8192 and the prescribed minimum is 500.
GLPCTL121I Maximum Stack Size(Kbytes) soft ulimit for the process was 8192 and it is modified to the prescribed minimum 10240.
GLPCTL122I Maximum Virtual Memory(Kbytes) soft ulimit for the process is 6360560 and the prescribed minimum is 1048576.
GLPCOM024I The extended Operation plugin is successfully loaded from libevent.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libtranext.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libldaprepl.so.
GLPSRV155I The DIGEST-MD5 SASL Bind mechanism is enabled in the configuration file.
GLPCOM021I The preoperation plugin is successfully loaded from libDigest.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libevent.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libtranext.so.
GLPCOM023I The postoperation plugin is successfully loaded from libpsearch.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libpsearch.so.
GLPCOM025I The audit plugin is successfully loaded from libldapaudit.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libevent.so.
GLPCOM023I The postoperation plugin is successfully loaded from libpsearch.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libpsearch.so.
GLPCOM022I The database plugin is successfully loaded from libback-config.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libevent.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libtranext.so.
GLPCOM023I The postoperation plugin is successfully loaded from libpsearch.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libpsearch.so.
GLPCOM022I The database plugin is successfully loaded from libback-rdbm.so.
GLPCOM010I Replication plugin is successfully loaded from libldaprepl.so.
GLPSRV189I Virtual list view support is enabled.
GLPCOM021I The preoperation plugin is successfully loaded from libpta.so.
GLPSRV194I The Record Deleted Entries feature is disabled. Deleted entries are immediately removed from the database.
GLPSRV207I Group conflict resolution during replication is disabled.
GLPSRV200I Initializing primary database and its connections.
GLPRDB126I The directory server will not use DB2 selectivity.
GLPCOM024I The extended Operation plugin is successfully loaded from libloga.so.
GLPCOM024I The extended Operation plugin is successfully loaded from libidsfget.so.
GLPSRV180I Pass-through authentication is disabled.
GLPCOM003I Non-SSL port initialized to 389.
HUCTRLDSK001-P1:~ # su – ctginst1 -c db2start
02/06/2015 13:48:33     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
HUCTRLDSK001-P1:~ # /app/IBM/WebSphere/AppServer/profiles/ctgDmgr01/bin/startManager.sh
ADMU0116I: Tool information is being logged in file
/app/IBM/WebSphere/AppServer/profiles/ctgDmgr01/logs/dmgr/startServer.log
ADMU0128I: Starting tool with the ctgDmgr01 profile
ADMU3100I: Reading configuration for server: dmgr
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server dmgr open for e-business; process id is 5078
HUCTRLDSK001-P1:~ # /app/IBM/WebSphere/AppServer/profiles/ctgAppSrv01/bin/startNode.sh
ADMU0116I: Tool information is being logged in file
/app/IBM/WebSphere/AppServer/profiles/ctgAppSrv01/logs/nodeagent/startServer.log
ADMU0128I: Starting tool with the ctgAppSrv01 profile
ADMU3100I: Reading configuration for server: nodeagent
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server nodeagent open for e-business; process id is 5273
HUCTRLDSK001-P1:~ # /app/IBM/WebSphere/AppServer/profiles/ctgAppSrv01/bin/startServer.sh MXServer
ADMU0116I: Tool information is being logged in file
/app/IBM/WebSphere/AppServer/profiles/ctgAppSrv01/logs/MXServer/startServer.log
ADMU0128I: Starting tool with the ctgAppSrv01 profile
ADMU3100I: Reading configuration for server: MXServer
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server MXServer open for e-business; process id is 5436
HUCTRLDSK001-P1:~ # /app/IBM/HTTPServer/bin/apachectl start

We have a post with more detailed information about the components start up here.

IBM Control Desk Service Provider Edition Configuration & installation articles:

Installing the IBM Tivoli Integration Composer
Integrating TADDM and Control Desk using Integration Composer

Change DB2 database port/user/password for maxdb75 – Control Desk 7.5.1

We had a requirement today to change the default port ( 50005 ) of the DB2 server on the Control Desk box. Control desk stores this configuration data in the maximo.properties file which is normally located in ./SMP/maximo/applications/maximo/properties/ directory. This file is encrypted as it also stores the userid and password for maxdb75 database. The following steps have to be performed to change the port or any other setting properly:

– Copy original properties file ( maximo.properties_orig ) from ./SMP/etc/ to ./SMP/maximo/applications/maximo/properties/
– Rename maximo.properties to maximo.properties.old
– Rename maximo.properties_orig to maximo.properties
– Edit maximo.properties file. We changed the default port to 60000. Don’t forget to update the password field to the current password.

mxe.encrypted=true
mxe.db.url=jdbc:db2://ussccd1-p1.ipm.local:60000/maxdb75
mxe.db.driver=com.ibm.db2.jcc.DB2Driver
mxe.rmi.port=0
mxe.db.schemaowner=maximo
mxe.db.password=CHANGETHISVALUE
mxe.db.user=maximo
mxe.registry.port=13400
mxe.name=MXServer

– Encrypt the configuration file using the encryptproperties.sh usually location in ./SMP/maximo/tools/maximo

Once this procedure is done you will have to repackage the configuration file in properties.jar located in ./WebSphere/AppServer/profiles/ctgAppSrv01/installedApps/ctgCell01/MAXIMO.ear

– Copy the configuration.jar file to a temporary location
– unpack the configuration.jar file using the jar utility. There will be several version of this on your server so just look for it and use whichever is convenient.
– Run the following command /yourjarlocation/jar -xvf properties.jar
– Copy the maximo.properties file to the temporary directory and overwrite the extracted version
– Pack the jar file back to /yourjarlocation/jar -cvf properties.jar
– Copy the new properties.jar file to it’s original location: ./WebSphere/AppServer/profiles/ctgAppSrv01/installedApps/ctgCell01/MAXIMO.ear

Now restart the WebSphere application server and your changes should be done.

If you happen to use Integration Composer you also have to change the database settings on the Control Desk Console in the following menu:

System Configuration -> Platform Configuration -> System Properties

Also change the port in the fusion.properties file which is located in the Integration Composer root directory under ./data/properties:

mxe.db.url=jdbc:db2://localhost:60000/maxdb75

Moving Tivoli Common Reporting Content Store Database

We had to move the Tivoli Common Reporting Content store database. Both database DB2 servers are the same OS and same DB2 version otherwise this method is not working!

To move the database from the old server to the new one we did the following steps:

  • Backup old database ( backup database cognos )
  • Copy backup file to new server ( scp … )
  • Restore database on new server ( restore database cognos to /app/db2db )
  • create tcradmin user on new server and assign required db2 rights.

I spent about an hour googling where these database settings are stored with no success so finally I decided to find the configuration file myself. The database connection parameters are stored in cogstartup.xml file in the cognos configuration directory. We have changed the following parameter:

<crn:parameter name=”server”>
<crn:value xsi:type=”cfg:hostPort”>x.x.x.54:50001</crn:value>
</crn:parameter>

to

<crn:parameter name=”server”>
<crn:value xsi:type=”cfg:hostPort”>x.x.x.53:50001</crn:value>
</crn:parameter>

After restarting Jazz the cognos is now connected to the new database server.

Enable TCP/IP communcations on DB2

Our db2 instance user is smadmin

Edit /etc/services file to have the desired port set. I used 50000 and service name db2c_smadmin

db2c_smadmin    50000/tcp

Su over to the db2 user and run the following:

db2set DB2COMM=tcpip
db2 update database manager configuration using svcename db2c_smadmin

Restart the DB2 instance:

db2stop force
db2start

Check if the desired port is open:

telnet localhost 50000
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.

If the operation was successful the connection is successful as it is in the example above.