I'm trying to connect to a Oracle Autonomous Data Warehouse database with Jetbrains DataGrip. Oracle provides me with a wallet file (a zip), with contains tnsnames.ora, a keystore, ojdbc.properties, and some other files.
I'm having a lot of trouble using this information to connect to the database using DataGrip. I found a thread on the DataGrip support forums, but I'm not having any luck with that either.
Jetbrains support thread: https://intellij-support.jetbrains.com/hc/en-us/community/posts/360001792539-Connect-with-Oracle-Cloud
Relevant Oracle documentation: https://docs.oracle.com/en/cloud/paas/autonomous-data-warehouse-cloud/adwud/connect-using-client-application.html
What I did:
1. Created the 'TNS_ADMIN' environment variable and set it to:
C:\\Users\\xxx\\Documents\\[folder with wallet files]
2. Added the Oracle JDBC driver files (ojdbc8.jar, osdt_cert.jar, oraclepki.jar, osdt_core.jar) to the standard Oracle driver in DataGrip
3. edited the 'sqlnet.ora' file to include the path to the wallet files
4. Added the following to the Data Source VM Options:
-Doracle.net.tns_admin=C:\\Users\\xxx\\Documents\\[folder with wallet files] -Djavax.net.ssl.trustStore=truststore.jks -Djavax.net.ssl.trustStorePassword=[password] -Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=[password] -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2
- Set connection type to URL only
- Tried different connection strings in the URL field:
jdbc:oracle:thin:@//adb.eu-frankfurt-1.oraclecloud.com:1522/xxxxxx_adw1_high.adwc.oraclecloud.com?TNS_ADMIN=C:\\Users\\xxx\\Documents\\[folder with wallet files]
jdbc:oracle:thin:@xxxxxx_adw1_high.adwc.oraclecloud.com?TNS_ADMIN=C:\\Users\\xxx\\Documents\\[folder with wallet files]
Connection to ADW1 failed.  IO Error: Got minus one from a read call, connect lapse 32 ms., Authentication lapse 0 ms.
I have also tried using the 'Service name' and 'TNS' connection types and filled in the info from tnsnames.ora. No dice, same error.
Also tried explicitely setting the 'tcp.validnode_checking' parameter to null.
(The connection works fine with sqldeveloper)
What's the proper way to do this?