Kbase P12884: Error -1012 occurs when connecting Progress 64-bit to ORACLE 9i 10g client 64-bit
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/4/2009 |
|
Status: Verified
SYMPTOM(s):
Getting errors when connecting to ORACLE from 64 bit Oracle Client
ORACLE error -1012 see "ORACLE Error Messages and Codes Manual". (1252)
ORA: -1012 not logged on
Unable to load shared library
SYSTEM ERROR: Illegal instruction. (47)
SYSTEM ERROR: Bus error. (48)
SYSTEM ERROR: Memory violation. (49)
ORASOPATHNAME is not set prior to connecting to Oracle
Stack trace from _progres reads:
XOCIoerhms
orgetmsg
odisperr
oracon
FACT(s) (Environment):
Progress 9.1D 64 bit
Progress 9.1E 64-bit
Oracle Dataserver
Oracle 9i
HP-UX 11i 64-bit
Oracle 10g
Solaris SPARC 8 64-bit
Solaris SPARC 9 64-bit
CAUSE:
Bug# 20020807-009
CAUSE:
Oracle 9i client is officially supported with the release of Progress 9.1D02.
For 64 bit Oracle, prior to Oracle 9i (i.e, 8.1.7), by default, 64 bit libclntsh.xx was located at $ORACLE_HOME/lib64 directory, 32 bit libclntsh.xx was located at $ORACLE_HOME/lib directory.
Because of this Oracle structure, on 64 bit platforms, Oracle DataServer searches for libclntsh in following order
1. ORASOPATHNAME
2. $ORACLE_HOME/lib64/
With the introduction of ORACLE 9i 64 bit, the 64 bit libclntsh.xx is in $ORACLE_HOME/lib. 32 bit libclntsh.xx now resides in $ORACLE_HOME/lib32. There is no lib64 directory anymore under ORACLE_HOME.
With ORASOPATHNAME unset, on 64 bit platforms, DataServer continues to try to load libclntsh.xx from $ORACLE_HOME/lib64 and crashes.
FIX:
This is fixed in OpenEdge 10.0A.
If upgrading is not possible, set the environment variable ORASOPATHNAME to point to ORACLE 9i 64bit client libraries which now are $ORACLE_HOME/lib/libclntsh.xx prior to any Oracle DataServer operations.
ORASOPATHNAME=$ORACLE_HOME/lib/libclntsh.xx, export ORASOPATHNAME