IBM Support

SDI 7.2 - How To install on Red Hat Enterprise Linux® 7.9 and 8

How To


Summary

How To install IBM Security Directory Integrator on Red Hat Enterprise Linux® 7.9 and 8

Environment

Security Directory Integrator 7.2
Red Hat Enterprise Linux® 8
Red Hat Enterprise Linux® 7.9

Steps

----
!! NOTE !!
Before 7.2.0-ISS-SDI-FP0008( ie SDI 7.2 Fixpack 8) the 'compat-libstdc++-33' OS package is a requirement for SDI 7.2. With SDI 7.2 Fixpack 8,  the 'compat-libstdc++-33' package requirement has been removed from SDI 7.2. Customers encountering the exception detailed in the stack trace can disregard the instruction in this technote regarding the installation of additional OS packages. To resolve the exception, please upgrade to version 7.2.0-ISS-SDI-FP0008 or later.
----
After the installation of SDI on RHEL, the customer will find any attempt to use 'ibmdisrv' fails with 'i4clntjni (Not found in java.library.path)'. On a review of the environment, the 'ldd' command could show the 'libnsl' library is a missing dependency.
 
$ pwd
/opt/IBM/TDI/V7.2

$ ls -l /opt/IBM/TDI/V7.2/libs/
total 268
-rwxrwxr-x. 1 sdiuser sdiuser 270591 Nov 14  2013 libi4trybuyjni.so
 
$ uname
Linux

$ cat  logs/ibmdi.log
2020-03-16 11:24:31,565 ERROR [com.ibm.di.loader.ServerLauncher] - CTGDKG023E Error while starting main class.
java.lang.reflect.InvocationTargetException
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
   at java.lang.reflect.Method.invoke(Method.java:613)
   at com.ibm.di.loader.ServerLauncher.startServer(ServerLauncher.java:173)
   at com.ibm.di.loader.ServerLauncher.main(ServerLauncher.java:79)
Caused by: java.lang.UnsatisfiedLinkError: i4clntjni (Not found in java.library.path)
   at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1197)
   at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:1161)
   at java.lang.System.loadLibrary(System.java:527)
   at com.ibm.LUMClient.LumCoreClient.<clinit>(LumCoreClient.java:32)
   at java.lang.J9VMInternals.initializeImpl(Native Method)
   at java.lang.J9VMInternals.initialize(J9VMInternals.java:236)
   at com.ibm.LUMClient.LumClient.setOption(LumClient.java:254)
   at com.ibm.di.server.RS.checkLUM(RS.java:3574)
   at com.ibm.di.server.RS.main(RS.java:589)

The exception occurs due to the installer process not locating required system libraries during the installation process, as noted in technote: [Issues caused by not installing prerequisites for Tivoli Directory Integrator on Linux®]
Before RHEL 7.9, an administrator could locate the `libstdc++.so.5` in an operating system software repository. Starting with RHEL 7.9, the library can not be found in the operating system repository. To resolve `i4clntjni (Not found in java.library.path)` on RHEL 7.9 and later, support found the following steps as a workaround:
1. Locate and download the rpm to the machine. This workaround refers to the RHEL 7 library, as an RHEL (7.9 or 8) library could not be found:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

2. Install the local rpm:
yum localinstall compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
yum install -y glibc.x86_64 nss-softokn.x86_64 libXpm.x86_64 
3. Verify installation completion:
$ ls -l /usr/lib64/libstdc++.so.*
lrwxrwxrwx. 1 root root      18 Mar  5  2015 /usr/lib64/libstdc++.so.5 -> libstdc++.so.5.0.7
-rwxr-xr-x. 1 root root  830776 Mar  5  2015 /usr/lib64/libstdc++.so.5.0.7
lrwxrwxrwx. 1 root root      19 Nov  5 22:36 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.25
-rwxr-xr-x. 1 root root 1661480 Nov  5 22:38 /usr/lib64/libstdc++.so.6.0.25

4. Use the operating system `ldd` command to confirm all library requirements are met for `<SDI_HOME>/libs` files:
$ ldd libi4trybuyjni.so
   linux-vdso.so.1 (0x00007fffdc172000)
   libdl.so.2 => /lib64/libdl.so.2 (0x00007f17f41de000)
   libnsl.so.1 => not found
   libstdc++.so.5 => /lib64/libstdc++.so.5 (0x00007f17f3f03000)
   libc.so.6 => /lib64/libc.so.6 (0x00007f17f3b40000)
   /lib64/ld-linux-x86-64.so.2 (0x00007f17f43e2000)
   libm.so.6 => /lib64/libm.so.6 (0x00007f17f37be000)
   libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f17f35a6000)

5. Install any missing library: e.x. 
# yum install libnsl
Installed:
 libnsl-2.28-72.el8_1.1.x86_64 

[{"Business Unit":{"code":"BU008","label":"Security"},"Product":{"code":"SSCQGF","label":"Tivoli Directory Integrator"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"LOB24","label":"Security Software"}}]

Document Information

Modified date:
21 May 2024

UID

ibm16117862