Oracle Autonomous Database(ADB)は、各製品がワークロードに応じて最適化された製品ファミリです。JavaアプリケーションでADBに接続するには、Java Key Store(JKS)またはOracleウォレットが必要です。DB 19cおよび18.3のJDBCドライバの機能強化により、ADBへのJava接続が非常に簡単になります。ADBへの正常な接続を確立させるための手順を以下に示します。
Oracle Autonomous Database(ADB)へのアクセス権を取得します。まだADBインスタンスをプロビジョニングしていない場合は、以下のリンクをクリックしてADBインスタンスの手順を参照してください。
ADMINユーザーで使用したパスワードをお忘れのないようご注意ください。このデモではADMINユーザーを使用しますが、SQLDeveloperまたはSQL Developer Webコンソールを使用して他のデータベース・ユーザーを作成することをお薦めします。


tnsnames.ora and sqlnet.ora: 接続記述子とSQL*Netのクライアント側構成を格納するネットワーク構成ファイル。cwallet.ora and ewallet.p12: 自動オープンのSSOウォレットとPKCS12ファイル。PKCS12ファイルは、UIで指定されたウォレットのパスワードで保護されています。keystore.jks and truststore.jks: ウォレットのダウンロード時に提供されるウォレットのパスワードで保護された、JKSトラストストアとキーストア。ojdbc.properties: JDBC接続に必要なウォレット関連の接続プロパティを格納。これはtnsnames.oraと同じパスに配置する必要があります。JDK81またはそれ以降のバージョンのJDKをダウンロードします。 注意: JDK11、JDK10、またはJDK9を使用している場合、他に必要な操作はありません。JDKのバージョンがJDK8u162未満の場合は、JCE Unlimited Strength Jurisdiction Policy Filesをダウンロードします。インストールに関する注意事項については、READMEを参照してください。
1 "java -version"を使用してインストールしたJDKのバージョンを確認します。"java -jar ojdbc8.jar"を使用してJDBCドライバのバージョンを確認します。
ojdbc8-full.tar.gzおよびojdbc10-full.tar.gzには、Autonomous Databaseへの接続に必要なoraclepki.jar、osdt_core.jar、osdt_cert.jarが含まれています。
注意: 旧バージョンのJDBCドライバ(12.2.0.1または12.1.0.2)を使用している場合は、こちらのページの手順に従って接続してください。
tnsnames.oraにあるdbname_mediumなど)を渡します。wallet_dbname.zipの解凍先にTNS_ADMINプロパティを渡します。TNS_ADMINは、ウォレット・ファイル(ojdbc.propertiesおよびtnsnames.ora)のパスを指定します。
例: DB_URL="jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/users/test/wallet_dbname/"
前提条件のセクションに記載されているすべての手順を実施してください。
Wallet_dbname.zipとしてダウンロードされます。zipファイルには、ojdbc.propertiesとtnsnames.oraが含まれています。ojdbc.propertiesファイルの以下のJKS関連の接続プロパティをコメント解除します。
# Use the following properties to use JKS, comment out the oracle.net.wallet_location property above
# and set the correct password for both trustStorePassword and keyStorePassword.
# It's the password provided while downloading the wallet credentials from the DB Connection tab
oracle.net.ssl_server_dn_match=true
javax.net.ssl.trustStore=${TNS_ADMIN}/truststore.jks
javax.net.ssl.trustStorePassword=**password**
javax.net.ssl.keyStore=${TNS_ADMIN}/keystore.jks
javax.net.ssl.keyStorePassword=**password**
注意: ojdbc.propertiesファイルのOracleウォレット関連プロパティは必ずコメントしてください。
# Connection property for Oracle Wallets
# oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN}))
注意: 19c JDBCドライバを使用する場合は、Easy Connect Plusを使用し、すべての接続プロパティを接続文字列内の名前と値のペアとして渡すことができます。tnsnames.oraを開き、ホスト名、サービス名、証明書の詳細をコピーして、接続文字列を作成できます。
Example: jdbc:oracle:thin:@tcps://orclhostname:1522/orclservice?oracle.net.ssl_server_cert_dn=\"CN=test.uscom-east-1.oraclecloud.com,OU=Oracle BMCS US,O=Oracle Corporation,L=Redwood City,ST=California,C=US\"
&javax.net.ssl.trustStore=/users/test/wallet_dbname/truststore.jks
&javax.net.ssl.trustStorePassword=**password**
&javax.net.ssl.keyStore=/users/test/wallet_dbname/keystore.jks
&javax.net.ssl.keyStorePassword=**password**
前提条件のセクションに記載されているすべての手順を実施してください。
ojdbc.propertiesに事前ロードされています。
oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN}))
注意: 19c JDBCドライバを使用する場合は、Easy Connect Plusを使用し、すべての接続プロパティを接続文字列内の名前と値のペアとして渡すことができます。tnsnames.oraを開き、ホスト名、サービス名、証明書の詳細をコピーして、接続文字列などを作成できます。
Example:.,jdbc:oracle:thin:@tcps://orclhostname:1522/orclservice?wallet_location=/users/test/wallet_dbname
&oracle.net.ssl_server_cert_dn=\"CN=adwc.uscom-east-1.oraclecloud.com,OU=Oracle BMCS US,O=Oracle Corporation,L=Redwood City,ST=California,C=US\"
Javaプログラムをコンパイルするクラスパスに必要なjarの正確なパスを指定するようにしてください。
javac -classpath ./lib/ojdbc8.jar:./lib/ucp.jar:/lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar UCPSample.java
サンプルJavaプログラムを実行するクラスパスに必要なjarの正確なパスを指定するようにしてください。
java -classpath ./lib/ojdbc8.jar:./lib/ucp.jar:/lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample
前提条件のセクションに記載されているすべての手順を実施してください。
手順の各ステップについては、Tomcatを使用したATPまたはADWへの接続の動画を参照してください。
GitHubから/TOMCAT_HOME/webapps/UCPCloudディレクトリに Tomcat_Servletの内容をコピーします。アプリケーションに別の名前を付けることもできます。
oraclepki.jar、osdt_core.jar、osdt_cert.jar)は同じ場所に配置する必要があります。
<Context docBase="UCPCloud" path="/UCPCloud"
reloadable="true" source="org.eclipse.jst.jee.server:samplejdbcpage">
<Resource name="tomcat/UCP_atp" auth="Container"
factory="oracle.ucp.jdbc.PoolDataSourceImpl"
type="oracle.ucp.jdbc.PoolDataSource"
description="UCP Pool in Tomcat"
connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource"
minPoolSize="5"
maxPoolSize="50"
initialPoolSize="15"
user="jdbcuser"
password="XXXXXXXXXXX"
url="jdbc:oracle:thin:@jdbctest_medium?TNS_ADMIN=/Users/test/ATPTesting/wallet_JDBCTEST"
/>
</Context>
Tomcatサーバーを起動し、http://lcoalhost:8080/UCPCloud/UCPServletにアクセスしてサーブレットを呼び出します。
前提条件のセクションに記載されているすべての手順を実施してください。
手順の各ステップについては、Webロジック・サーバー(WLS)を使用したATPまたはADWへの接続の動画を参照してください。
GitHub WebLogicServer_Servletからプロジェクトにサーブレットをコピーします。
jdbc:oracle:thin:@jdbctest_medium?TNS_ADMIN=/Users/test/ATPTesting/wallet_JDBCTEST WebLogicServerを起動し、http://lcoalhost:7001/test-app/UCPServletにアクセスしてサーブレットを呼び出します。