Maven CentralのオラクルJDBC 21.1.0.0に関する開発者ガイド

Maven CentralのオラクルJDBC に関する開発者ガイド

変更内容

Oracle JDBCドライバのjarファイルは独立して使用できますが、ユースケースによっては追加/関連jarが必要になります。Maven Centralでのパッケージ化は、アーティファクト間の依存関係が事前に確立されていましたが、19.7.0.0リリースから、Java開発者が、BOMを使用する"pick-and-choose"(別名DIY)モデルまたは確立済み依存関係モデルのどちらかを選択できるようになります。このページの目的は、ユースケースに基づいて、適切なモデルとアーティファクトを選択できるようにすることです。mavenプロジェクトを作成する手順は、「スタート・ガイド」をご参照ください。Central Mavenに掲載されている Oracle JDBC ドライバのバージョンは、11.2.0.4、12.2.0.1、18.3.0.0 とその四半期リリース、19.3.0.0 とその四半期リリース、21.1.0.0 とその四半期リリース、および23ai リリースです。リリースされたアーティファクトはすべて、このmaven repositoryにあります。最新のOracle JDBCドライバおよびその他のアーティファクトは、JDBCダウンロード・ページからいつでもダウンロードしていただけます。また、Oracle JDBC Drivers ArchiveからOracle JDBC ドライバの古いリリースや四半期ごとの更新を入手することも可能です。

Oracle JDBC 23aiリリースでの変更点

Oracle JDBC 23ai 以降、診断機能が簡素化され、デバッグ jar ファイルへの切り替えが不要になりました。強化された診断機能は、クラス・パスにojdbc8.jarまたはojdbc11.jarがあれば動作します。ojdbc8_g.jar、ojdbc8dms.jar、oj dbc8dms_g.jar、ojdbc11_g.jar、ojdbc11dms.jar、ojdbc11dms_g.jarは必要ないため、これらは23aiには含まれていません。また同じ理屈で、JDBCドライバを、診断可能性と観測可能性の機能のための他のコンパニオン・ジャーと共に引き出すために必要なのは、 ojdbc8-productionとojdbc11-production のみです。

アーティファクトのリスト(BOM)

アーティファクト名 グループ名 アーティファクトの説明
ojdbc8.jar com.oracle.database.jdbc JDBC 4.2仕様をサポートし、JDK8とJDK11で使用可能
ojdbc11.jar com.oracle.database.jdbc JDBC 4.3仕様をサポートし、JDK8、JDK11、JDK17、JDK19およびJDK21で使用可能
ojdbc10.jar com.oracle.database.jdbc JDBC 4.3仕様をサポートし、JDK 11およびJDK 17で使用可能19cバージョンでのみ使用可能です。
ucp.jar com.oracle.database.jdbc Oracle Database用Javaユニバーサル接続プール
ucp11.jar com.oracle.database.jdbc JDK11でコンパイルされたOracle Database用のJavaユニバーサル接続プールです。(21cリリース以降)。
rsi.jar com.oracle.database.jdbc 大量のデータをOracle Databaseに取り込むための専用パスです。(21cリリース以降)。
ojdbc8dms.jar com.oracle.database.observability ojdbc8.jarと同じですが、Dynamic Monitoring Service(DMS)インストルメンテーションが含まれているため、クラスパスにdms.jarが必要となります。(23aiを使用している場合は不要)
ojdbc11dms.jar com.oracle.database.observability ojdbc11.jarと同じですが、Dynamic Monitoring Service(DMS)インストルメンテーションが含まれているため、クラスパスにdms.jarが必要となります。(23aiを使用している場合は不要)
dms.jar com.oracle.database.observability Oracle Dynamic Monitoring System (可観測性)ライブラリ
ojdbc8_g.jar com.oracle.database.jdbc.debug 開発およびテスト用に-gオプションを指定してコンパイルした場合を除いて、ocjdbc8.jarと同じです。(23aiを使用している場合は不要)
ojdbc11_g.jar com.oracle.database.jdbc.debug 開発およびテスト用に-gオプションを指定してコンパイルした場合を除いて、ojdbc11.jarと同じです。(23aiを使用している場合は不要)
ojdbc8dms_g.jar com.oracle.database.jdbc.debug 開発およびテスト用に-gオプションを指定してコンパイルした場合を除いて、ojdbc8dms.jarと同じです。(23aiを使用している場合は不要)
ojdbc11dms_g.jar com.oracle.database.jdbc.debug 開発およびテスト用に-gオプションを指定してコンパイルした場合を除いて、ojdbc11dms.jarと同じです。(23aiを使用している場合は不要)
oraclepki.jar com.oracle.database.security Oracleウォレットに使用されるOracle PKIプロバイダー
osdt_cert.jar com.oracle.database.security Oracle Walletsに使用される証明書管理コンポーネントです。(23aiを使用している場合は不要)
osdt_core.jar com.oracle.database.security oraclepki.jarとosdt_cert.jarの間のコア・コンポーネントです。(23aiを使用している場合は不要)
orai18n.jar com.oracle.database.nls NLSまたは内部化サポート用のJavaクラス
ons.jar com.oracle.database.ha FANイベント用Oracle Notification System(ONS)ライブラリ
simplefan.jar com.oracle.database.ha Simple Fast Application Notification (FAN)ライブラリ
xdb.jar com.oracle.database.xml JDBC 4.x標準のjava.sql.SQLXMLインタフェースをサポートしています。ノート: xdb6.jarはレガシー名で、新しい名前はxdb.jarです
xmlparserv2.jar com.oracle.database.xml Oracle Database XMLのパーサー・ライブラリ
xmlparserv2_sans_jaxp_services com.oracle.database.xml Oracle Database XMLのパーサー・ライブラリ

