原因: 接続文字列で使用されるTNSエイリアスがtnsnames.ora内に存在します。このファイルのパスは、TNS_ADMINプロパティで指定されます。アプリケーションからこの場所にアクセスできない場合、またはTNSエイリアスがtnsnamaes.ora内に存在しない場合には、この例外がスローされます。
解決策: TNS_ADMINでtnsnames.oraの場所を指定します。この場所は、18.3以降のJDBCドライバで接続URLの一部として設定する(jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/users/test/wallet_dbname/)
か、システム・プロパティ(-Doracle.net.tns_admin)
として、または接続プロパティ(OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN)
として設定できます。TNS_ADMINが正しく設定されていることを確認してください。
原因:ウォレット・パスワードが接続プロパティjavax.net.ssl.trustStorePassword
またはjavax.net.ssl.keyStorePassword
の一部として正しく渡されているかどうか確認します。パスワードの終わりにスペースがないかどうか確認します。このエラーは、パスワードの終わりにスペースがある場合に返されます。
解決策:行の最後でウォレット・パスワードにスペースがないかどうか、またパスワードが正しいかどうか確認します。
原因:追加のjarファイルoraclepki.jar、osdt_core.jar、osdt_cert.jar
がクラスパス内に含まれ、アクセス可能かどうか確認します。このエラーは、これらのjarファイルがクラスパス内に含まれていない場合に返されます。
解決策:18.3 oraclepki.jar、osdt_core.jar、osdt_cert.jarをダウンロードしてクラスパスに格納します。
原因: Oracle Cloudでは、自律型データベース用にTLSv1.2が必須です。そのため、この例外の原因としては、(a)旧式のJDBCドライバ、(b)クラスパス内の複数バージョンのJDBCドライバ、(c)JDKバージョンなどが考えられます。
解決策: 「 前提条件 」セクションの内容を見直し、正しいJDBCドライバとJDKバージョンが使用されているかどうか確認してください。また、クラスパス内にJDBCドライバが1つしかないことを確認してください。
原因:Oracle Cloudには、最新バージョンのJDK9またはJDK8u71以上が必要です。JDK7を使用している場合は、JDK7u80以上にする必要があります。この例外は、バージョン番号の低いJDK8またはJDK7が使用されている場合に発生する可能性があります。 問題2の内容も確認してください。
解決策:JDK8の場合はJDK8u71以上に、JDK7の場合はJDK7u80以上にアップグレードしてください。
原因:JDK7を使用している場合は、追加の接続プロパティ-Doracle.net.ssl_cipher_suites
を(TLS_RSA_WITH_AES_256_CBC_SHA256)
に設定する必要があります。JDK7を使用している場合に暗号スイートを明示的に設定していないと、例外がスローされます。
解決策:JDK7の場合は、追加の接続プロパティまたはシステム・プロパティ-Doracle.net.ssl_cipher_suites=(TLS_RSA_WITH_AES_256_CBC_SHA256)
を使用してください。
原因:Oracle Cloudには強力な暗号スイートが必要です。JDK9またはJDK8u162を使用している場合は問題ありません。それ以外の場合は、 JDK8とJDK7の両方のJCE Policy Fileをインストールして強力な暗号化TLS_RSA_WITH_AES_256_CBC_SHA256を許可する必要があります。推奨されるJCE Policy File(local_policy.jarとUS_export_policy.jar
)がインストールされていないと例外がスローされます。
解決策:JCE Unlimited Strength Jurisdiction Policy Filesをダウンロードします。インストールに関する注意事項については、READMEを参照してください。
原因:Oracle Cloudには、送信プロトコルとしてTLSv1.2が必須です。 12.1.0.2 JDBC Thinドライバを使用している場合は、Download JDBC driver for Cloudからのパッチ適用済みjarファイルを使用するか、バグ23176395のパッチを適用する必要があります。このバグのパッチではTLSv1.2が許可されますが、有効化されません。そのため、TLSバージョンを明示的に設定する必要があります。
解決策:システムプロパティoracle.net.ssl_version=1.2
を設定します。このプロパティは、システム・プロパティ(ーDを使用)か 接続レベルのプロパティのどちらかとして設定できます。
原因:クラスパス内に含まれるJDBCドライバは、ダウンロードしたOarcle Instant Clientディレクトリ内に存在するドライバと異なる場合があります。
解決策:必ず、Instant Clientと同じバージョンのJDBCドライバを使用してください。たとえば、12_1 Instant Clientの場合は12.1.0.2 JDBCドライバを使用します。
原因:この例外の考えられる原因は2つです。
(a)sqlnet.ora
とtnsnames.ora
が同じディレクトリ内に存在しない、または
(b)sqlnet.ora
がcwallet.sso
が格納されているパスを使用して更新されていない。
解決策:必ず、 sqlnet.ora
とtnsnames.ora
を同じディレクトリに格納し、また、sqlnet.ora
をウォレット・ファイル(cwallet.sso
)が格納されているパスを使用して更新してください。
-Djavax.net.debug=all
を使用してデバッグを有効にしていください。