book
Article ID: KB0085711
calendar_today
Updated On:
Description
Resolution:
Symptoms:
=========
"Failed to load shared library, library name : <JRE_Home>/lib/i386/client/libjvm.so/libjvm.so " exception when starting TIBCO Administrator or the domain's local Hawk Agent. The same applies to any application started with the JVM wrapper, including TIBCO BusinessWorks applications.
Cause
=====
The Failed to load shared library, library name : <JRE_Home>/lib/i386/client/libjvm.so is usually symptomatic of mismatched 32-bit and 64-bit binaries. For example, libjvm.so could be 32-bit while tibcoadmin_<DomainName> or hawkagent_<DomainName> are 64-bit. In Linux with kernel 2.6 or newer, this could be due to access control security policies enforced by the Security-Enhanced Linux (SELinux) feature.
In Solaris, the cause could be the /tibco/tibcosoft/jre/1.5.0/lib/sparc/client directory not being on the trusted directory list defined in the configuration file: by default /var/ld/ld.config (for 32–bit applications) and /var/ld/64/ld.config (for 64-bit applications), or a chosen file defined in LD_CONFIG. With secure applications, the runtime linker restricts searches to only those directories in LD_LIBRARY_PATH which are also trusted.
Solution:
=======
1). Confirm the mismatch by running the command:
$ file libjvm.so
$ file <Tibco_Home>/administrator/domain/<domainName>/bin/tibcoadmin_<domainName>
$ file <Tibco_Home>/tra/domain/<domainName>/hawkagent_<domainName>
2). On 32-bit platforms and on 64-bit platforms with 32-bit Tibco software:
a). Confirm that every TIBCO software, and their service packs if any, was installed using 32-bit a installation package. The installation logs under <Tibco_Home>/log might be useful.
b). If libjvm.so is 32-bit and the tibcoadmin_<domainName> or hawkagent_<domainName> are 64-bit, confirm that wrap is 32-bit then copy it over to these binaries:
$ file <Tibco_Home>/tra/5.6/bin/wrap
$ cp <Tibco_Home>/tra/5.6/bin/wrap <Tibco_Home>/administrator/domain/<domainName>/bin/tibcoadmin_<domainName>
$ cp <Tibco_Home>/tra/5.6/bin/wrap <Tibco_Home>/tra/domain/<domainName>/hawkagent_<domainName>
c). If libjvm.so is 64-bit, try reinstalling JRE from a 32-bit TRA installation package.
3). On 64-bit platforms with 64-bit Tibco software:
a). Confirm that every TIBCO software, and their service packs if any, was installed using 64-bit a installation package. The installation logs under <Tibco_Home>/log might be useful.
b). If libjvm.so is 64-bit and the tibcoadmin_<domainName> or hawkagent_<domainName> are 32-bit, confirm that wrap64 is indeed 64-bit then copy it over to these binaries:
$ file <Tibco_Home>/tra/5.6/bin/wrap64
$ cp <Tibco_Home>/tra/5.6/bin/wrap64 <Tibco_Home>/administrator/domain/<domainName>/bin/tibcoadmin_<domainName>
$ cp <Tibco_Home>/tra/5.6/bin/wrap64 <Tibco_Home>/tra/domain/<domainName>/hawkagent_<domainName>
c). If libjvm.so is 32-bit, try reinstalling JRE from a 64-bit TRA installation package.
4). On Linux, if the binaries are of the same (32-bit or 64-bit) class, disabling SELINUX may solve the issue:
In /etc/selinux/config, change the following line:
SELINUX=enforcing
to:
SELINUX=disabled
Reboot the system to reset the Linux policies.
5). On Solaris, if the binaries are of the same (32-bit or 64-bit) class, run the following command:
$ crle
This will show the currently trusted directories and an example of a command that generates the configuration file. Use this command to add <JRE_HOME>/lib/sparc/client directory. Root access is required.
Note: Perform a backup before applying the modifications.
Issue/Introduction
"Failed to load shared library, library name : JRE_Home/lib/i386/client/libjvm.so" exception when starting TIBCO Administrator or the domain's Hawk Agent.