Skip to main content
Summary Suggestions on how to investigate problems loading libraries when starting an Orbix application
Article Number 29428
Environment Orbix Unix/Linux 6.3.X
Question/Problem Description

How can I solve a missing shared library issue?

Clarifying Information
Error Message exec(): 0509-036 Cannot load program ./itadmin because of the following errors: 0509-150 Dependent module libit_admin5_xlc70.so could not be loaded. 0509-022 Cannot load module libit_admin5_xlc70.so. 0509-026 System error: A file or directory in the path name does not exist OR [IT_Shlib_Manager, thread 1] Error while trying to dlopen() /users/devp/pmorriss/tools/aix/orbix634_64bit/shlib/libit_cfr_handler5_xlc70.so; dlerror: 0509-022 Cannot load module /users/devp/pmorriss/tools/aix/orbix634_64bit/shlib/libit_cfr_handler5_xlc70.so. 0509-150 Dependent module libit_poa5_xlc70.so could not be loaded. 0509-022 Cannot load module libit_poa5_xlc70.so. 0509-026 System error: A file or directory in the path name does not exist. 0509-022 Cannot load module /users/devp/pmorriss/tools/aix/orbix634_64bit/shlib/libit_cfr_handler5_xlc70.so
Defect/Enhancement Number
Cause Normally due to the environment file not being sourced.
Resolution 1. Before running your application make certain that you have sourced the environment file. This file is generally located at: <<Orbix install>>\\etc\\bin\\<<domain name>>_env.

2. Start shared library debugging with by setting the environment variable IT_SHLIB_VERBOSE:

IT_SHLIB_VERBOSE=1
export IT_SHLIB_VERBOSE


3. Run your service or application.

4. In the standard output, search for an error message referencing a library which cannot be found or loaded. The library name will be of the form it_arm5. This is not the name of the actual shared library. The shared library name will be libitit_arm_<<compiler>>.so.<<version number>>. For example libit_arm_gcc34_so.5 . 

5. Find your shared library path.
5. a. On AIX run the command : echo $LIBPATH
5.b.  On LINUX run the command: echo $LD_LIBRARY_PATH

6. Does the referenced shared from step 4 exist in the shared library path from step 5? If not then add the path to the  configuration file from step 1.

7. If the library does exist then check the user permissions on this file. Does the Orbix process have permissions to run this file.

8. If the process does have permissions for the file then check that all library dependencies for the file can also be loaded.
8.a. cd to the directory containing the shared library.
8.b. run the command:
   ldd <<shared library>>
 
   Check that each library needed for the shared library can be found and loaded. If there exist any missing shared libraries then change the path accordingly.

9. Make certain that if you have installed a 32 or 64 bit version of Orbix then you also use the appropriate 32 or 64 bit version of Java. (check the java version from the LIBPATH or LD_LIBRARY_PATH.)

 
Workaround
Notes

Micro Focus Article(s):
000029427, "What load library path is Orbix using?"
Attachment

Created date: 01 March 2012
Last Modified: 21 May 2013
Last Published: 17 May 2012
First Published date: 14 March 2012


#Orbix
#KnowledgeDocs