デフォルトの依存関係

デフォルトのモデルは手間がかからず、生産、デバッグ・インスツルメンテーションを伴う生産、観測可能性、デバッグ・インストゥルメンテーションを伴う観測可能性など、最も一般的なユース・ケースに必要なすべてのアーティファクトを提供します。部品表(BOM)からアーティファクトを自由に選択したい場合は、このセクションをスキップして、「BOMファイルを使用したDIY」へ進んでください。

デフォルトのユース・ケース

  • 前提条件: JDBC仕様とJDKのバージョンに基づいてJDBCドライバを選択します

    はじめに、どのJDBC仕様とJDKに対してドライバおよび関連jarを使用するのかを決定します。
    注: Oracle JDBC 23ai以降、ojdbc8.jarおよびojdbc11.jarには、診断性および可観測性機能が組み込まれています。そのため、Oracle JDBCドライバとそのコンパニオンjarを取り込むために必要とされるのはojdbc8-productionとojdbc11-productionの2つのみです。

    名前 内容
    ojdbc8-production、ojdbc8-debug、ojdbc8-observability、ojdbc8-observability-deb ug JDBC 4.2仕様をサポートし、JDK8およびJDK11で使用できます
    ojdbc10-production、ojdbc10-debug、ojdbc10-observability、ojdbc10-observability- debug JDBC 4.2仕様をサポートし、JDK10およびJDK 11で使用できます。(19cリリースのみ)
    ojdbc11-production、ojdbc11-debug、ojdbc11-observability、ojdbc11-observability- debug JDBC 4.2仕様をサポートし、JDK11およびJDK17で使用できます。21cリリース以降。
  • ユース・ケース1: 本番Jarが必要

    これらの jar は実運用(開発、テスト、導入)用に最適化されており、デバッグや観察のための計測を行いません。目的のJDBC仕様とJDK(前提条件)に応じて、ojdbc8本番またはojdbc11本番を選択できます。

    • ojdbc8-production:ojdbc8.jar、ucp.jar、oraclepki.jar、osdt_core.jar、osdt_cert.jar、ons.jar、simplefan.jar、xdb.jar、xmlparserv2.jarをプルします
    • jdbc11-production:jdbc11.jar、ucp.jar、oraclepki.jar、osdt_core.jar、osdt_cert.jar、ons.jar、simplefan.jar、xdb.jar、およびxmlparserv2.jarをプルします。
    • プロジェクトのpom.xmlの<dependencies>ブロックの下に、以下の依存関係を追加します(ojdbc8をojdbc11に置き換えてください)。
    • <dependencies>
        <dependency>
          <groupId>com.oracle.database.jdbc</groupId>
          <artifactId>ojdbc11-production</artifactId>
          <version>23.4.0.24.05</version>
          <type>pom</type>
        </dependency>
      </dependencies>
      // For building with Gradle (build.gradle)
      dependencies {
         // Get 23.4.0.24.05 Oracle JDBC driver (ojdbc8.jar) and other companion jars
         implementation("com.oracle.database.jdbc:ojdbc11-production:23.4.0.24.05")
      }
  • ユース・ケース2: デバッグ・インストゥルメンテーションを使用する本番jarが必要

    これらのjarはデバッグ・オプションでコンパイルされたもので、本番環境用ではありません。JDBC SpecおよびJDK (前提条件)に応じて、ojdbc8-debugとojdbc11-debugを選択できます。これは、23aiリリースには必要ありません。

    • ojdbc8-debug: ojdbc8_g.jar、ucp.jar、oraclepki.jar、osdt_core.jar、osdt_cert.jar、ons.jar、simplefan.jar、xdb.jarおよびxmlparserv2.jarをプルします
    • ojdbc11-debug: ojdbc11_g.jar、ucp.jar、oraclepki.jar、osdt_core.jar、osdt_cert.jar、ons.jar、simplefan.jar、xdb.jarおよびxmlparserv2.jarをプルします
    • プロジェクトのpom.xmlの<dependencies>ブロックの下に、以下の依存関係を追加します(ojdbc8をojdbc11に置き換えてください)。
    • <dependencies>
        <dependency>
          <groupId>com.oracle.database.jdbc.debug</groupId>
          <artifactId>ojdbc8-debug</artifactId>
          <version>19.18.0.0</version>
          <type>pom</type>
        </dependency>
      </dependencies>
      // For building with Gradle (build.gradle)
      dependencies {
         // Get 19.18.0.0 Oracle JDBC driver with debug (ojdbc8_g.jar) and other companion jars
         implementation("com.oracle.database.jdbc.debug:ojdbc8-debug:19.18.0.0")
      }
  • ユース・ケース3: 可観測性Jarが必要

    ここに示すjarは、Oracleのダイナミック・モニタリング・サービス(DMS)に対応する計測機能と、java.util.loggingの限定サポートを備えており、本番使用(開発、テスト、デプロイ)向けです。JDBC仕様とJDK(前提条件)によっては、jdbc8-observabilityとjdbc11-observabilityのどちらかを選択できます。これは、23aiリリースには必要ありません。

    • ojdbc8-observability: は、ojdbc8dms.jar、dms.jar、ucp.jar、oraclepki.jar、osdt_core.jar、osdt_cert.jar、ons.jar、simplefan.jar、xdb.jarおよびxmlparserv2.jarをプルします。
    • ojdbc11-observability: はojdbc11dms.jar、dms.jar、ucp.jar、oraclepki.jar、osdt_core.jar、osdt_cert.jar、ons.jar、simplefan.jar、xdb.jarおよびxmlparserv2.jarをプルします
    • プロジェクトのpom.xmlの<dependencies>ブロックの下に、以下の依存関係を追加します(ojdbc8をojdbc11に置き換えてください)。
    • <dependencies>
        <dependency>
          <groupId>com.oracle.database.observability</groupId>
          <artifactId>ojdbc8-observability</artifactId>
          <version>19.18.0.0</version>
          <type>pom</type>
        </dependency>
      </dependencies>
      // For building with Gradle (build.gradle)
      dependencies {
         // Get 19.18.0.0 Oracle JDBC driver with DMS (ojdbc8dms.jar) and other companion jars
         implementation("com.oracle.database.observability:ojdbc8-observability:19.18.0.0")
      }
  • ユース・ケース4: デバッグ・インストゥルメンテーションを使用する可観測性Jarが必要

    ここに示すjarはデバッグ・オプションを付けてコンパイルされており、Oracleのダイナミック・モニタリング・サービス(DMS)に対応する計測機能と、java.util.loggingの限定サポートを備えています(詳細についてはJDBCのドキュメントを参照)。これらのjarは本番環境での使用は想定していません。JDBC SpecおよびJDK (ユースケース1)によって、ojdbc8-observability-debugとojdbc11-observability-debugのどちらかを選択できます。これは、23aiリリースには必要ありません。

    • ojdbc8-observability-debug: ojdbc8dms_g.jar、dms.jar、ucp.jar、oraclepki.jar、osdt_core.jar、osdt_cert.jar、ons.jar、simplefan.jar、xdb.jar、xmlparserv2.jarを取り込みます。
    • ojdbc11-observability-debug: ojdbc11dms_g.jar、dms.jar、ucp.jar、oraclepki.jar、osdt_core.jar、osdt_cert.jar、ons.jar、simplefan.jar、xdb.jar、xmlparserv2.jarを取り込みます。
    • プロジェクトのpom.xmlの<dependencies>ブロックの下に、以下の依存関係を追加します(ojdbc8をojdbc11に置き換えてください)。
    • <dependencies>
        <dependency>
          <groupId>com.oracle.database.jdbc.debug</groupId>
          <artifactId>ojdbc8-observability-debug</artifactId>
          <version>19.18.0.0</version>
          <type>pom</type>
         </dependency>
      </dependencies>
      // For building with Gradle (build.gradle)
      dependencies {
         // Get 19.18.0.0 Oracle JDBC driver with DMS and debug (ojdbc8dms_g.jar) and other companion jars
         implementation("com.oracle.database.jdbc.debug:ojdbc8-observability-debug:19.18.0.0")
      }

