简体   繁体   中英

oracle sql developer connection error

I can't get the connection to work for Oracle WebLogic 12c using SQL Developer. Here is the error that I get when I click connect:

An error was encountered performing the requested operation:

/usr/lib/java/libocijdbc11.dylib: dlopen(/usr/lib/java/libocijdbc11.dylib, 1): Library not loaded: /ade/b/2475221476/oracle/rdbms/lib/libclntsh.dylib.11.1
  Referenced from: /usr/lib/java/libocijdbc11.dylib
  Reason: image not found

Vendor code 0

When I click Test in the Settings of SQL Developer I get the following log:

Testing the Instant Client located at /usr/lib/java
Testing client directory ... OK
Testing loading Oracle JDBC driver ... OK
Testing checking Oracle JDBC driver version ... OK
  Driver version: 11.2.0.3.0
Testing testing native OCI library load ... Failed:
  Error loading the native OCI library
  The native OCI driver could not be loaded. The system propertyjava.library.path
  contains the entries from the environment variable DYLD_LIBRARY_PATH.
  Check it to verify that the expected native library
  directory /usr/lib/java is present and precedes any other client installations.
  java.library.path = /Users/gasim/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.

Here is an outline of my setup:

  • Operating system: OSX Mavericks (10.9.4 to be specific)
  • The Java SE Runtime version: "1.8.0" (build "1.8.0_11-b12")
  • Oracle Instant is located under /usr/lib/java. The directory is set in the SQL Developer (through Database > Advanced)
  • The Oracle server is up and running with default parameters (localhost:7001) and I can access the web admin console.
  • Oracle Instant Client version: 11.2.0.4.0
  • java.library.path = /Users/gasim/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.

The directory listing of /usr/lib/java :

BASIC_README
adrci
genezi
libclntsh.dylib.11.1
libnnz11.dylib
libocci.dylib.11.1
libociei.dylib
libocijdbc11.dylib
ojdbc5.jar
ojdbc6.jar
uidrvci
xstreams.jar

The thing is, libocijdbc11.dylib does exist in /usr/lib/java and that directory is in the library path of java. I just don't get it. Am I missing something here? What else can I try for solving this problem or at least debugging deeper?

I'll tell you how I solved, finally...

I'm running OSX 10.9.4, with jboss 7.1.1.Final installed through brew , and an env variable JBOSS_HOME=/usr/local/opt/jboss-as/libexec .

I already had an ojdbc.jar in $JBOSS_HOME/modules/com/oracle/main , version 11.2.0.3, so I downloaded Instant Client version 11.2.0.3.

I commented any JAVA_OPTS that was populating java.library.path with instantclient libraries, like this:

#JAVA_OPTS="$JAVA_OPTS -Djava.library.path=$JBOSS_HOME/instantclient_11_2"

I copied, for being comfortable, instantclient_11_2 inside $JBOSS_HOME .

It's just a matter of doing:

export DYLD_LIBRARY_PATH=$JBOSS_HOME/instantclient_11_2
$JBOSS_HOME/bin/standalone.sh

It now works. Now I have another problem to solve:

Native Library /usr/local/Cellar/jboss-as/7.1.1.Final/libexec/instantclient_11_2/libocijdbc11.dylib already loaded in another classloader

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM