Oracle Autonomous Database

Oracle JDBC 19cと18.3を使用したOracle Autonomous Database(Oracle ATPまたはOracle ADW)へのJava接続

Oracle Autonomous Databaseは1つの製品ファミリーで、このファミリーの各メンバーはワークロードに従って最適化されます。Oracle Autonomous Data Warehouse(Oracle ADW)とOracle Autonomous Transaction Processing(Oracle ATP)は、2018年にリリースされた2つの製品です。

JavaアプリケーションでOracle ATPやOracle ADWに接続するには、Java Key Store(JKS)またはOracleウォレットが必要です。これらのウォレット・ファイルは、「DB Connection」タブからダウンロードできます。DB 19cと18.3のJDBCドライバが改良されたことにより、Oracle ATPやOracle ADWへのJava接続が非常にシンプルになりました。

19c JDBCドライバでは、Oracle Easy Connect PlusによってTCPSがサポートされており、接続文字列内のJKS/ウォレット関連の接続プロパティを渡すことによってOracle ATPやOracle ADWへの接続が容易に確立されます。18.3 JDBCドライバでは、ウォレットのzipファイルの一部であるプロパティ・ファイルojdbc.propertiesにより、JKSとウォレット関連のすべてのプロパティを容易に渡すことができるようになっています。すべての機能については、ojdbc.propertiesのリンクを確認してください。Oracle ATPまたはOracle ADWへの接続を正しく確立させるには、以下のリンクに従ってください。

前提条件

  1. Oracle ATPのプロビジョニングcloud.oracle.comでクラウドの資格証明にサインインし、いくつかの情報を入力してATPデータベースを作成します。詳しくは、"Provisioning an Autonomous Transaction Processing"のビデオを参照してください。
  2. クライアント資格証明のダウンロード:「DB Connection」タブをクリックしてwallet_<dbname>.zipを取得します。セキュリティが確保されたディレクトリにこれを解凍して、権限のあるユーザーのみがアクセスできるようにします。zipファイルの内容の説明を以下に示します。
    1. tnsnames.oraとsqlnet.ora:接続記述子とSQL*Netのクライアント側の構成が格納されたネットワーク構成ファイル。
    2. cwallet.oraとewallet.p12:自動オープンのSSOウォレットとPKCS12ファイル。PKCS12ファイルは、UIで提供されるウォレットのパスワードで保護されています。
    3. keystore.jksとtruststore.jks:ウォレットのダウンロード中に提供されるウォレットのパスワードで保護されているJKS TruststoreとKeystore。
    4. ojdbc.properties:JDBC接続に必要なウォレット関連の接続プロパティを格納。tnsnames.oraと同じパスにある必要があります。
  3. JDKのバージョンJDK11、JDK10、またはJDK9を使用している場合、他に必要な操作はありません。JDKのバージョンがJDK8u162未満の場合は、JCE Unlimited Strength Jurisdiction Policy Filesをダウンロードします。インストールに関する注意事項については、READMEを参照してください。
  4. JDBCドライバ
    - 19.3 JDBCドライバの場合:ojdbc10-full.tar.gzorojdbc8-full.tar.gzand ucp.jarをダウンロード
    - 18.3 JDBCドライバの場合:ojdbc8-full.tar.gzand ucp.jarをダウンロード

    Oracleウォレットを使用するには、oraclepki.jar、osdt_core.jar、osdt_cert.jarが必要です。これらのファイルは、それぞれのダウンロード・ページでもダウンロードできます。

    注:旧バージョン12.2.0.1または12.1.0.2のJDBCドライバを使用している場合は、このページの指示に従って接続してください。

