Kbase P177158: Connection to Oracle Dataserver fails with unsatisfied code symbol error
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  11/11/2010 |
|
Status: Unverified
SYMPTOM(s):
Connection to Oracle Dataserver fails with unsatisfied code symbol error
Could not open Dynamic Library: $ORACLE_HOME/lib/libclntsh.so (8013)
DLL Error : Unsatisfied code symbol 'sem_destroy' in load module '$ORACLE_HOME/lib/libclntsh.so'. (8014)
Could not open Dynamic Library: $ORACLE_HOME/lib32/libclntsh.so (8013)
DLL Error : '$ORACLE_HOME/lib32/libclntsh.so' is not a valid load module: Bad magic number (8014)
Unable to load shared library (14945)
ORACLE error -1012 see "ORACLE Error Messages and Codes Manual". (1252)
Failed to connect to ORACLE database . (1451)
** Database <db name> not connected. (1021)
If ldd command is run against "libclntsh.so" on both 10g and 11g, the operating system run-time library librt.so is not included with the 11g build of Oracle's libclntsh.
FACT(s) (Environment):
librt.so includes 'sem_destroy' symbol.
Connecting to the Oracle Dataserver via the AppServer or a fat client
HP-UX 11i
OpenEdge 10.x 64-bit
Oracle DataServer
Oracle 11.1.0.6
Oracle 11.1.0.7
CAUSE:
Oracle Bug# 7675849
CAUSE:
Oracle's libclntsh library fails to include OS library 'librt.so' which contains 'sem_destroy' symbol.
CAUSE:
The second set of errors (8013) and (8014) is expected: the OpenEdge 10 64-bit DataServer executable is trying to link with the Oracle's client library (libclntsh.so) which is 32-bit. This is a consequence of the failed attempt to load the 64-bit library
FIX:
This has been fixed in the future Oracle releases, but for existing releases, the issue can be fixed by relinking the client shared library after adding option '-lrt' to sysliblist file located in the $ORACLE_HOME/lib directory:
1- Stop the databases and the listener
2- cd $ORACLE_HOME/lib
3- vi sysliblist
4- add '-lrt' option
5- cd $ORACLE_HOME/bin
6- relink client_sharedlib