Consultor Eletrônico



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