JKSファイルを使用するPlain JDBC

  1. 前提条件を満たしていることを確認します。
  2. JDBCコード・サンプルからDataSourceSample.javaまたはUCPSample.javaをダウンロードします。
    - 接続文字列の一部としてTNSエイリアス(tnsnames.oraにあるdbname_mediumなど)を渡します。
    - wallet_dbname.zipの解凍先にTNS_ADMINプロパティを渡します。TNS_ADMINにより、ウォレット・ファイルojdbc.propertiestnsnames.oraのパスを指定します。

    例:DB_URL="jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/users/test/wallet_dbname/"

  3. JKS関連の接続プロパティをojdbc.propertiesファイルに追加します。
  4. # 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=welcome1
    javax.net.ssl.keyStore=${TNS_ADMIN}/keystore.jks 
    javax.net.ssl.keyStorePassword=welcome1

    注:ojdbc.propertiesファイルのウォレット関連プロパティは必ずコメントしてください。

    # Connection property for Oracle Wallets 
    # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN}))

    注:19c JDBCドライバを使用する場合は、Oracle Easy Connect Plusを使用し、すべての接続プロパティを接続文字列内の名前/値ペアとして渡すことができます。tnsnames.oraを開き、ホスト名、サービス名、証明書の詳細をコピーして、接続文字列を作成できます。

    Example:., jdbc:oracle:thin:@tcps://orclhostname:1522/orclservice?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\"
    &javax.net.ssl.trustStore=/users/test/wallet_dbname/truststore.jks
    &javax.net.ssl.trustStorePassword=welcome1
    &javax.net.ssl.keyStore=/users/test/wallet_dbname/keystore.jks
    &javax.net.ssl.keyStorePassword=welcome1
  5. サンプルをコンパイルおよび実行して、正しく接続します。

実行するサンプル・コマンド

[Linux] java -classpath ./lib/ojdbc8.jar:./lib/ucp.jar:.UCPSample

Oracle Walletを使用するPlain JDBC

  1. 前提条件を満たしていることを確認します。
  2. JDBCコード・サンプルからDataSourceSample.javaまたはUCPSample.javaをダウンロードします。
    - 接続文字列の一部としてTNSエイリアス(tnsnames.oraにあるdbname_mediumなど)を渡します。
    - wallet_dbname.zipの解凍先にTNS_ADMINプロパティを渡します。TNS_ADMINにより、ウォレット・ファイルojdbc.propertiestnsnames.oraのパスを指定します。

    例:DB_URL="jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/users/test/wallet_dbname/"

  3. ウォレット関連プロパティはojdbc.propertiesにプレロードされています。
  4. oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN}))

    注:19c JDBCドライバを使用する場合は、Oracle 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\"
  5. サンプルをコンパイルおよび実行して、正しく接続します。

実行するサンプル・コマンド

[Linux] java -classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:.UCPSample

Tomcat

  1. 前提条件を満たしていることを確認します。
  2. context.xmlでUCPデータ・ソースを作成します。例については、GithubでTomcat_Servletを参照してください。TNSエイリアスをサービス名として必ず使用し、TNS_ADMINがクライアント資格証明が格納されている場所へのパスを指すようにする必要もあります。以下に、サンプルのcontext.xmlを示します。
  3. 18.3 JDBCドライバ(ojdbc8.jar)とUCP(ucp.jar)を<TOMCAT_HOME>/webapps/UCPCloud/WEB-INF/libに格納します。また、Oracleウォレットを使用する場合は、oraclepki.jar、osdt_core.jar、osdt_cert.jarを同じ場所に格納する必要もあります。
  4. JKSを使用する場合は、ojdbc.propertiesファイルにJKS関連プロパティがあることを確認してください。このプロパティがない場合は、ウォレット関連プロパティが必要です。
<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>

WebLogic Server v12.2.1.4

  1. 前提条件」セクションの説明に従って、Wallet zipファイルをダウンロードします。
  2. WLS v12.2.1.4は、JDK8(ojdbc8.jar)互換の19.3 JDBCドライバと同梱して出荷されます。そのため、必要な操作はありません。
  3. UCPデータソースかGridLinkデータソース(AGL)のどちらかを作成します。詳しくは、ブログを参照してください。接続URLには、tnsnames.oraからのTNSエイリアスを含め、TNS_ADMINはWallet zipファイルのダウンロード先を指している必要があります。「Test Configuration」をクリックしてOracle ATPに正常に接続できることを確認します。
    jdbc:oracle:thin:@jdbctest_medium?TNS_ADMIN=/Users/test/ATPTesting/wallet_JDBCTEST
  4. JKSを使用する場合は、ojdbc.propertiesファイルにJKS関連プロパティがあることを確認してください。このプロパティがない場合は、ウォレット関連プロパティが必要です。

Autonomous Databaseのリソース

ヘルプ・センター| ユーザー・ガイド | ATPスタート・ガイド | ATPの管理 | ADWスタート・ガイド - マニュアル

他の開発者向けリソース

JDBCおよびUCPランディング・ページ- ホワイトペーパー、Javadoc、フォーラム他