Problem
You’re trying to connect to your Oracle database from a standard compute using a JDBC connection. The JDBC connection uses the javax.net.trustStore
or the javax.net.keyStore
properties that point to the wallet.sso
files from a volume or storage path.
The connection attempt fails with a “handshake_failure”
error.
Cause
Oracle can’t access the wallet.sso
files.
Solution
Use an init script to make the files available to the compute.
1. Add the following init script to the volume or storage path to copy the wallet.sso
files to the /cert
location.
#!/bin/bash
mkdir /cert
cp <path-for-wallet.sso-file> /cert
groupadd spark-users
chgrp -R spark-users /cert
chmod 440 /cert/cwallet_dev.sso
2. Add the init script to an allowlist. For details, refer to the Allowlist libraries and init scripts on compute with standard access mode (formerly shared access mode) (AWS | Azure | GCP) documentation.
3. Attach the allowlisted init script to the standard compute. For details, refer to the “Configure a cluster-scoped init script using the UI” section of the Cluster-scoped init scripts (AWS | Azure | GCP) documentation.
4. Add the Apache Spark configuration spark.connect.perserveOptionCasing
true to the compute. For details on how to apply Spark configs, refer to the “Spark configuration” section of the Compute configuration reference (AWS | Azure | GCP) documentation.
5. In your Oracle JDBC connection, use the /cert/wallet.sso
path.