BOMファイルを使用したDIY

リリースで使用可能なアーティファクトのリストを定義したBOMファイルを提供し、Java開発者が自由に必要なものを選択できるようにしています。しかし、どのアーティファクトを組み合わせて特定のユース・ケースに対応させるかを考えることは負担が大きいため、ユース・ケースに基づいたコピー&ペーストの依存関係レシピのセットを用意しました。各アーティファクトのサマリーの説明は、「アーティファクトのリスト(BOM)」をご参照ください。

前提条件

開発者POM.xmlファイルには次のものが必要です。
(1) <dependencyManagement> ブロックは、一致する直接依存と推移的依存のバージョンを解決する上で役立ちます。BOM 内のエントリを見つけるために使用されるキーは、groupIdとartifactIdです。このブロックは、次に示すすべてのユースケースで同じです。
(2) <dependencies>ブロックは、利用するBOMからの依存関係を示します。BOMアプローチを使用したojdbc8.jarの使用例をご参照ください。詳細は、ユース・ケースの項をご参照ください。
<dependencyManagement>|
  <dependencies>
    <dependency>
      <groupId>com.oracle.database.jdbc</groupId>
       <artifactId>ojdbc-bom</artifactId>
       <version>23.4.0.24.05</version>
       <type>pom</type>
       <scope>import</scope>
     </dependency>
  </dependencies>
