DbVisualizer 13.0


If using the Oracle OCI driver you may encounter the following exception when trying to connect. 

Details:
   Type: java.lang.reflect.UndeclaredThrowableException

Stack Trace:
java.lang.UnsatisfiedLinkError: Native Library ....drivers/oracle/oracleClient/instantclient_19_8/libocijdbc19.dylib already loaded in another classloader
   at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2468)

The cause of this is a regression introduced in DbVisualizer 13 which we are working to solve. 


Workaround - Specifying the library dependency in the Driver Manager

First of all you should consider using the Oracle Thin driver over the Oracle OCI driver. If this is not possible please see the following for further details. 


In DbVisualizer 13 support for adding dependencies to libraries directly in the Driver manager was added. Following is an instruction how to specify the dependency to the Oracle Instant Client library. The instruction is written how to do this in macOS. A similar procedure should be applicable for other OSes.


1. Create a link 

Create a link in the instant client install folder (E.g.  /opt/oracle/instantclient). 

ln -s libocijdbc19.dylib ocijdbc19.dylib

Note: Make sure the OCI driver version matches the instant client version. 

  

2. Edit the driver in the Driver manager

Open your driver in Tools->Driver Manager. Add the ocijdbc19.dylib file by clicking "+".


3. Restart DbVisualizer

Restart DbVisualizer and connect. 


Note: Using the Driver Manager and changing anything of a driver including native libraries requires a restart of DbVisualizer.