※ 本記事は、Nirmala Sundarappaによる”Quick Peek into New Features/Capabilities from Oracle JDBC 23ai“を翻訳したものです。
2025年4月10日
Oracle Database 23ai (23.7.0.25.01)
Oracle Database 23aiは、2024年の重要なリリースの1つです。AI関連の機能を備えた長期リリースです。
このブログの目的は、Oracle JDBC Thin Driver 23aiリリースの一部として含まれるすべての新機能について簡単に確認できるようにすることです。このブログでは、特定の機能の詳細は説明しません。かわりに、重要な機能を迅速に収集し、開発者ガイド、ブログ、ビデオまたはGitHubリポジトリにナビゲートして、調査する機能を詳細に調べるためのリファレンス・ガイドとして機能します。23aiリリースのサマリーについては、JDBC、UCP、OJVMおよびオープン・ソース・プロジェクトのタイムラインを参照し、23aiの機能の詳細は、技術概要 「What’s in Oracle Database 23ai for Java Developers」を参照してください。
AI for Data:
♦ AIベクトル検索およびベクトル・データ型
人工知能(AI)は機械によって動かされ、機械は数字しか理解できません。そのため、AIモデルは、数字シーケンスに変換されたテキスト(単語、フレーズ、文または段落)の数値表現である埋込みを生成します。埋め込みにより、コンピュータはテキストの部分間の関係を簡単に理解できます。VECTORデータ型は、Oracle Database 23aiで導入され、ベクトル埋込みをビジネス・データとともにデータベースに格納します。これにより、Oracle AI Vector Searchは、単一のシステムで、非構造化データとビジネス・データのリレーショナル検索を組み合せてセマンティック検索を実行できます。Oracle AI Vector SearchおよびVector埋込みは、RAG (検索拡張生成)ユース・ケースで、外部ソースから最新の情報を取得し、正確性と関連性を向上します。
Oracle JDBCドライバは、VECTORデータ型(oracle.jdbc.OracleType.VECTOR,oracle.jdbc.OracleType.VECTOR_INT8,oracle.jdbc.OracleType.VECTOR_FLOAT32,oracle.jdbc.OracleType.VECTOR_FLOAT64など)をサポートし、高速検索および類似性検索のためにベクトル埋込みを格納および索引付けします。また、Oracle JDBCドライバは、Oracle AI Vector Searchをサポートするために、DatabaseMetaData, OracleResultSetMetaData, OracleParameterMetaData, およびVectorMetaDataに必要なAPI変更を実装します。
例および詳細は、『JDBC開発者ガイド』の「14 ベクトルの使用」を参照してください。
ミッション・クリティカルな機能
♦ 自己ドライバ診断機能
以前のリリースでは、ロギングおよび取得ログで問題を調査できるように、クラスパスにOracleデバッグjar (ojdbc8_g.jar、ojdbc8dms_g.jar、ojdbc11_g.jar、ojdbc11dms_g.jar)およびDMS jar (ojdbc8dms.jar/ojdbc11dms.jar)が必要でした。これはもはや過去のことです。23ai以降、ojdbc11.jarまたはojdbc8.jarのいずれかの単一の本番jarが、すべてのユース・ケース(本番、トレース、メトリック)に必要なすべてです。ログを取得するためにロギングがオンになっていること、およびDMSデバッグ用のクラスパスにdms.jarがあることを確認してください。
1回のみ発生する障害やレプリケートが困難な障害の診断を容易にするために、Oracle JDBCドライバはクリティカルな実行状態をメモリーに記録し、そのエラーの記録をダンプします。これにより、最初のエラー発生時に重要な診断の詳細を取得することで、自己主導型の診断が可能になります。これはデフォルトで有効になっており、次の方法で無効にすることもできます。
-Doracle.jdbc.diagnostic.enableDiagnoseFirstFailure=false
詳細は、『JDBC開発者ガイド』の「40.1 JDBC診断機能の概要」を参照してください。
♦ True Cacheデータソース
True Cacheインスタンスは、プライマリOracleデータベースのインメモリー(主にディスクレスで完全に機能する読取り専用レプリカ)です。中間層にあり、アプリケーションと同じ場所にあります。JDBCレベルで有効化するには、新しいoracle.jdbc.useTrueCacheDriverConnectionプロパティをtrueに設定します。有効にすると、TrueCacheデータ・ソースは、TrueCacheデータベース・インスタンスに対して、またはプライマリ・データベースに対して使用できる論理接続を作成します。
詳細は、『JDBC開発者ガイド』の「2.8 Oracle True Cacheのサポート」を参照してください。
♦ シャーディングの拡張機能
ディレクトリベースのシャーディング: シャーディング方法には、システム管理、ユーザー定義(リストベースおよび範囲ベースのシャーディング)およびコンポジット・シャーディングの3つのタイプがあります。ユーザー定義のシャーディングは、キー値または値の範囲(最大数百)の小さい、ほとんどが既知の静的セットがあり、ユーザーが特定の場所を制御することを希望するユースケース用に設計されています。
ただし、ユーザー定義のシャーディングの場合、シャード間のデータのバランスを改善するために、顧客がシャーディング・キーおよび範囲の移動を制御することを好むシナリオがあります。例: ディーラ・アプリケーション。そのため、ディレクトリベースのシャーディングでは、ユーザー・プリファレンスに基づいて、実行時にシャーディング・キーに関連付けられたデータ・レコードの場所を動的に指定できます。キーの場所情報は、シャードおよびパーティション情報とともに数十万のキー値の大規模なセットを保持できるディレクトリに格納されます。ユーザーは、個々のキー値をある場所から別の場所に移動したり、大規模な移動を行ってスケール・アップまたはスケール・ダウンしたり、データとロード・バランシングを行うことができます。
WebLogic ServerでのJTA/XAトランザクションによるシャーディング: JTA/XAトランザクションを使用したシャーディングは、WebLogic ServerでUCPをネイティブ・データ・ソースとして構成する場合にサポートされます。UCPネイティブ・データ・ソース・シャーディングAPIを使用するJavaエンタープライズ・アプリケーションは、Oracleシャード・データベースへの接続を取得し、WebLogic Transaction Manager (TM)によって管理されるJTA/XAトランザクションに参加できます。
詳細は、『JDBC開発者ガイド』の「29 データベース・シャーディングのJDBCによるサポート」、および『UCP開発者ガイド』の「13.7 WebLogic ServerのJTA/XAトランザクションによるシャーディング」を参照してください。
♦ Transparent Application Continuity (TAC)の拡張機能
再開可能カーソルをサポート:
再開可能カーソルは、トランザクション作業の外部で開いたままの長時間実行カーソルです。これらのカーソルは、一般的にバッチ・プロセスで使用されます。23ai以降、Oracle JDBCドライバでは、透過的アプリケーション・コンティニュイティ(TAC)の使用時にデフォルトで再開可能カーソルがサポートされます。このサポートにより、このようなカーソルが開いている場合でも、暗黙的なリクエスト境界がより頻繁に確立されるため、アプリケーションのTAC保護カバレッジが増加します。
詳細は、『Oracle JDBC開発者ガイド』の「33.6.1 再開可能カーソルのサポート」を参照してください。
Oracle JDBCデータソースでのアプリケーション・コンティニュイティ(AC)のサポート:
Oracle JDBCドライバ23ai以降、すべてのドライバ・データ・ソースがアプリケーション・コンティニュイティをサポートしています。oracle.jdbc.datasource.impl.OracleDataSourceを使用することをお薦めしますが、古いデータ・ソース(oracle.jdbc.replay.OracleDataSourceImplまたはoracle.jdbc.pool.OracleDataSource)も機能します。
詳細は、「33.1 Java用のアプリケーション・コンティニュイティに対するOracle JDBCの構成について」を参照してください。
DRCPによるアプリケーション・コンティニュイティ(AC)のサポート:
アプリケーション・コンティニュイティ(AC)は、サーバー側でデータベース常駐接続プーリング(DRCP)が有効になっている場合にサポートされます。DRCPでACを使用するには、DRCPを使用するサーバーに対してアプリケーションサービスを構成する必要があります。
詳細は、「33.3 DRCPでのアプリケーション・コンティニュイティ」を参照してください。
マルチクラウドおよびセキュリティ機能:
♦ データベース・パイプラインのJDBCサポート(リアクティブ・プログラムおよびRSIの使用)
パイプライン化は、アプリケーションがレスポンスを待機することなく複数のリクエストをデータベース・サーバーに送信できるネットワーク通信の1つの形式です。各問合せの結果の準備が完了すると、データベースによってレスポンスが送信されます。パイプライン化されたデータベース操作により、非同期プログラミング・モデルが促進され、レスポンス時間の短縮とスケーラビリティの向上というメリットが得られます。リアクティブ拡張API (executeUpdateAsyncOracleおよびexecuteQueryAsyncOracle)またはリアクティブ・ストリーム収集(RSI)jarを使用して、パイプラインを実装できます。
コード・サンプルおよび詳細は、『JDBC開発者ガイド』の「26 パイプライン化されたデータベース操作のサポート」を参照してください。
♦ 組込みJDBC構成プロバイダ(FileSystem、HTTPS)
マルチクラウド環境では、OCI Object Storage、OCI Vault、Azure App Config、Azure Key Vaultなどの一元化されたソースにデータベース情報を配置できます。Oracle JDBCプロバイダは、これらの一元化されたソースからデータベース構成またはリソースに効果的かつ安全にアクセスするためのソリューションを提供します。ソリューションを実現するには、組込みのJDBC構成プロバイダを使用するか、Oracle JDBCプロバイダを拡張してカスタム・プロバイダを実装します(オープン・ソース・プロジェクトのOracle JDBC Driver Extensions v1.0.2を参照)。
23ai以降、組込みJDBC構成プロバイダにより、アプリケーションは、ファイル・システムでホストされているJSONドキュメントまたはOracle REST Data Services (ORDS)などのHTTPSエンドポイントからデータベース情報を読み取ることができます。このソリューションを使用するために追加のjarは必要ありません。必要なのは、クラスパスにOracle JDBCドライバ 23ai (ojdbc8.jarまたはojdbc11.jar)があり、次のサンプルに示すように、接続文字列の一部として構成ファイル・パスを指定します。
HTTPS configuration provider: jdbc:oracle:thin:@config-https://<URL>[?key=name&option1=value1]
Filesystem Configuration Provider: jdbc:oracle:thin:@config-file:{path-to-file}[?option list]
「10.1.4 組込み構成プロバイダ」、ブログ記事「アプリケーション構成プロバイダおよびVaultを介したJDBC構成」、およびビデオ「第13話: Oracle Database 23ai: JDBCサービス・プロバイダ拡張機能: 集中構成」を参照してください。
♦ リアクティブ・ストリーム収集(RSI) – データ・ローダー・モード
23aiリリース以降、RSIでは新しいデータ・ロード・モードが導入され、大規模なINSERTバッチを1回でデータベースに対して実行する場合に役立ちます。DataLoadモードとストリーミング・モードの主な違いは、(1) DataLoadモードでは、RSIインスタンスがクローズされるまで変更はコミットされず、デフォルトのストリーミング・モードでは、変更は定期的にコミットされます。(2) DataLoadモードでは、各ワーカー・スレッドに独自のJDBC接続がありますが、デフォルトのストリーミング・モードでは、ワーカー・スレッドはJDBC接続のプールを共有します。ストリーミング・モードはデフォルトで有効になっており、useDataLoadModeを使用してDataLoadモードをRSIで有効にする必要があります。
詳細およびコード例は、「25.3 リアクティブ・ストリームの収集(RSI)モードについて」を参照してください。
♦ データベース常駐接続プール(DRCP)でのマルチプールのサポート
アプリケーションは、複数の名前付きDRCPプールを使用して、様々なサービス間の接続のバランスを改善できます。プロシージャDBMS_CONNECTION_POOLパッケージを使用すると、プールされたサーバーを追加または削除できます。複数のDRCPプールがある場合は、(SERVER=POOLED)属性とともに接続文字列に(POOL_NAME=<pool_name>)を指定して、このプールに対する接続をマークします。
詳細は、「28.4 DRCPでのマルチプールのサポート」を参照してください。
♦ データベース常駐接続プール(DRCP)でのタグ付けのサポート
DRCPには、サーバー・プロセスを特定のタグ名に関連付けるオプションがあり、接続に適用して、そのタグ名を使用して接続を取得できます。接続タグ付けにより、特定のセッションを簡単に取得できるため、セッション・プーリングが強化されます。
詳細は、「28.5 データベース常駐接続プーリングでのタグ付けサポート」を参照してください。
♦ TFO Libインストーラ (v23.4)
TCP Fast Open (TFO)は、クライアント側アプリケーションがネットワーク・レイテンシの影響を受けやすく、アプリケーションとデータベース間のネットワーク・レイテンシを削減する場合に使用します。TCP Fast Openをアプリケーションで使用する前に有効にし、必要なTFOライブラリもダウンロードする必要があります。
前提条件およびその他の詳細は、『Oracle Autonomous Database Serverlessの使用』ガイドの「TCP Fast Openを使用したJDBC Thin接続」に関する章を参照してください。
♦ セッションなしトランザクション(v23.6)
23.6 以降、セッションレス・トランザクションは、トランザクションとセッションの間の結合を破ります。セッションレス・トランザクションを開始した後は、セッションまたは接続に関連付ける必要はありません。セッションレス・トランザクションは、単一のOracle Databaseとの通信時にトランザクション・マネージャなしで、ライフサイクル中にトランザクションを一時停止および再開する柔軟性を提供します。セッションレス・トランザクションを管理するために、startTransaction(), suspendTransaction(), suspendTransactionImmediately(),executeUpdateAndSuspend(), resumeTransaction()などの新しいAPIがoracle.jdbc.OracleConnectionに追加されています。セッションレス・トランザクションはXAトランザクションと互換性があり、既存のXAResource APIを使用して管理できます。ただし、この機能を有効にするには、システム・プロパティoracle.jdbc.XAThroughSessionlessTransactions=Trueを設定する必要があります。
APIの詳細リストおよび詳細は、「38. セッションレス・トランザクション」を参照してください。
セキュリティ機能:
♦ EZConnect for LDAPS/LDAP
Easy Connect Plus (EZConnect Plus)は、TLS、mTLS、Oracleウォレット、JKS、複数のホスト、接続タイムアウトなど、複数のユースケースに関連する様々な接続プロパティを、接続文字列の一部として名前と値のペアとして渡すことができる拡張接続URLです。23ai以降、Easy Connect Plus (EZConnect Plus) URLはLDAPおよびLDAPSプロトコルをサポートしています。LDAP関連の接続プロパティdirectory_server_type, wallet_location, authenticate_bind, およびauthenticate_bind_methodは、接続文字列の一部として名前と値のペアとして渡すことができます。
詳細は、『JDBC開発者ガイド』の「8.2.6.2 LDAPおよびLDAPSのサポート」を参照してください。「Oracle Database Easy Connect Plus」で、Easy Connect Plus URLの他の機能をご確認ください。
♦ Radius 2FA
JDBCドライバは、チャレンジ・レスポンス認証によるRADIUS 2要素認証をサポートしています。この認証では、RADIUSサーバーは表示されたチャレンジへの有効なレスポンスを要求します。ご想像のとおり、RADIUSサーバーでチャレンジレスポンス認証を使用してハンドラを構成する必要があります。このハンドラは、指定されたヒントを使用したレスポンスの検証に役立ちます。
詳細は、『JDBC開発者ガイド』の「9.9.4 チャレンジ・レスポンス認証のサポート」を参照してください。
♦ より長いパスワードのサポート
以前のリリースでは、サポートされるデータベース・パスワードは30バイトでした。23ai以降、データベース・パスワードの長さが1024バイトに増えました。Oracle JDBCドライバは、これらの長いパスワードをサポートし、Oracle Identity Cloud Services (IDCS)およびIdentity Access Management (IAM)で使用される長いパスワードに対応します。
詳細は、『JDBC開発者ガイド』の「接続とセキュリティ」を参照してください。
♦ Kerberos認証の拡張機能
以前のリリースでは、Kerberos認証では、CredentialCacheでKerberosLoginModuleまたはTicket Granting Ticket (TGT)の可用性をインスタンス化する必要がありました。23ai以降では、簡易認証(O5Logon)のユーザーおよびパスワードのプロパティを構成するのと同じ方法で、Kerberosプリンシパルおよびパスワードのプロパティを構成できます。Oracle JDBCシン・ドライバは、Oracle JDK (com.sun.security.auth.module.Krb5LoginModule)にバンドルされているデフォルトのKerberosログイン・モジュールを使用します。ただし、この動作は、JAAS構成ファイルを使用するようにアプリケーションでオーバーライドできます。
詳細およびコード例は、『JDBC開発者ガイド』の「9.8.5 Kerberosの制約付き委任のサポート」を参照してください。
♦ JDBC-ThinでのBEQのサポート
Bequeathプロトコルを使用すると、同じLinuxホスト上に存在するデータベース・クライアントおよびデータベース・サーバー・プロセスは、ネットワーク・レイヤーおよびネットワーク・リスナーなしで直接通信できます。23ai以降、Oracle JDBCドライバは、接続文字列を介してORACLE_HOMEおよびORACLE_SIDの値を設定することで、Bequeathプロトコルをサポートします。
『JDBC開発者ガイド』の「2.9 Bequeathプロトコルのサポート」を参照してください。
♦ サムプリントベースの証明書の選択
TLS接続では、認証にクライアント証明書が使用されます。クライアント証明書は、Oracle Wallet、Java Key Store (JKS)、Microsoft Certificate Store (MCS)またはLinux certsフォルダ(/etc/ssl/certs)に格納できます。複数の証明書が存在する場合は、接続に適切なクライアント証明書が2つの方法で指定されます。(1) 証明書別名の使用、(2) 証明書サムプリントの使用。これらのメソッドを使用するために指定できる特定の接続プロパティがあります。
詳細は、『JDBC開発者ガイド』の「9.7.2 証明書とウォレットの管理について」を参照してください。
♦ PEMファイルのサポート (v23.6)
Autonomous Databaseには、JKSファイルとtnsnames.ora、ojdbc.properties、Oracle Wallet関連ファイルおよびPEMファイルなどで構成されるダウンロード可能なウォレットzipファイルが用意されています。23.4以降、JDBCドライバはcwallet.ssoおよびe-wallet.p12をサポートし、23.6ではPrivacy Enhanced Mail (PEM) (ewallet.pem)ファイルのサポートがJDBCドライバに追加されます。つまり、お客様はPEMファイルを使用してADBSへの接続を確立できます。暗号化された秘密キーと証明書チェーンを持つPEMファイルには、使用するパスワードが必要です。ただし、JDBCドライバ拡張機能を使用するシナリオでは、Vaultシークレットに格納されている暗号化されていないpemファイルを使用できます。接続プロパティoracle.net.wallet_locationおよびoracle.net.wallet_passwordを使用して、PEMファイルとそのパスワードの場所を指定できます(オプション)。
詳細は、『JDBC開発者ガイド』の「9.11 JDBCでのPEMのサポート」を参照してください。
♦ TLSv1.3のサポート (v23.6)
JDK8 (JDK8u341)および最新のJDK11更新から、TLSv1.3は自動有効化されます。プロトコル・バージョンを構成せず、JDK実装で最もセキュアなバージョンを選択することをお薦めします。プロトコル・バージョンを明示的に選択する必要がある場合は、CONNECTION_PROPERTY_THIN_SSL_VERSIONまたはシステム・プロパティ(Doracle.net.ssl_version="1.3","1.2")を使用するか、接続URLの一部として送信された接続記述子(SSL_VERSION=1.3)を使用できます。
『JDBC開発者ガイド』の「9.7.4 JDBC Thinドライバを使用したTLSバージョン 1.3でのデータベース接続」を参照してください。
♦ SSLContextインスタンスのキャッシュのサポート (v23.6)
JDBC Thinドライバは、Oracle Databaseリリースv23.6以降、パフォーマンスを向上させ、セッションの再開をサポートするSSLContextインスタンスのキャッシュをサポートしています。TLS接続では、ウォレット・ファイルまたはキーストア・ファイルのいずれかに対してSSLContextCacheを問い合せます。同じSSLConfigに対してSSLContextがすでに存在する場合、接続が返されます。それ以外の場合は、新しいSSLContextが作成され、キャッシュされて、接続に返されます。SSLContextCacheのデフォルト・サイズは15です。最大値に達すると、新しいエントリを追加する前に、最も最近使用されていないエントリがキャッシュから削除されます。キャッシュ・サイズは、oracle.net.sslContextCacheSizeシステム・プロパティを使用して変更できます。
詳細は、『JDBC開発者ガイド』の「9.7.6 デフォルトのTLSコンテキストのサポート」を参照してください。
♦ TLS接続のSNIサポート (v23.7)
Oracle Databaseリリースv23.7以降、JDBCドライバはサーバー名表示(SNI)をサポートしています。SNIは、暗号化されていないターゲット・データベース・サービス名(ホスト名)をClientHelloメッセージで送信するために使用されるTLS拡張です。リスナーは、この情報を使用して、TLSハンドシェイクを実行せずにデータベース・プロセスにリクエストをハンドオフし、パフォーマンスを向上させます。
詳細は、『JDBC開発者ガイド』の「9.7.7 TLS接続に対するSNIサポート」を参照してください。
♦ OJVMセキュリティの拡張機能
OJVM (データベース・サーバー内のJVM)では、FIPS 140-2 Javaクラスをインストールできるようになり、JsafeJCEがデフォルトの暗号化プロバイダになります。
詳細は、『OJVM開発者ガイド』の「10.6 FIPSサポート」を参照してください。
開発の容易性
♦ JDKサポート – 概要
サポートされているJDBCドライバとJDKについては、次の表を参照してください。最新のojdbc17.jarおよびucp17.jarを使用することをお薦めします。
Oracle Database 23ai (23.6.0.24.10)
| Oracle JDBC Driver |
JDK対応およびJDBC準拠 |
| ojdbc17.jar & ucp17.jar |
JDBC 4.3仕様を実装し、JDK17でコンパイルし、JDK17、JDK19およびJDK21で動作保証します。Jakarta APIに対応。 |
| ojdbc11.jar & ucp11.jar |
JDBC 4.3仕様を実装し、JDK11でコンパイル |
| ojdbc8.jar & ucp.jar |
JDBC 4.2仕様を実装し、JDK8でコンパイルされ、JDK8およびJDK11で動作保証 |
♦ リレーショナルJSON二面性ビュー (Relational-JSON Duality Views)
二面性ビューは、各モデルの制限を回避しながら、JSONドキュメントを使用するメリットをリレーショナル・モデルのものと結合します。データはリレーショナル表に格納されたままですが、JSONドキュメントの形式で任意のアプリケーションからアクセスできます。開発者は、ドキュメント・モデルとリレーショナル・モデルの両方を最大限に活用できます。JSON形式でリレーショナル・データにアクセスするには、SQLビジュアル・ツール、SQL CLIを使用するか、またはJDBC Statement.execute(“ …”)を使用してプログラム的に、ユースケースに基づいて1つまたは複数のJSONリレーショナル二面性ビューを作成します。たとえば、学生のスケジュールをJSONとして取得する必要がある場合は、JSONオブジェクトとして取得する学生のスケジュールのJSONリレーショナル二面性ビューを作成します。これらのJSONリレーショナル二面性ビューを問い合せることで、JSONドキュメントを直接操作できます。
詳細は、『JSONリレーショナル二面性開発者ガイド』を参照してください。
♦ ネイティブ・ブール・データ型のサポート
リリース23ai以降、Oracle Databaseでは、ISO SQL標準に準拠してBOOLEANデータ型がサポートされます。JDBC Thinドライバは、新しく導入されたBOOLEANデータ型をサポートし、oracle.jdbc.OracleTypeに新しい型BOOLEANを導入します。setBoolean(x)またはsetObject(x)メソッドがコールされる場合(xはJava boolean)で、この新しいBoolean型表現を使用してxの値が送信されます。
『Oracle開発者ガイド』の「4.5.5.7 クラスoracle.jdbc.OracleTypes」および「12.1 データ型マッピング」のBOOLEANデータ型のサポートに関する項を参照してください。
♦ UCPのリアクティブ拡張機能
23ai以降、UCPには非同期データベース・アクセスを追加する一連のメソッドである非同期拡張機能が用意されています。UCPリアクティブ拡張では、接続オブジェクトの作成に非ブロッキング・メカニズムが使用されるため、アプリケーションはただちにCompletableFutureまたは流用する接続のPublisherを受け取ります。これは、「Oracle JDBCリアクティブ・エクステンション」機能に似ています。
詳細およびコード例は、『UCP開発者ガイド』の「11 UCP非同期拡張」を参照してください。
オープン・ソース・プロジェクト:
♦ Oracle Database Navigator IntelliJ Plugin v3.5.0 (2025年2月にリリース)
Database Navigatorは、IntelliJ IDEA開発者向けに、データベース開発および管理のための包括的なツール・スイートを提供します。SQL、PL/SQL、スクリプト、データベース・オブジェクトの参照および編集を実行するための高度なSQLおよびPL/SQLエディタを備えています。プラグインには、さまざまなタイプの接続を管理するための高度な機能があります。また、このプラグインは、Oracle、MySQL、SQLiteおよびPostgreSQLデータベースをサポートしながら、データベース・コンパイラ操作、メソッドの実行とデバッグ、およびデータベース・オブジェクトの作成もサポートします。
「Select AI」統合、トークン認証、OJVMサポート、ネイティブ・キーチェーンでのパスワード・ストレージ、v3.5.0リリースで追加されたその他の多くの新機能のリストについては、リリース・ノートを参照してください。
♦ Oracle OCI Toolkit Plugin v1.0.1 (2024年8月にリリース)
Oracle Cloud Infrastructure (OCI) Toolkitは、IntelliJ IDEを介してOracle Autonomous Databaseに簡単にアクセスできるようにリリースされました。Java開発者は、IntelliJ IDEを使用しながら、あらゆるワークロード・タイプ(ATP、ADW、AJD)を簡単に作成またはアクセスできます。新機能には、サーバーレス・リソースを使用した既存のJavaアプリケーションのデプロイに役立つプラグインのAppStackサポートが含まれています。Javaユーザーは、Javaインスタンスのアプリケーション・スタックを作成、削除および適用できます。また、AppStackの作成および適用のterraformログを表示しながら、適用および再適用のジョブを表示することもできます。プラグインは、DevOpsプロジェクトおよびプロジェクトベースの機能で既存のコード・リポジトリを表示するために使用されるDevOpsダッシュボードもサポートします。
プラグインのダウンロードについては、Oracle OCI Toolkitプラグインのホーム・ページを参照してください。また、プラグインの使用方法については、「IntelliJ IDE でのOCI Toolkit Plugin」のYouTubeビデオを確認してください。
♦ Oracle JDBC Driver Extensions v1.0.2 (2025年1月にリリース)
Oracle Database 23ai以降では、分散環境での集中管理構成をサポートするために、JDBCドライバでは、集中管理された構成またはリソース・プロバイダに基づいてOracle JDBCプロバイダを拡張することで、カスタム・サービス・プロバイダを実装できます。独自のプロバイダを利用または構築できる事前構築済の構成プロバイダがいくつかあります。
Method 1: これらの構成プロバイダは、Central Mavenですでに構築されており、使用可能です。
Configuration Providers: ojdbc-provider-azure (for Azure App Configuration)。ojdbc-provider-commonが必要です。
Resource Providers: ojdbc-provider-oci (for OCI Object Store)。ojdbc-provider-commonが必要です。
Method 2: oracle.jdbc.spi.OracleConfigurationProviderインタフェースを拡張して独自のプロバイダを構築し、Java SPI仕様に従います。
詳細は、GitHub ojdbc-extensions、『JDBC開発者ガイド』の「10 JDBCサービス・プロバイダ拡張機能」、ブログ記事「マルチクラウドへのパート2: Oracle JDBC拡張機能、一元化された構成プロバイダとAzure」、およびビデオ「第13話: Oracle Database 23ai: JDBCサービス・プロバイダ拡張機能: 一元化された構成」を参照してください。
♦ OpenTelemetryProvider
Open Telemetryは、マルチクラウド環境で、トレース、メトリック、ログなどのテレメトリ・データを作成および管理するために設計された可観測性フレームワークです。モジュールojdbc-provider-opentelemetryは、Oracle JDBCとOpen Telemetryを統合するためのプロバイダです。このプロバイダは、JDBCドライバによって提供されるTraceEventListenerインタフェースを実装します。このインタフェースは、ドライバでイベントが生成されるたびに通知され、これらのイベントがOpen Telemetryにパブリッシュされます。含まれるイベントは、データベース・サーバーへのラウンドトリップ、アプリケーション・コンティニュイティの開始と成功、およびVIP停止イベントです。これらのイベントに含まれる属性の例およびその他の詳細は、OpenTelemetryのGithubページを参照してください。
詳細は、ブログ「Azure App InsightおよびOracle JDBC Open Telemetryプロバイダを使用したSpringBootアプリケーションのトレース」を参照してください。
♦ Oracle R2DBC Driver v1.2.0
Oracle R2DBCドライバは、Oracle Databaseでのリアクティブ・プログラミングをサポートするJavaライブラリです。Oracle R2DBCは、リアクティブ・リレーショナル・データベース接続(R2DBC)プロジェクトで指定されたR2DBCサービス・プロバイダ・インタフェース(SPI)を実装します。リアクティブ・ストリームは、非同期通信、非ブロッキング通信およびバックプレッシャー通信の標準です。この標準により、R2DBCドライバは、Spring、Project Reactor、RxJava、Akka Streamsなどの他のリアクティブ・ライブラリおよびフレームワークと相互運用できます。新しいバージョンのR2DBCドライバは、R2DBC SPIの新しいリリースごとにリリースされます。
詳細は、Githubリポジトリoracle-r2dbcを参照してください。
♦ Oracle Database Kubernetes Operator v1.1.0
Oracle Database Operator for Kubernetes (別名OraOperator)は、共有インフラストラクチャ(ADB-S)上の単一インスタンス・データベース、シャード・データベースおよびAutonomousデータベースのライフサイクルを管理するのに役立ちます。新しいリリースは、年に2回ほどリリースされます。2024年5月にリリースされた最新バージョンv1.1.0には、シャーディングとADB-Sのさまざまなユース・ケースに対応するための新しい機能改善があります。
詳細は、GitHubリポジトリoracle-database-operatorを参照し、ブログ #OraOperator goes Productionを参照してください。
参照:
Oracle Database 23ai for Java Developersの概要
Oracle JDBCランディング・ページ
Oracle JDBC ダウンロード・ページ
Oracle JDBC開発者ガイド
Oracle UCP開発者ガイド