</dependencyManagement>
<dependencies>
  <dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
   </dependency>
 </dependencies>

DIYのユース・ケース

このドキュメントの目的は、典型的なユース・ケースのアーティファクトの依存関係を管理するための、コピー&ペーストですぐに使えるレシピを提供することです。
    こちらがリストです。
  • ユースケース1: Oracle JDBCドライバを使用したい
    JDK8およびJDK11で使用するojdbc8.jar(JDBC 4.2をサポート)またはJDK11、JDK17、JDK19、JDK21で使用するojdbc11.jar(JDBC 4.3をサポート)のいずれかを取得します。
    pom.xmlファイルに以下をプロビジョニングします。a) 「dependencyManagement」ブロック(上記の事前要件セクションからコピー)。b) ojdbc11(またはojdbc8)アーティファクトをプルするための以下の「dependencies」ブロック。
    <dependencies>
         <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc11</artifactId>
        </dependency>
    </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Oracle JDBC driver (ojdbc11.jar)
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
      implementation("com.oracle.database.jdbc:ojdbc11")
    }
  • ユースケース2: JDBCドライバおよびJava接続プールが必要
    ojdbc8またはojdbc11 AND ucpアーティファクトを使用してJDBCドライバを取得します。
    pom.xmlファイルに以下をプロビジョニングします。a) 「dependencyManagement」ブロック(上記の前提条件セクションからコピー)。b) ojdbc11.jar(またはojdbc8.jar)およびucp.jarをプルするための「dependencies」ブロック。
    <dependencies>
           <dependency>
               <groupId>com.oracle.database.jdbc</groupId>
               <artifactId>ojdbc11</artifactId>
           </dependency>
    
          <dependency>
              <groupId>com.oracle.database.jdbc</groupId>
              <artifactId>ucp</artifactId>
           </dependency>
      </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Oracle JDBC driver (ojdbc11.jar) and Universal Connection Pool (ucp.jar)
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
      implementation("com.oracle.database.jdbc:ojdbc11")
      implementation("com.oracle.database.jdbc:ucp")
    }
  • ユースケース3: Autonomous Database (ATPまたはADW) Cloud Servicesの接続が必用
    Oracle Autonomous Databasesには、Autonomous Transaction Processing - Shared infrastructure (ATP-S)、Autonomous Transaction Processing - Dedicated infrastructure (ATP-D)およびAutonomous DataWarehouse (ADW)が含まれます。このWebページの説明に従って、Oracle WalletまたはJava KeyStore (JKS)のいずれかを使用してこれらのクラウド・サービスに接続できます。ただし、このブログ投稿で説明されているように、ATP-Dへの接続はクラウド・コンピュート・インスタンスからのみ可能です。
    pom.xmlファイルで: (a) 'dependencyManagement'ブロックをプロビジョニングします(上記の前提条件のセクションからコピーします)(b)次の'dependencies'ブロックをプロビジョニングします。
    <dependencies>
          <dependency>
               <groupId>com.oracle.database.jdbc</groupId>
               <artifactId>ojdbc11</artifactId>
           </dependency>
          <dependency>
              <groupId>com.oracle.database.jdbc</groupId>
              <artifactId>ucp</artifactId>
           </dependency>
    <!-- For Oracle Wallet, get the oraclepki, osdt_core and osdt_cert artifacts; 
                         these are not needed for JKS -->
     <dependency>
            <groupId>com.oracle.database.security</groupId>
            <artifactId>oraclepki</artifactId>
     </dependency> 
    
     <dependency>
            <groupId>com.oracle.database.security</groupId>
            <artifactId>osdt_core</artifactId>
        </dependency>
    
       <dependency>
            <groupId>com.oracle.database.security</groupId>
            <artifactId>osdt_cert</artifactId>
        </dependency>
    
    <!-- ATP-D furnishes built-in high availability, you also need to get the ons and oraclepki artifacts 
                         for the HA events notification (even if you are using Java KeyStore) -->
       <dependency>
            <groupId>com.oracle.database.ha</groupId>
            <artifactId>ons</artifactId>
        </dependency>
       <dependency>
            <groupId>com.oracle.database.security</groupId>
            <artifactId>oraclepki</artifactId>
        </dependency>
    
          <!-- If you are not using the Oracle Java connection pool (UCP) or Weblogic Active GrigLink, 
                         you would also need to pull the simplefan artifact for the HA events APIs -->
      <dependency>
            <groupId>com.oracle.database.ha</groupId>
            <artifactId>simplefan</artifactId>
      </dependency>
    </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Oracle JDBC driver (ojdbc11.jar) and Universal Connection Pool (ucp.jar)
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
      implementation("com.oracle.database.jdbc:ojdbc11")
      implementation("com.oracle.database.jdbc:ucp")
      // Additional Jars for using Oracle Wallets 
      implementation("com.oracle.database.security:oraclepki")
      implementation("com.oracle.database.security:osdt_core")
      implementation("com.oracle.database.security:osdt_cert")
      // Additional Jars for High Availability 
      implementation("com.oracle.database.ha:ons")
      implementation("com.oracle.database.ha:simplefan")
    }
  • ユースケース 4: 高可用性サポートが必要
    オラクルのドライバとプールには、Java アプリケーションが計画的および非計画的なデータベース停止を維持できるようにする組み込みメカニズムがあります。JDBCドライバの高可用性メカニズム、Java接続プールおよび必要なjarの詳細説明は、『Java Connection Pool Developers Guide』および『Java Programming with Oracle database 19c』ホワイト・ペーパー(Zero Downtimeセクション)をご参照ください。
    pom.xml ファイルで、(a) 'dependencyManagement' ブロック(上記の前提条件のセクションからコピー)をプロビジョニングします。(b)以下のように'dependencies'ブロックをプロビジョニングします。つまり、JDBCドライバのアーティファクト(ojdbc8 または ojdbc11)、推奨されるが必須ではない接続プール(ucp)のアーティファクト、onsのアーティファクト、およびオラクルの Java 接続プール(UCP または Active Gridlink)を使用しない場合は simplefan のアーティファクトが必要です。
    <dependencies>
      <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc11</artifactId>
       </dependency>
       <dependency>
         <groupId>com.oracle.database.jdbc</groupId>
         <artifactId>ucp</artifactId>
        </dependency>
        <dependency>
          <groupId>com.oracle.database.ha</groupId>
           <artifactId>ons</artifactId>
        </dependency>
        <dependency>
          <groupId>com.oracle.database.ha</groupId>
          <artifactId>simplefan</artifactId>
        </dependency>
    </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Oracle JDBC driver (ojdbc11.jar) and Universal Connection Pool (ucp.jar)
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
      implementation("com.oracle.database.jdbc:ojdbc8")
      implementation("com.oracle.database.jdbc:ucp")
      // Additional Jars for High Availability 
      implementation("com.oracle.database.ha:ons")
      implementation("com.oracle.database.ha:simplefan")
    }
  • ユースケース5: java.sql.SQLXMLを使用してXMLデータ型をサポートしたい
    JDBCドライバ、オプションでJava接続プール(ucp)、xdbおよびxmlparserv2アーティファクトを取得する必要があります。
    pom.xmlファイルで: (a) 'dependencyManagement'ブロックをプロビジョニングします(上記の前提条件のセクションからコピーします)(b) ojdbc8 (または ojdbc11)、オプションでucp、xdbおよびxmlparserv2アーティファクトをプルするための 'dependencies'ブロックをプロビジョニングします。
    <dependencies>
      <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc11</artifactId>
       </dependency>
       <dependency>
         <groupId>com.oracle.database.jdbc</groupId>
         <artifactId>ucp</artifactId>
        </dependency>
        <dependency>
          <groupId>com.oracle.database.xml</groupId>
          <artifactId>xdb</artifactId>
        </dependency>
        <dependency>
          <groupId>com.oracle.database.xml</groupId>
          <artifactId>xmlparserv2</artifactId>
        </dependency>
    </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Oracle JDBC driver (ojdbc11.jar) and Universal Connection Pool (ucp.jar)
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
      implementation("com.oracle.database.jdbc:ojdbc11")
      implementation("com.oracle.database.jdbc:ucp")
      // Additional Jars to support XML datatype 
      implementation("com.oracle.database.xml:xmlparserv2")
      implementation("com.oracle.database.xml:xdb")
    }
  • ユースケース6: 国際化(NLS)サポートが必要
    orai18nアーティファクトは、Javaクラスに国際化サポートを提供します。
    pom.xmlファイルに以下をプロビジョニングします。 (a) 「dependencyManagement」ブロック(上記の前提条件セクションからコピー)。(b) ojdbc11(またはojdbc8)、オプションでucpおよびora18nアーティファクトをプルするための「dependencies」ブロック。
    <dependencies>
      <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
         <artifactId>ojdbc11</artifactId>
       </dependency>
        <dependency>
          <groupId>com.oracle.database.jdbc</groupId>
          <artifactId>ucp</artifactId>
         </dependency>
         <dependency>
           <groupId>com.oracle.database.nls</groupId>
           <artifactId>orai18n</artifactId>
         </dependency>
      </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Oracle JDBC driver (ojdbc11.jar) and Universal Connection Pool (ucp.jar)
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
      implementation("com.oracle.database.jdbc:ojdbc11")
      implementation("com.oracle.database.jdbc:ucp")
      // Additional Jar to NLS support 
      implementation("com.oracle.database.nls:orai18n")
    }
  • ユースケース7: 可観測性jarが必要
    可観測性は、Oracle Dynamic Monitoring Services(DMS)の計測機能とjava.util.loggingの限定サポートにより提供されます。
    pom.xmlファイルで: (a) 'dependencyManagement'ブロックをプロビジョニングします(上記の前提条件のセクションからコピーします)(b) ojdbc8_g(または ojdbc11)、dms、およびojdbc8dms_g(または ojdbc11dms)アーティファクトをプルするための'dependencies'ブロックをプロビジョニングします。
    <dependencies>  
        <!-- For use with ojdbc8.jar to support Oracle Dynamic Monitoring Services (DMS) and 
                         limited support for java.util.logging -->
        <dependency>
          <groupId>com.oracle.database.jdbc.observability</groupId>
          <artifactId>ojdbc8dms</artifactId> 
        </dependency>
     <dependency>
          <groupId>com.oracle.database.observability</groupId> 
          <artifactId>dms</artifactId> 
        </dependency>
    </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Oracle JDBC driver with DMS (ojdbc8dms.jar) 
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:19.18.0.0"))
      implementation("com.oracle.database.observability:ojdbc8dms")
      implementation("com.oracle.database.observability:dms")
    }
  • ユースケース8: デバッグjarが必要
    Oracle JDBCドライバのjarは本番向けに最適化されており、デバッグをサポートする計測機能は備えていません。デバッグを目的とする場合、デバッグ用jarを使用する必要があります。ojdbc8_g.jarとojdbc11_g.jarは、デバッグ計測機能付きの本番用jarを取り込み、ojdbc8dms_g.jarとojdbc11dms_g.jarは、デバッグ計測機能付きの可観測性jarを取り込みます。
    pom.xmlファイルで: (a) 'dependencyManagement'ブロックをプロビジョニングします(上記の前提条件のセクションからコピーします) (b) ojdbc8_g(または ojdbc11_g)、dms、および ojdbc8dms_g(または ojdbc11_dms_g)アーティファクトをプルするための'dependencies'ブロックをプロビジョニングします。
    <dependencies>
      <dependency>     
        <groupId>com.oracle.database.jdbc.debug</groupId>
        <artifactId>ojdbc8_g</artifactId>
       </dependency>     
        <dependency>
           <groupId>com.oracle.database.observability</groupId> 
           <artifactId>dms</artifactId> 
        </dependency>
        <dependency>
          <groupId>com.oracle.database.jdbc.debug</groupId>
           <artifactId>ojdbc8dms_g</artifactId> 
         </dependency>
    </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Oracle JDBC driver with debug (ojdbc8_g.jar) or (ojdbc8dms_g.jar) 
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:19.18.0.0"))
      implementation("com.oracle.database.jdbc.debug:ojdbc8_g") 
      implementation("com.oracle.database.jdbc.debug:ojdbc8dms_g")
      implementation("com.oracle.database.observability:dms")
    }
  • ユースケース9: Java接続プールが必要
    このユース・ケースは、Oracle以外のデータベースにOracle以外のJDBCでucp.jarを使用することで構成されます。DB 19cの時点では、UCPにはオラクルJDBCへのコンパイル時の依存性があります。これは現在修正中であり、次のリリース(DB21c以降)で具体化される予定です。
    pom.xmlファイルに以下をプロビジョニングします。 (a) 「dependencyManagement」ブロック(上記の前提条件セクションからコピー)。(b) ucpおよびojdbc11(またはojdbc8)アーティファクトをプルするための「dependencies」ブロック。
    <dependencies>
      <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ucp</artifactId>
      </dependency>
    </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Universal Connection Pool (ucp.jar)
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
      implementation("com.oracle.database.jdbc:ucp") 
    }
  • ユース・ケース 10: セキュリティ・アーティファクトのみが必要
    これらのアーティファクトは、Oracle Walletを使用したオラクル・ データベースへのJava接続に必要となります。
    pom.xmlファイルで: (a) 'dependencyManagement'ブロックをプロビジョニングします(上記の前提条件のセクションからコピーします)(b) osdt_core、osdt_certおよびoraclepkiアーティファクトをプルするための''dependencies'ブロックをプロビジョニングします。
    <dependencies>
      <dependency>
         <groupId>com.oracle.database.security</groupId>
         <artifactId>osdt_core</artifactId>
      </dependency>
      <dependency>
        <groupId>com.oracle.database.security</groupId>
        <artifactId>osdt_cert</artifactId>
       </dependency>
      <dependency>
         <groupId>com.oracle.database.security</groupId>
         <artifactId>oraclepki</artifactId>
       </dependency>
    </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Oracle Security Artifacts (oraclepki.jar, osdt_core.jar, and osdt_cert.jar)
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
      implementation("com.oracle.database.security:oraclepki") 
      implementation("com.oracle.database.security:osdt_core")
      implementation("com.oracle.database.security:osdt_cert")
    }
  • ユースケース11: Simplefanアーティファクトのみが必要
    アーティファクトである simplefan.jar は、Fast Application Notification (FAN) イベントをサブスクライブするための Java API をサポートしており、Oracle Java 接続プール (ucp、Weblogic ActiveGridLink) を使用しない場合に必要となります。simplefan は、サブスクライバにイベントを発行するために ons.jar が必要となることに注意ください。pom.xmlファイルで: (a) 'dependencyManagement'ブロックをプロビジョニングします(上記の前提条件のセクションからコピーします)(b) simplefanアーティファクトをプルするための''dependencies'ブロックをプロビジョニングします。
    <dependencies>
      <dependency>
         <groupId>com.oracle.database.ha</groupId>
          <artifactId>simplefan</artifactId>
        </dependency>
    </dependencies>
    // For building with Gradle (build.gradle)
    dependencies {
       // Get BOM file and choose Simple Fan Library (simplefan.jar)
      implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
      implementation("com.oracle.database.ha:simplefan") 
    }
  • ユース・ケース12: その他のユース・ケース
  • その他、ドキュメント化してほしいユース・ケースについては、(@kmensah)までお知らせください。

