0

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
  1. Set connection type to URL only
  2. 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]

jdbc:oracle:thin:@//adb.eu-frankfurt-1.oraclecloud.com:1522/mnr6yzqr22jgywm_adw1_high.adwc.oraclecloud.com

Result:

Connection to ADW1 failed.  
[08006][17002] 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?

6
  • Have you tries fill paths to key/trus strore?
    – moscas
    Jan 27, 2020 at 8:00
  • Good suggestion. Tried it (also with quotes around the path, and also without the backslashes escaped), to no avail...
    – honeybees
    Feb 2, 2020 at 21:05
  • Please try to go to Data Source VM Options and put there full path to key/trus store. Something like -Djavax.net.ssl.trustStore=C:\full_path\truststore.jks
    – moscas
    Feb 10, 2020 at 12:10
  • @moscas That was the answer, thanks. To clarify the full settings for anyone having the same problem, here are the settings to use in the new datasource screen: In 'VM Options' add these lines: -Doracle.net.tns_admin=C:\\path\\to\\wallet -Djavax.net.ssl.trustStore=C:\\path\\to\\wallet\\truststore.jks -Djavax.net.ssl.trustStorePassword=<wallet pw> -Djavax.net.ssl.keyStore=C:\\path\\to\\wallet\\truststore.jks -Djavax.net.ssl.keyStorePassword=<wallet pw> -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2 In Options -Check 'Introspect schema with JDBC metadata'
    – honeybees
    May 26, 2020 at 7:28
  • In 'General' -Use TNS connection type -Field 'TNSADMIN' -> Make sure the full path to tnsnames.ora is filled in -Field 'TNS name' -> Everything after '=' in tnsnames.ora (including braces) -Field 'User' -> Fill in schema username -Field 'Password' -> Fill in schema password
    – honeybees
    May 26, 2020 at 7:31

1 Answer 1

0

DataGrip 2021.1 provides Oracle 21.1 JDBC driver with all required jar files.

Read DataGrip help about Oracle connection using wallets.

There are some additional Oracle references.

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.