Version 19.1 of SQL Developer, SQLcl, Data Modeler, and ORDS are now all available, and you can expect many posts over the next few weeks to cover all the new goodies.
Today I want to highlight some changes we made to how you define your connections.
One change you’ll see right away is a simpler connection dialog:
The name and color of the connection is up top now, and it’s hopefully less likely you’ll type your password into the username input area by accident!
Proxy User info is moved up top next to the rest of the username stuff – it’s no longer on an advanced pop up dialog.
Now about that Advanced page you still see there, I want to call out a new feature exposed there:
You can now define connections as THICK or THIN.
Previously, SQL Developer would be configured for THICK or THIN connections, application wide, via the ‘Use OCI’ preference on the Advanced page.
Just to back up a bit, your options for connecting to Oracle with our JDBC driver are:
- thin = PURE JAVA, what most people should be using
- thick = mix of Java and native compiled libraries via Oracle Client or Instant Client, required for some use cases like RADIUS authentication
And it’s totally fine to usually just go with THIN. Nothing else needed to install or configure.
There are however, some reasons you might need to go ‘thick.’ You can read all about how this works here.
But now, I can have connections in a single instance of SQL Developer going with both THIN and THICK configurations.
If we look at the connection properties for the THICK connection:
You’ll still need to go about configuring your $ORACLE_HOME or Instant Client in the Advanced Preferences page. And, I still recommend you use the TEST feature, to make sure your OCI connections will be available. The ‘show jdbc’ command ran through our script engine (F5) will also confirm your type of connection.
11 Comments
Hi Jeff
Is there a possibility that you make an updated version of this post. Inculding the latest SQL*Develope 23.1.1.345 Build 345.2114).
I’m trying to do configure my SQL*Dev (23.1.1.345 Build 345.2114) with the “Instant Client for Windows 21 13” (https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html). But having no luck.
Kind Regards
Olivier De Groef
Because the Latest 21c clients are missing the (right) jdbc drivers.
We have a bug logged with that team and once the clients are updated this will work again.
Jeff
Thank you for the reply.
Any chance that you share the bug, so I can monitor it.
Kind Regards
Olivier
Hi Jeff,
I really do need to use thick driver, but on Linux. Is it possible? If I did my homework properly, then windows oci.dll should be libclntsh.so.19.1 on Linux. SQL developer is ver. 20.4.1.407.0006, Oracle Client is ver 19.6. Testing the OCI driver failed, so I tried to add the path do LD_LIBRARY_PATH (with command export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/19.6/client64/lib ) but it was still not recognized. As a very quick and very dirty workaround I copied contents of /usr/lib/oracle/19.6/client64/lib to one of the paths from LD_LIBRARY_PATH. Voila, now the testing of the OCI driver succeeded! But when I restarted the SQL Developer and looked in Help >> About >> Properties for “sqldeveloper.oci.available” there is still “false”. I also tried to set the “use OCI” per connection, but the driver remains jdbc:oracle:thin .
So is it possible to use thick driver on Linux, please?
Yes it’s possible. With 20.4.1 you’ll need the 21c instant client. Follow those install instructions for Linux.
Hi Jeff,
the good news is that it works with 21c instant client, thank you very much. The bad news is that with OCI it keeps freezing SQL dev quite a lot. Are there any logs I can analyze? I was looking into system journal log, but there is nothing from SQL dev. Your help is much appreciated.
when sqldev ‘freezes’ – grab a jstack, then publish to the forums or open a SR with MOS
Hi Jeff,
I cannot find any tutorial how to configure the SQL developer (Windows) using only thin jdbc in order to authenticate using Kerberos. Is working when I use thick jdbc (instant client) and OCI .
I might use some hints.
Did you see/try https://support.oracle.com/knowledge/Oracle%20Database%20Products/1609359_1.html ?
He seguido lo que dice en este post sin embargo no puedo resolver el problema.
Por favor necesito que me ayuden.
la prueba de conexión dice correcto. sin embargo no puedo consultar nada de la base de Datos, ni explorar nada.
tengo lo siguiente:
Servidor
SQL ORACLE 11.1g
LINUX REDHAT
FIREWALL SOHPOS
Cliente:
Windows 10
Cliente Oracle 12
Cliente VPN de sophos. –> para conectarme con la red remota.
Hago prueba de consulta de esta forma
ingreso con cmd en windows.
sqlplus usuario/clave@orcl —> conexión y consulta sin problemas.
SQL DEVELOPER 19.1
los errores son:
Se ha restablecido la conexión a la base de datos. Se ha perdido cualquier estado de sesión o transacción pendiente.
Se ha producido un error. Haga clic en Detalles para obtener más información que puede resultar útil al diagnosticar o informar de este problema.
ava.lang.NullPointerException
at oracle.dbtools.raptor.navigator.db.xml.NavigatorHook.getConnectionType(NavigatorHook.java:252)
at oracle.dbtools.raptor.navigator.ObjectFactoryRegistry.createFactory(ObjectFactoryRegistry.java:164)
at oracle.dbtools.raptor.navigator.ObjectFactoryRegistry.getFactory(ObjectFactoryRegistry.java:153)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode.getObjectFactory(DatabaseTreeNode.java:91)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:145)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:119)
at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:199)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:702)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Oracle 11gR1 – is no longer supported. It’s possible the 18c jdbc driver doesn’t like talking to an 11gR1 database.
Try getting an older version of SQL Developer, like version 3.1, and try that.
Also, try to upgrade to 11gR2 if not 19c.