Gradleの依存関係

ここでは、gradleプロジェクトの依存関係としてOracle JDBCドライバを追加する方法のサンプルをご紹介します。

  • 前提条件: build.gradleファイルのリポジトリとしてMavenがあることを確認します。
    repositories {
       // Maven Central repository
       mavenCentral()
    }
  • 個別ファイル: Oracle JDBCドライバまたはその他のコンパニオン・ファイルのみの個別でのダウンロードを希望する場合は、その特定のアーティファクトの依存関係を追加します。以下のスニペットはOracle JDBCドライバを追加していますが、 「アーティファクトのリスト(BOM)」セクションからダウンロードしたい他のアーティファクトのgroupIdとartifactIdを探します。
  • dependencies {
       // Get the 23.4.0.24.05 Oracle JDBC driver 
        implementation("com.oracle.database.jdbc:ojdbc11:23.4.0.24.05")
    }
  • デフォルトの依存性: Oracle JDBCドライバを、ucp.jar、oraclepki.jar、osdt_core.jar、osdt_cert.jarなどの他のコンパニオンjarとともにダウンロードする場合は、次の依存性を使用します。その他のフレーバー(ojdbc8-debug、ojdbc8-observability、ojdbc8-observability-debug)については、「デフォルトのユースケース」の項を参照してください。
  • dependencies {
       // Get the 23.4.0.24.05 Oracle JDBC driver along with other companion jars
        implementation("com.oracle.database.jdbc:ojdbc11-production:23.4.0.24.05")
    }
  • BOMファイルの使用: BOM(部品表)ファイルを活用し、特定のユースケースに合わせてアーティファクトを選択することができます。以下のコード・スニペットは、Oracle JDBCドライバとユニバーサル接続プール(UCP)を取得するためにBOMを使用しています。その他のユースケースについては、「BOMファイルを使用したDIY」の項をご参照ください。
  • dependencies {
       // Get the 23.4.0.24.05 Oracle JDBC driver along with Universal Connection Pool using a BOM file
       implementation(enforcedPlatform("com.oracle.database.jdbc:ojdbc-bom:23.4.0.24.05"))
       implementation("com.oracle.database.jdbc:ojdbc11")
       implementation("com.oracle.database.jdbc:ucp")
    }