このリリースでのOracle Data Provider for .NETの変更点

ここでは、ODP.NETリリースごとに追加された新機能について説明します。リリース別のこれらの新機能のサマリーは、オラクル社のWebサイトでも入手できます。

Oracle Data Provider for .NETリリース23ai (23.8)での変更点

Oracle Data Provider for .NETリリース23ai (23.8)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • ODP.NET Core – OracleDataSourceOracleDataSourceBuilder

    新しいOracleDataSourceクラスとOracleDataSourceBuilderクラスについては、ODP.NET Coreでは、ADO.NETのDbDataSource (ここからアプリケーションで接続を取得しコマンドを直接実行できます)がサポートされています。このクラスは、すべてのOracleデータベース接続構成をカプセル化します。

    OracleDataSourceは移植可能であり、依存性インジェクションに接続ファクトリとして登録できます。これは、プロバイダを把握できないコードにおいて、Oracleデータベースに接続するために使用できます。

    OracleDataSourceBuilderは、不変OracleDataSourceクラスのインスタンスを生成します。

    関連項目:

    DbDataSource

  • 管理対象ODP.NETおよびODP.NET Core – AIアプリケーション用のスパース・ベクトル・データ型と密ベクトル・データ型

    ODP.NETでは、スパース・データセットと密データセットを格納するための新しいベクトル・データ型がサポートされるようになりました。スパース・ベクトルには、通常は、多数のディメンションがあり、ゼロ以外のディメンション値はほとんどありません。ほぼすべてのディメンションにゼロ以外の値が格納されている場合は、密ベクトルのほうが適しています。

    スパース・ベクトルにはゼロ以外の値のみが格納されるため、それらのほうが格納およびメモリー効率が高くなり、ODP.NETでは、ゼロ以外のディメンションがほとんどない場合は密ベクトルよりも迅速にそれらを処理できます。そのため、入力されたフレーズによって関連のある一致ドキュメントを識別するテキスト検索システムなど、一部のAIアプリケーションにはそれらのほうが適しています。

    一致を識別するために単語の意味の微妙な差異が重要である場合のセマンティック検索には、密ベクトルのほうが適しています。

    ODP.NET EF Core 9以降では、密ベクトルのその既存のサポートに加えて、スパース・ベクトルがサポートされるようになりました。

  • EF Core – スキャフォールディングのデータ型マッピングのカスタマイズのテンプレート

    データベース列からのエンティティ・プロパティのOracle EF Coreスキャフォールディングは、開発者がデフォルトではなく代替の一連の.NETデータ型マッピングを必要としている場合にはカスタム・リバース・エンジニアリング・テンプレートを使用してカスタマイズできるようになりました。

    開発者は、データベース列に対して、より補完的な一連の.NETデータ型マッピング(マップされたOracle Databaseデータ型の考えられる値すべてを格納するCLR型など)を柔軟に選択できます。

  • 管理対象ODP.NETおよびODP.NET Core – PKCS #12ウォレット・ファイルとセキュアな外部パスワード・ストア

    ODP.NETでは、PKCS #12ウォレット・ファイルとセキュアな外部パスワード・ストアの使用がサポートされるようになりました。PKCS #12は、セキュリティ資格証明および証明書を格納する一般的なファイル形式です。通常、これらのファイルには.p12ファイル拡張子が使用されます。

    この機能により、ODP.NETアプリケーションに、資格証明および証明書ファイルの格納のための別のオプションが提供されます。

  • 管理対象ODP.NETおよびODP.NET Core – SQLインジェクション攻撃からのODP.NETコードの保護

    ODP.NET開発者は、SQLインジェクション攻撃を制限するために、バインド変数を使用してセキュアなコードを記述します。しかしながら、常にバインド変数を使用できるとはかぎりません。ODP.NETにより、SQLインジェクション攻撃から保護するために入力リテラルおよびデータベース識別子の値をサニタイズする、新しいメソッドが追加されます。

    開発者は、単純なコード変更によって、SQLリテラルおよび識別子の使用を簡単かつ自動的に保護できます。

  • 自動接続リカバリ

    ODP.NETで、計画済停止や計画外停止によって発生した無効な接続を自動的に検出できるようになりました。無効なセッションが検出された後は、ODP.NETによって、新しいセッションを作成することで、使用可能なデータベース・インスタンスにフェイルオーバーされます。エンド・ユーザーは、エラーが発生することなく自分の作業を遂行できます。

    この機能により、開発者がコードを追加またはメンテナンスする必要なく、アプリケーションの耐障害性と可用性を高めることができます。

    関連項目:

    自動接続リカバリ

  • データベース・セッション間のアプリケーションの状態リークの防止

    ODP.NETセッションが接続プールに戻ったときに、データベース・セッション状態が部分的にリセットされて、状態の大部分が次の接続の状態にリークすることがなくなります。この機能は、RESET_STATEデータベース・サービス属性をLEVEL1に設定することで有効になります。

    この機能拡張を使用すると、新しく分配された接続すべてで、セッション状態の一貫性が高くなり、フェイルオーバー・イベント後に発生する可能性があるアーティファクトの数が少なくなります。

  • 管理対象ODP.NETおよびODP.NET Core – ブール・データ型の一括コピー

    管理対象ODP.NETおよびODP.NET Coreプロバイダ・タイプでは、一括コピーでのOracleデータベース・ブール・データ型がサポートされるようになりました。

    アプリケーションで、ブール・データを含むデータセットを効率的にロードできるようになりました。

    関連項目:

    一括コピー

  • 管理対象ODP.NETおよびODP.NET Core – 一括コピーの索引チェックの適用

    ODP.NET一括コピーでは、このオプションが有効になっている場合は索引チェックを強制適用できます。索引関連のエラーが発生した場合、行はロードされず、索引は変更されません。

    制約が使用可能状態に保たれていなければアプリケーションによってデータ・ロードを中断できるようになりました。

Oracle Data Provider for .NETリリース23ai (23.7)での変更点

Oracle Data Provider for .NETリリース23ai (23.7)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • ODP.NET Core -- Alpine LinuxおよびmacOS

    ODP.NET Coreは、Alpine LinuxおよびmacOS (ARM64)で動作保証されています。

    関連項目:

    システム要件

  • 管理対象ODP.NETおよびODP.NET Core – セッションレス・トランザクション

    ODP.NETセッションレス・トランザクションを使用すると、アプリケーションはトランザクションを開始し、トランザクションを一時停止した後、別のデータベース・セッションで作業を続行してから、最終的にコミットできます。

    セッションレス・トランザクションでは、トランザクションを複数のセッションにわたって実行できるため、アプリケーション開発の柔軟性が向上します。プログラマにはより多くのオプションが用意されており、より効率的で管理しやすく、より高速に実行されるアプリケーション実装を選択できます。

  • 管理対象ODP.NETおよびODP.NET Core – ラウンド・トリップ当たりのフェッチ行数の設定

    ODP.NETアプリケーションは、.NET構成ファイル、OracleConfigurationOracleConnectionOracleCommandOracleDataReaderおよびOracleRefCursorクラスで使用可能なRowsToFetchPerRoundTripプロパティを使用して、データベース・ラウンドトリップ当たりのフェッチ行数を設定できるようになりました。

    この設定は、開発者がラウンドトリップ当たりのフェッチ行数を正確に把握している場合に簡単に使用できます。

  • 管理対象ODP.NETおよびODP.NET Core – 接続に対するデータベース・ロールの設定

    データベース・ロールは、ユーザー(通常は管理者)が複数の権限や他のロールをグループ化するために作成します。ODP.NETは、作成する接続と接続プールから取得した接続に対して、データベース・ロールをプログラムで設定できます。その後、接続ではロールの権限を使用できます。

    この機能により、ODP.NETデータベース接続へのデータベース・ロールの割当てが簡単でわかりやすくなります。

    関連項目:

    OracleRoleCollectionクラス

    OracleConnection Roles

  • 管理対象ODP.NETおよびODP.NET Core – 各接続の暗号化およびデータ整合性設定のカスタマイズ

    ODP.NETでは、OracleConfigurationを使用したアプリケーション・レベルのみではなく、OracleConnectionレベルで各接続に対して暗号化およびデータ整合性のプロパティを設定できるようになりました。アプリケーション接続では、すべて同じセキュリティ設定が使用されない場合があります。必要に応じて、各接続に異なるセキュリティ設定を適用できます。

    この機能により、アプリケーションでは、ビジネス要件と技術要件が規定されたときに、接続セキュリティ設定をカスタマイズして個別化できます。

  • 管理対象ODP.NETおよびODP.NET Core – Server Name Indication

    Server Name Indication (SNI)は、通常、クライアントのhelloメッセージでホスト名を送信する際に使用されるTLS拡張子です。ODP.NETでSNIがサポートされるようになりました。

    SNIは、データベース・サーバーへの接続時にクライアントが送信するサービス名などの関連するconnect_data情報を渡すためにOracleによって使用されます。リスナー側では、TLSネゴシエーションを実行せず、クライアントのhelloパケットを消費せずに、リクエストした接続データが取得されます。この情報を使用して、適切なハンドラが選択されます。リスナーは、専用サーバー・プロセスの生成を続行できます。

    SNIにより、リソースの使用率、スケーラビリティ、セキュリティおよび管理しやすさが向上します。

    関連項目:

    OracleConnection UseSNI

    OracleConfiguration UseSNI

  • 管理対象ODP.NETおよびODP.NET Core – OracleOpaqueStringによるパスワード・セキュリティの強化

    .NET SecureStringクラスは、Stringクラスよりも安全ですが、セキュリティ上の弱点がいくつか残っています。OracleOpaqueStringクラスは、SecureStringのような制限がなく、パスワードなどの文字列データを安全に難読化します。SecureStringを使用するODP.NET APIでは、OracleOpaqueStringを使用するAPIと同じAPIが提供されるようになりました。

    より堅牢なセキュリティを実現するために、SecureStringではなくOracleOpaqueStringを使用することをお薦めします。

  • 管理対象ODP.NETおよびODP.NET Core - パーティションセット分割のシャーディング

    ODP.NETは、コア・ドライバおよび管理対象ドライバでのパーティションセット分割イベントのシャーディングをサポートしています。パーティションセット分割は、指定されたスーパー・シャーディング・キー内のデータを別のシャード領域に移動するときに実行されるシャーディング・データベースに対する操作です。

    ODP.NET接続プールは、これらのパーティション・セット間で分割および移動されるチャンク内のデータに関するデータベース・イベントを受け取ります。プロバイダは、エンド・ユーザーが使用する正しい接続を分配できるように、そのシャーディング・トポロジを適切かつ透過的に更新します。

Oracle Data Provider for .NETリリース23ai (23.6.1)での変更点

Oracle Data Provider for .NETリリース23ai (23.6.1)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • .NET 9ランタイム

    ODP.NET Coreは、.NET 9で動作保証されています。

    関連項目:

    システム要件

  • 管理対象ODP.NETおよびODP.NET Core – 接続構成の制限

    完全接続記述子、簡易接続(プラス)またはTNSネット・サービス名を使用する場合は、接続文字列データ・ソース属性の設定をグローバル・レベルで制限するように、ODP.NETを構成できるようになりました。

    独立系ソフトウェア・ベンダーおよびアプリケーション管理者は、どの接続設定とオプションを許可するかを簡単に制御できます。この機能により、アプリケーション接続の保護がより簡単になります。

    関連項目:

    接続構成の制限

Oracle Data Provider for .NETリリース23ai (23.6)での変更点

Oracle Data Provider for .NETリリース23ai (23.6)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • Entity Framework Core 9

    ODP.NET Entity Framework (EF) Coreでは、OracleデータベースでのEntity Framework Core 9をサポートするようになりました。ODP.NET EF Core NuGetパッケージ9.23.60以上が必要です。

  • ODP.NET Core -- Kerberos

    ODP.NET Coreは、分散環境におけるセキュリティのためのネットワーク認証サービスであるKerberosをサポートするようになりました。ODP.NETアプリケーションは、シングル・サインオンと一元的なユーザー認証の目的でKerberosを使用できます。

    関連項目:

    Kerberosの使用

  • 管理対象ODP.NETおよびODP.NET Core – OpenTelemetryの拡張

    OpenTelemetryは、アクティビティ・ソース・バージョンとしてODP.NET NuGetバージョンを公開し、ODP.NETが実行した文のテキストを公開し、セキュリティ上の理由からリテラル値を非表示にするためにトレースされたコマンド・テキストをリダクションするように拡張されました。

    これらの新機能により、ODP.NET OpenTelemetryのトレース・オプションと機能がさらに提供されます。

    関連項目:

    OpenTelemetry

  • 管理対象ODP.NETおよびODP.NET Core – ベクトルBINARY数値形式

    ODP.NET開発者は、ベクトルにBINARYディメンション形式を使用できます。

    BINARYの数値形式はFLOAT32形式の32分の1であり、2つのベクトル間の距離計算は最大40倍速くなります。

    形式の精度が失われる可能性がありますが、通常、損失はそれほどではありません。

  • 管理対象ODP.NETおよびODP.NET Core – クラウド・デプロイメントのためのより簡単なプロキシ・サーバー設定

    さらに多くのODP.NETアプリケーションが、ファイアウォールの背後にあるクラウド・データベースとともにデプロイされています。この設定では、Oracleデータベース接続アドレスでWebプロキシ・サーバーを使用する必要があります。Webプロキシ・サーバーを簡単に使用できるように、新しいOracleConnectionプロパティ(AutoProxyHttpsProxyHttpsProxyPortSSLServerDNMatchSSLServerCertDNおよびSSLVersion)が導入されました。

    これらのインタフェースにより、ODP.NETはプロキシを検出または設定できるため、プロキシの設定がより簡単になります。

  • 管理対象ODP.NETおよびODP.NET Core – IsFloatingPointNumberスキーマ表の列

    ADO.NET SchemaTableのこの新しい列は、結果セット列のデータ型が浮動小数点数かどうかを示します。

    これにより、アプリケーションは、列が浮動小数点数を格納するか、固定小数点数などの他の型を格納するかを簡単に区別できます。

    関連項目:

    OracleDataReader GetSchemaTable

  • 管理対象ODP.NETおよびODP.NET Core –UNCパスの禁止

    アプリケーションは、ユニバーサル・ネーミング規則(UNC)の場所のパスを持つ構成ファイルへのODP.NETアクセスを禁止できます。

    サーバー・メッセージ・ブロック強制攻撃では、UNCパスを使用して、ターゲット・マシンが攻撃者のコンピュータを認証します。成功すると、攻撃者はその認証をコピーして別のシステムにアクセスします。UNCパスを無効にすると、この攻撃からODP.NETアプリケーションが保護されます。

    関連項目:

    OracleConfiguration AllowUncPaths

  • 管理対象ODP.NETおよびODP.NET Core – Azureサービス・プリンシパル認証のためのユーザー作成ウォレットのストアド・クライアント・シークレット

    ODP.NETでは、クライアント・シークレットを直接提供する既存のメソッドおよびクライアント証明書に加えて、ユーザー作成ウォレットに格納されているクライアント・シークレットを使用するAzureサービス・プリンシパル認証フローが許可されるようになりました。

    この新しいオプションは、クライアント・シークレットを安全に格納し、Azureサービス・プリンシパルをODP.NETとともに使用する際の柔軟性を高めます。

  • 管理対象ODP.NETおよびODP.NET Core – 二重暗号化および二重データ整合性の無効化

    TCPSがOracle Native Network Encryption (NNE)またはデータ整合性(あるいはその両方)とともに有効になっている場合、ODP.NETはTCPSのみを使用するように構成できます。

    この機能により、パフォーマンスを低下させる二重暗号化と二重チェックサムをアプリが誤って有効にすることを回避できます。

    関連項目:

    OracleConfiguration SqlNetIgnoreANOEncrytionForTCPS

Oracle Data Provider for .NETリリース23ai (23.5.1)での変更点

Oracle Data Provider for .NETリリース23ai (23.5.1)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 管理対象ODP.NETおよびODP.NET Core - 透過的アプリケーション・フェイルオーバーSELECTモードを使用した例外の排除

    管理対象ODP.NETおよびODP.NET Core 23aiで、TAFセッション・モードのサポートが導入されました。TAF SELECTモードはまだサポートされていません。

    ODP.NET 23.5.1は、TAF SELECTモードの構成時にエラーが発生しないように拡張されました。ODP.NETでは、かわりにTAFセッション・モードを使用します。

Oracle Data Provider for .NETリリース23ai (23.5)での変更点

Oracle Data Provider for .NETリリース23ai (23.5)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 管理対象ODP.NETおよびODP.NET Core - REF CURSOR列タイプ

    ODP.NETでは、選択リストのREF CURSORタイプの列をOracleDataReaderOracleRefCursor、JSON形式の.NET文字列またはOracleString結果セットとして返すことができるようになりました。

    この機能により柔軟性が向上し、Oracleの結果セットを使用する別の方法が追加されます。

    関連項目:

    OracleDataReader.GetOracleDataReader

    OracleDataReader.GetOracleRefCursor

  • 管理対象ODP.NETおよびODP.NET Core – GetDecimalの無効なキャスト例外をグローバルに抑制

    SuppressGetDecimalInvalidCastExceptionプロパティが、OracleConfigurationおよびOracleConnectionクラスに追加されました。以前は、OracleDataReaderおよびOracleDataAdapterクラスでのみ使用可能でした。有効にしてGetDecimalをコールすると、ODP.NETはInvalidCastExceptionを抑止し、OracleのNUMBERを表す28または29の精度に丸められた.NETの10進値を返します。

    この機能により、アプリケーション・レベル(OracleConfiguration)または接続レベル(OracleConnection)で例外抑制を設定できるため、使いやすさが向上します。また、UDTおよびOracleParametersが大きい数を取得する場合、すべての設定で例外を抑制できます。

    関連項目:

    OracleConfiguration.SuppressGetDecimalInvalidCastException

    OracleConnection.SuppressGetDecimalInvalidCastException

  • 管理対象ODP.NETおよびODP.NET Core – ODP.NET製品情報およびアプリケーション・メタデータ

    ODP.NETでは、プロバイダ・タイプ(コアまたは管理対象)、NuGetバージョンを示す新しいプロパティが追加され、アプリケーションでプログラム名を割り当てて、データベースのV$SESSIONPROGRAM列でクライアント・アプリケーションを識別できるようになりました。

    これらの新しいプロパティは、データベース管理者およびアプリケーション・サポート担当者がODP.NETプロバイダのタイプ、バージョンおよびアプリケーション名を識別するための体系的な方法を提供します。

    関連項目:

    OracleConnection.ProviderName

    OracleConnection.ProviderNuGetVersion

    OracleConfiguration.Program

  • 管理対象ODP.NETおよびODP.NET Core – 接続情報に関するOCIオブジェクト・ストレージ変更通知

    クラウド・リソースからの接続情報の取得は、ローカル・ディスクからよりも時間がかかるため、ODP.NETでは接続情報をキャッシュします。その情報が更新されると、プル・モデル(ポーリング)または自動プッシュ・モデル(変更通知)を使用してキャッシュ更新が発生する可能性があります。Azureに格納されているODP.NET接続属性の変更通知は、以前に導入されました。この新しいリリースでは、Oracle Cloud Infrastructureのオブジェクト・ストレージに同じ機能が導入されています。

    変更通知では、情報をローカルに格納するパフォーマンスを犠牲にすることなく、接続プロパティの変更をすばやく更新する自動化された方法が提供されます。

  • 管理対象ODP.NETおよびODP.NET Core – すべての行が処理された後の一括コピー通知

    一括コピー操作が完了してすべての行が処理された後に、ODP.NETの一括コピーで通知を送信できるようになりました。この機能は、OracleBulkCopyOptions.NotifyAllRowsProcessedを使用して有効にします。行数は、通知のOracleRowsCopiedEventArgs.RowsCopiedプロパティを介して返されます。

    このプロパティを使用することで、アプリケーションは、一括コピー操作が完了したときに処理された行の合計数を判断できるようになりました。

    関連項目:

    OracleBulkCopyOptionsの列挙

    OracleRowsCopiedEventArgs.RowsCopied

  • 管理対象ODP.NETおよびODP.NET Core - 簡易接続プラスのアドレス・リスト

    ODP.NETによって、簡易接続プラス構成にアドレス・リストのサポートが組み込まれます。

    アドレス・リストを使用すると、ODP.NET接続用にそれぞれ独自の特性を持つ複数のアドレスのリストを構成できます。

  • 管理対象ODP.NETおよびODP.NET Core – Microsoft IDプラットフォーム・トークンv2.0の拡張

    ODP.NETでは、Microsoft Entra ID専用アプリケーションに対してはMicrosoft IDプラットフォーム・トークンv1.0、コンシューマ・アカウントをサポートするアプリケーションに対してはv2.0をサポートしています。ODP.NET 23.5以上では、v2.0トークンのロール(roles)およびユーザー・プリンシパル名(UPN)クレームをチェックして、少なくとも1つが存在することを確認します。両方の要求がない場合、プロバイダはエラーを報告します。

  • 管理対象ODP.NETおよびODP.NET Core –SQLの影響を受ける行のOpenTelemetryのアクティビティ・タグ

    ODP.NETのOpenTelemetryは、ExecuteNonQuery*ExecuteReader*またはExecuteScalar*メソッドを使用する場合、SQL DML (INSERTUPDATEおよびDELETEのみ)の影響を受ける行数を返すようになりました。

    関連項目:

    OpenTelemetry

  • 管理対象外ODP.NET – System.Text.Json DLLとその依存関係の動的ロード

    管理対象外ODP.NETでは、System.Text.Json.Dllとその依存関係がアプリケーションによってロードされていない場合、または別のバージョンがロードされている場合の動的ロードのサポートが追加されています。この拡張機能は、Power BIなどのアプリケーションで使用される管理対象外ODP.NETのトークンベース認証機能用です。

Oracle Data Provider for .NET 23aiでの変更点

23ai用Oracle Data Provider for .NETでの変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • ODP.NET: AI Vector Search

    人工知能(AI) Vector Searchを使用して、セマンティック検索機能を活用できるようになりました。これらの機能には、新しいベクトル・データ型、ベクトル索引およびベクトル検索SQL演算子が含まれます。これらを使用すると、データベースはセマンティック・ドキュメント・コンテンツ、イメージおよびその他の非構造化データをベクトルとして格納し、高速でパフォーマンスの高い類似性問合せを実行できます。これにより、データベースは、完全一致の検索のみでなく、ユーザー・インテントと検索コンテキストをよく理解して類似の一致を検索できます。

    AI Vector Searchは、自然言語の質問に対応するために、特に検索拡張生成(RAG)などの生成AI構成を活用する機能を提供します。RAGは、大規模言語モデル(LLM)をプライベート・ビジネス・データと効果的にマージし、データのプライバシを維持しながら、応答の正確性を高めます。この機能により、AIで成長の新しい機会を開放できます。

  • 管理対象ODP.NETおよびODP.NET Core - 非同期プログラミング

    ODP.NETでは、コア・ドライバとマネージド・ドライバで.NET Task Asynchronous Programming (TAP)モデルがサポートされています。TAP、asyncキーワードおよびawaitキーワードのサポートにより、ODP.NETのデータ・アクセス操作は、より応答性が高くなり、非同期性に関する開発がより簡単になります。この機能には、Entity Framework CoreおよびEntity Frameworkの非同期問合せおよび保存のサポートが含まれます。

  • 管理対象ODP.NETおよびODP.NET Core - パイプライン処理

    ODP.NET Coreドライバおよび管理対象ドライバでは、そのデータベース通信でパイプライン処理がサポートされています。これにより、ODP.NETでデータベース・レスポンスを待機中であっても、後続のデータベース・リクエストが透過的に送信されキューに入れられるようになります。パイプライン処理を利用すると、アプリケーション全体のパフォーマンスが向上し、データベース・リソースをより効果的に使用できるようになります。ODP.NETは、後続のリクエストを送信する前に、データベースが以前のリクエストから応答するまで待つ必要がありません。

  • 管理対象ODP.NETおよびODP.NET Core – OpenTelemetry

    OpenTelemetryは、テレメトリ・データをインスツルメント、生成、収集およびエクスポートするための一般的なオープン・ソースの可観測性フレームワークです。複数のサービスがトレース、メトリックおよびログの統合バージョンを提供できるように、共通の仕様とプロトコルを提供します。

    OpenTelemetryの可観測性と標準をサポートするために、多数の管理対象ODP.NETおよびODP.NET Core APIがインスツルメントされています。開発者およびオペレータは、OpenTelemetryで収集されたODP.NETメトリックをカスタマイズできます。ODP.NET OpenTelemetryには、自動、動的および手動のインスツルメンテーションのサポートが含まれます。

    OpenTelemetryのサポートにより、この業界標準を使用して、クラウド・コンピューティング、マイクロサービスおよび分散システムでのODP.NET操作の相互作用状況のモニタリング、追跡および分析がさらに簡単になりました。

    関連項目:

    OpenTelemetry

  • 管理対象ODP.NETおよびODP.NET Core - .NETメトリック

    .NETメトリックは、アプリケーションのヘルスに関する監視およびアラートを目的として、一定の時間間隔で収集されたアプリケーションの数値測定です。ODP.NET設定では、データベースへのODP.NETハード接続の数、アクティブな接続の数、空き接続の数などの接続統計をメトリックで監視できます。

    ODP.NET Coreおよび管理対象ODP.NETは、.NETメトリックをサポートしています。ODP.NETメトリックは、GrafanaやPrometheusなど、OpenTelemetryおよび.NETメトリックと統合されたリッチな拡張ツールセットによって公開および分析できます。

    関連項目:

    .NETメトリック

  • 管理対象ODP.NETおよびODP.NET Core - アドバンスト・キューイングおよびトランザクション・イベント・キュー

    ODP.NET Coreおよび管理対象ODP.NETでは、マイクロサービスなどの最新のアプリケーションで使用できる、アドバンスト・キューイング(AQ)およびトランザクション・イベント・キュー(TxEventQ)のアプリケーション・プログラミング・インタフェース(API)がサポートされるようになりました。TxEventQの高度に最適化されパーティション化された実装では、Oracleデータベースの機能を活用することで、プロデューサとコンシューマで、メッセージの永続的保存による高スループットのメッセージ交換が可能になり、様々なデータベース上の複数のキューの間でのメッセージ伝播が可能になります。TxEventQは、キューごとに複数のイベント・ストリームを保持する高性能のパーティション化された実装です。AQは、それより単純なワークフローのユース・ケース用のディスク・ベースの実装です。

    ODP.NET開発者は、TxEventQとAQのどちらを使用する場合でも、同じAPIを利用できます。それらのAPIを使用すると、Oracleデータベースと統合された、堅牢で機能豊富なメッセージ・キューイング・システムにアクセスできます。それをWeb、モバイル、IoTなどのデータ駆動型アプリケーションやイベント駆動型アプリケーションとともに使用して、イベントをストリーミングすることや、ワークフローの一部として相互に通信することができます。

  • 管理対象ODP.NETおよびODP.NET Core - アプリケーション・コンティニュイティおよび透過的アプリケーション・コンティニュイティ

    ODP.NETコア・ドライバおよびマネージド・ドライバで、アプリケーション・コンティニュイティ(AC)と透過的アプリケーション・コンティニュイティ(TAC)がサポートされるようになりました。ACやTACを使用すると、リカバリ可能な停止の後に未完了データベース・セッション(トランザクションを含む)がリカバリされることで、エンド・ユーザーとアプリケーションに停止が認識されることがなくなります。このリカバリは透過的であり、エンド・ユーザーにはわずかな実行遅延しか認識されず、認識できるような停止やエラーは発生しません。

    ACやTACによって、計画外停止と計画的メンテナンスの両方について、ユーザー・エクスペリエンスが向上します。それらにより、Oracleデータベースを使用するシステムおよび.NETアプリケーションのフォルト・トレランスが向上します。開発者は、コードを変更することなく、既存の.NETアプリケーションとともにACやTACを使用できます。

  • 管理対象ODP.NETおよびODP.NET Core - 透過的アプリケーション・フェイルオーバー

    Oracle透過的アプリケーション・フェイルオーバー(TAF)は、接続されたプライマリ・インスタンスに障害が発生した場合や停止した場合に、クライアント・アプリケーションがセカンダリ・データベース・インスタンスに自動的に再接続できるようにする高可用性機能です。ODP.NET Coreおよび管理対象ODP.NETは、接続および基本セッション状態TAFをサポートするようになりました。

    ODP.NET TAFを使用すると、データベースの停止時間が発生したときにアプリケーションをリカバリして操作を続行できます。使用する.NETアプリケーション・コードを変更する必要はありません。

  • JSONリレーショナル二面性

    JSONリレーショナル二面性は、リレーショナル・データに関する十分に更新可能なJSONビューとして現れます。データは非常に効率的な正規化された形式でリレーショナル表に格納されたままですが、JSONドキュメントの形式で.NETアプリケーションからアクセスできます。すべてのODP.NETプロバイダ・タイプ(Core、管理対象および管理対象外)で、JSONリレーショナル二面性の使用がサポートされています。

    二面性ビューでは、リレーショナル・モデルまたはドキュメント・モデルを使用してアプリケーションを構築する際に.NET開発者が直面していた過去の課題は克服されているため、画期的な柔軟性と簡潔性が実現されます。

  • SQL BOOLEANデータ型に対するOracleクライアント・ドライバのサポート

    Oracleクライアント・ドライバでは、新しいBOOLEANデータベース列のフェッチおよびバインドがサポートされています。アプリケーションで、ネイティブ・データベースのBOOLEAN列データ型とネイティブ・ドライバのBOOLEANデータ型を併用できます。この機能拡張により、開発者はBOOLEANデータ型をより簡単に使用できるようになりました。

  • True Cache

    Oracle True Cacheは、自動的に管理されて一貫性のある、読取り専用、インメモリー、高パフォーマンスのSQLおよびキー値キャッシュです。これにより、データベース・サーバーの負荷を軽減しながら、アプリケーションのレスポンス時間が短縮されます。自動管理と一貫性により、アプリケーション開発が簡素化され、開発者の労力とコストが削減されます。

    すべてのODP.NETプロバイダ・タイプは、コードを変更することなく、Oracle True Cacheを透過的に使用できます。

  • 迅速な接続の確立

    ODP.NET接続の確立は、Oracle Database 23ai以降との接続時に必要なデータベース・ラウンドトリップの数を減らすために最適化されています。アップグレードするアプリケーションでは、このパフォーマンス向上が透過的に発生します。

  • 管理対象ODP.NETおよびODP.NET Core - 一元化された構成プロバイダ

    管理対象ODP.NETおよびODP.NET Coreでは、一元化された構成プロバイダを使用して、オンプレミス、クラウド・インフラストラクチャ、Oracle Cloud Infrastructure (OCI)またはAzureストアからアプリケーション構成データを格納および取得できます。このストアには、接続記述子やチューニング・パラメータなどの接続情報が含まれています。パスワードやウォレットなどのシークレットは、同じプロバイダでOCI VaultまたはAzure Key Vaultに格納できます。

    一元化されたアプリケーション構成により、特にマイクロサービス、クラウド・アプリケーション・サービス、サーバーレス・アプリケーションなどの最新のアーキテクチャでは、複数のデプロイメントにわたるクライアント構成およびシークレットの管理が簡素化されます。

  • 管理対象ODP.NETおよびODP.NET Core - Azure Active Directoryシングル・サインオン

    ODP.NETは、Microsoft Entra ID (Azure AD) OAuth2アクセス・トークンを、ファイルの場所またはODP.NET APIを介してトークンを受信する従来の方法の他に、Entra IDエンドポイントから直接リクエストできるようになりました。これにより、アプリケーションを変更する必要がなく、トークンを取得するために別のヘルパー・ユーティリティが必要ないため、OAuth2トークンの使用が簡略化されます。

    ユーザーは、Microsoft Entra IDを使用して1回サインオンし、そのトークンを取得し、オンプレミスおよびクラウドベースのOracleデータベースにアクセスできます。この機能は、ODP.NET CoreおよびManaged ODP.NETで使用できます。このマルチクラウド機能により、ユーザー・アクセスおよび管理が簡略化されることで、Microsoft Entra IDとOracle Databaseの間の認証と認可が容易になります。

  • 管理対象ODP.NETおよびODP.NET Core – Oracle IAM SSOトークン

    ODP.NETは、ファイルの場所またはODP.NET APIを介してトークンを受信する以前の方法に加えて、IAMから直接OCI IAMアクセス・トークンをリクエストできるようになりました。これにより、アプリケーションを変更する必要がなく、トークンを取得するために別のヘルパー・ユーティリティが必要ないため、IAMトークンの使用が簡略化されます。

    ユーザーは、OCI IAMで一度サインオンし、トークンを取得して、OCI DBaaS Oracleデータベースにアクセスできます。この機能は、ODP.NET CoreおよびManaged ODP.NETで使用できます。

  • 管理対象ODP.NETおよびODP.NET Core - TLS/SSL証明書の選択

    管理対象ODP.NETおよびODP.NET Coreでは、グラフィカル・ユーザー・インタフェースまたはサムプリントを介して、Microsoft証明書ストア・ウォレットの場所に格納されている特定のTLS/SSL証明書を選択できます。選択したキーはキャッシュされるため、後続の接続試行で再選択する必要はありません。

    グラフィカル・インタフェースの選択は、OracleConnection AllowCertificateSelectionUIプロパティをtrueに設定することで有効になります。サムプリントの選択は、SSLCertificateThumbprintプロパティにサムプリント値を移入することで有効になります。

    この機能は、最新のODP.NET 19cおよび21cリリース更新にバックポートされました。

  • 管理対象ODP.NETおよびODP.NET Core – 拡張されたトランザクション管理オプション

    デフォルトでは、ODP.NETは、トランザクション外部での各SQL操作の実行後に自動コミットします。管理対象ODP.NETおよびODP.NET Coreでは、自動コミットを無効にできるようになりました。それにより、SQL文を、トランザクションを必要とせずに、明示的なコミットの後に実行できます。

    OracleConnectionクラスでは、ローカル・トランザクションを管理するための新しいAPIが追加されます。

    これらの新機能により、ODP.NET開発者に、柔軟でシンプルなトランザクション管理オプションが提供されます。

  • データ・ユースケースのドメイン名およびスキーマ

    データ・ユースケース・ドメインは、スキーマに属するディクショナリ・オブジェクトであり、クレジット・カード番号や電子メール・アドレスなど、共通値のオプション・プロパティおよび制約のセットをカプセル化します。データ・ユースケース・ドメインを定義した後、そのドメインに関連付ける表の列を定義して、ドメインのオプションのプロパティおよび制約を明示的にそれらの列に適用できます。

    データ・ユースケース・ドメインを使用すると、データを一元的に使用する方法を定義できます。これにより、アプリケーション全体で一貫した方法で値を処理し、データ品質を向上させることが容易になります。

    すべてのODP.NETプロバイダ・タイプでは、データ・ユースケース・ドメインの使用と、データ・ユースケース・ドメインのスキーマおよび名前情報の取得がサポートされています

  • 注釈

    Oracle Databaseの注釈を使用して、データベース・オブジェクトに関するメタデータを格納および取得できます。これらは、名前と値のペアであるか、名前のみです。これらは、アプリケーションでビジネス・ロジックまたはユーザー・インタフェースのカスタマイズに使用できる、自由形式テキスト・フィールドです。すべてのODP.NETプロバイダ・タイプでOracle Database注釈がサポートされています。

    注釈は、すべてのアプリケーションにわたり同じ方法でデータベース・オブジェクトを使用するために役立ちます。これにより、開発が簡素化され、データ品質が向上します。

    関連項目:

    注釈

  • 延長されたデータベース・パスワード長

    このリリース以降では、Oracle Databaseおよびクライアント・ドライバ(ODP.NET管理対象、管理対象外およびCoreドライバを含む)で、1024バイトまでの長さのパスワードがサポートされています。

  • Transport Layer Security 1.3

    ODP.NETでは、Core、管理対象および管理対象外プロバイダで、Transport Layerバージョン1.3がサポートされています。TLSは、データの暗号化と接続の認証に使用されます。TLS 1.3では、TLS 1.2よりも優れたセキュリティとパフォーマンスが提供されます。

  • 管理対象ODP.NETおよびODP.NET Core - プログラムによるデータベースの起動および停止操作

    データベース管理者権限を持つユーザーは、OracleDatabaseクラスを使用して、管理対象ODP.NETおよびODP.NET Coreでデータベース・インスタンスを起動または停止できます。

    関連項目:

    OracleDatabaseクラス

  • 許可されたログオン・バージョン・クライアント・サポート

    この機能により、アプリケーションは、Oracle Databaseに対する認証時に特定のアプリケーションまたは特定のOracleConnectionオブジェクト(あるいはその両方)に使用される最小認証プロトコルを指定できます。

  • 管理対象ODP.NET - パブリックOracleMigrationSqlGeneratorクラス

    Entity Framework 6アプリケーションの場合、OracleMigrationSqlGeneratorクラスがパブリックになり、開発者がデフォルトのSQL生成をカスタマイズする場合、その生成をオーバーライドできるようになります。

  • クラウド接続のHTTPSプロキシ

    ODP.NETは、データベース接続でHTTPSプロキシをサポートします。この機能を使用すると、HTTP CONNECTメソッドを使用して、フォワードHTTPプロキシ経由でその接続をトンネリングできます。

    次のような接続アドレスで有効にできます

    (description=(address=(https_proxy=www-proxy.example.com)(https_proxy_port=80)
    (protocol=tcps)(port=1522)(host=dbhost.example.com))
    (connect_data=(service_name=svc.example.com)) )

    HTTPSプロキシを使用すると、クライアント側のファイアウォールでアウトバウンド・ポートを開く必要がなくなるため、パブリック・クラウド・データベース・サービスへのアクセスが向上します。

非推奨となった機能

次の機能は、リリース23aiのOracle Data Provider for .NETでは非推奨になりました:

  • Oracle Data Provider for .NET管理対象外ドライバ

    Oracle Data Provider for .NET (ODP.NET)管理対象外ドライバは、Oracle Database 23aiでは非推奨であり、将来のリリースでサポートされなくなる可能性があります。既存の管理対象外ODP.NETアプリケーションをODP.NET管理対象ドライバに移行することをお薦めします。

    ODP.NETでは、OracleデータベースへのADO.NETベースのデータ・アクセスが提供されます。Microsoft .NET Frameworkには、ODP.NET管理対象ドライバとODP.NET管理対象外ドライバという2つのプライマリOracleデータ・アクセス・ドライバがあります。

    Oracle Database 23aiでは、ODP.NET管理対象ドライバは、同じアプリケーション・プログラミング・インタフェースおよび構成設定を持つODP.NET管理対象外ドライバで使用可能なすべての主要な機能をサポートします。管理対象外ODP.NETから管理対象ODP.NETへのコード移行は、既存の.NETアプリケーションの大半では簡単です。ODP.NET管理対象ドライバは、NuGetパッケージングを介して使用できる、よりコンパクトでシンプルなインストールです。管理対象外のODP.NETは、NuGetパッケージとして使用できません。複数の管理対象外ODP.NETデプロイメントよりも、同じマシン上の複数の管理対象ODP.NETデプロイメントを管理する方が容易です。これらのメリットにより、お客様の使用には管理対象外のODP.NETよりも管理対象のODP.NETが優先されます。

    管理対象外ODP.NETには管理対象ODP.NETに勝る利点がないため、管理対象外ODP.NETは非推奨になりました。

  • mkstoreウォレット管理コマンドライン・ツール

    mkstoreコマンドライン・ユーティリティは、orakpiが優先して使用されるように、非推奨になりました。

  • MY_WALLET_DIRECTORY

関連項目:

サポート対象外となった機能

このドキュメントで以前説明されていたいくつかの機能は、Oracle Database 23aiではサポートされていません。サポート対象外の機能のすべてのリストは、『Oracle Databaseアップグレード・ガイド』を参照してください。

次の機能は、Oracleではサポートされなくなりました。

  • .NET用のOracle Databaseの拡張機能

    Oracle Database Extensions for .NETはサポートされなくなりました。.NETコードを中間層に配置するか、外部プロシージャ機能を使用するか、PL/SQLまたはJavaを使用してコードを書きなおすことをお薦めします。

    Oracle Database Extensions for .NETは、Microsoft Windows上のOracle Databaseの機能であり、これを使用すると.NETで管理されるC#などの言語で記述されたストアド・プロシージャおよびファンクションを使用できます。

    Oracle Databaseは、Oracle Databaseプロセスの外にある外部プロセス内で、Microsoft Common Language Runtime(CLR)をホストします。アプリケーション開発者は、C#やVB.NETなど、任意の.NET準拠言語を使用してストアド・プロシージャおよびファンクションを記述し、これらの.NETストアド・プロシージャを他のPL/SQLまたはJavaストアド・プロシージャと同様にデータベースで使用できます。.NETストアド・プロシージャは、PL/SQLパッケージ、プロシージャ、ファンクションおよびトリガーから、SQL文からでも、またはPL/SQLプロシージャやファンクションをコールできる場所であればどこからでもコールできます。

    次の移行オプションがあります。

    • 中間層への.NETコード(アセンブリ)の移動

    • 外部プロシージャ機能を使用した、.NETアセンブリ外部プロセスのロードと実行

    • PL/SQLまたはJavaを使用したストアド・プロシージャの書きなおし

  • Oracle Wallet Manager(OWM)

  • OracleConfiguration.DirectoryTypeプロパティ

Oracle Data Provider for .NETリリース21c (21.12)での変更点

Oracle Data Provider for .NETリリース21c (21.12)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • .NET 8ランタイム

    ODP.NET Coreは、.NET 8で動作保証されています。

  • Entity Framework Core 8

    ODP.NET Entity Framework (EF) Coreでは、OracleデータベースでのEntity Framework Core 8をサポートするようになりました。ODP.NET EF Core 21.12.1以降が必要です。

Oracle Data Provider for .NETリリース21c (21.8)での変更点

Oracle Data Provider for .NETリリース21c (21.8)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • .NET 7ランタイム

    ODP.NET Coreは、.NET 7で動作保証されています。

  • Entity Framework Core 7

    ODP.NET Entity Framework (EF) Coreでは、OracleデータベースでのEntity Framework Core 7をサポートするようになりました。Entity Framework Coreは、.NET開発者が.NETオブジェクトを使用してリレーショナル・データベースを使用できるようにするプラットフォーム間Microsoftオブジェクト・リレーショナル・マッパーです。

Oracle Data Provider for .NETリリース21c (21.7)での変更点

Oracle Data Provider for .NETリリース21c (21.7)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 管理対象ODP.NETおよびODP.NET Core -- Azure Active Directory

    管理対象ODP.NETおよびODP.NET Core 21.7は、Oracle Databaseへの接続時にAzure Active Directory (AAD)認証をサポートします。ODP.NETは、ユーザー名とパスワードのかわりにアクセス・トークンを使用して認証するようになります。

    この機能は、Oracleデータベースで一元化されたユーザー認証にAADを使用するアプリケーションおよびサービスに役立ちます。これらのサービスには、ユーザー管理のためにAADに依存するAzureやMicrosoft 365ベースのクラウド・サービス(Microsoft Power BIサービスなど)を含めることができます。

    トークン・ベース認証の使用は、エンド・ユーザーにとってより安全で簡単です。ユーザーがリソースにアクセスするたびに資格証明を指定する必要はありません。さらに、リソースは個々のユーザー資格証明を処理および管理する必要がありません。

  • 管理対象ODP.NETおよびODP.NET Core -- Transport Layer Security 1.3

    管理対象ODP.NETおよびODP.NET Coreでは、Transport Layer Security (TLS)プロトコルのバージョン1.3のサポートが追加されました。TLSを使用すると、アプリケーションで、メッセージの傍受、改ざんおよび偽造を防止できる方法でデータベースと安全に通信できるようになります。

Oracle Data Provider for .NETリリース21c (21.6.1)での変更点

Oracle Data Provider for .NETリリース21c (21.6.1)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 管理対象ODP.NETおよびODP.NET Core - Oracle Identity and Access Management Cloud Serviceの拡張機能

    ODP.NETは、管理およびコア・ドライバ用のOracleクラウド・サービス全体で統一されたアイデンティティを実現するためのOracle Identity and Access Management (IAM)クラウド・サービスのサポートを追加します。ODP.NETでは、認証および認可に同じOracle IAM資格証明を使用できます。

    この機能により、シングル・サインオンおよびアイデンティティをOracle IAMでサポートされるすべてのサービスに伝播できます。統合されたアイデンティティにより、管理者とエンド・ユーザーにとってユーザー管理とアカウント管理が容易になります。

    管理対象ODP.NETは、トークン認証用のIAMデータベース・パスワード・ベリファイア、トークンおよびデータベース代替パスワードのサポートを追加します。

    ODP.NET Coreには、IAMデータベースのパスワード・ベリファイアおよびトークンがすでにサポートされています。この新しいバージョンでは、ODP.NET Coreでトークン認証用のデータベース代替パスワードが追加されています。

  • ODP.NET Core - マルチプラットフォーム・セキュア外部パスワード・ストア

    安全性の高い外部パスワード・ストア(SEPS)は、パスワードの資格証明を安全に格納するクライアント側ウォレットの使用です。ODP.NET Coreは、Windowsのみでなく、サポートする任意のオペレーティング・システムで外部パスワード・ストアを使用するように構成できるようになりました。

    Oracleウォレットは、認証および署名用資格証明を安全に格納するコンテナです。ウォレットにより、データベース接続をパスワード資格証明に依存する大規模なデプロイメントを簡素化できます。アプリケーションでは、埋込みユーザー名およびパスワードが必要なくなり、これによりセキュリティ・リスクを減らします。

Oracle Data Provider for .NETリリース21c (21.5)での変更点

Oracle Data Provider for .NETリリース21c (21.5)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 管理対象外ODP.NET - 組込みのトラストポイントを使用した一方向のTLS/SSL (ウォレットなし)

    管理対象外ODP.NETでは、ウォレットのない一方向のTransport Layer Security/Secure Sockets Layerがサポートされるようになりました。ウォレットを提供する必要がなければ、Oracle Autonomous Databaseなどのデータベース接続を簡素化できます。

Oracle Data Provider for .NETリリース21c (21.4.1)での変更点

Oracle Data Provider for .NETリリース21c (21.4.1)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • .NET 6ランタイムの動作保証

    ODP.NET Coreは、.NET 6で動作保証されています。

  • Entity Framework Core 6

    ODP.NET Entity Framework (EF) Coreでは、OracleデータベースでのEntity Framework Core 6をサポートするようになりました。Entity Framework Coreは、.NET開発者が.NETオブジェクトを使用してリレーショナル・データベースを使用できるようにするプラットフォーム間Microsoftオブジェクト・リレーショナル・マッパーです。

  • ODP.NET Core - Oracle Identity and Access Management Cloud Service

    ODP.NETは、Oracle Cloud Database Servicesを含むOracleクラウド・サービス(コア・ドライバを含む)全体で統合されたアイデンティティを実現するためのOracle Identity and Access Management (IAM)クラウド・サービスをサポートしています。ODP.NETでは、認証および認可に同じOracle IAM資格証明を使用できます。

    この機能により、シングル・サインオンおよびアイデンティティをOracle IAMでサポートされるすべてのサービスに伝播できます。統合されたアイデンティティにより、管理者とエンド・ユーザーにとってユーザー管理とアカウント管理が容易になります。

Oracle Data Provider for .NETリリース21c (21.4)での変更点

Oracle Data Provider for .NETリリース21c (21.4)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 管理対象ODP.NETおよびODP.NET Core - 組込みのトラストポイントを使用した一方向のTLS/SSL (ウォレットなし)

    ODP.NET Coreおよび管理対象ODP.NETでは、ウォレットなしの一方向のTransport Layer Security/Secure Sockets Layerがサポートされるようになりました。ウォレットを提供する必要がなければ、Oracle Autonomous Databaseなどのデータベース接続を簡素化できます。

  • ODP.NET Core -- UbuntuおよびDebian Linux

    ODP.NET Coreは、追加のLinuxディストリビューション(UbuntuおよびDebian)の認定を追加します。

    関連項目:

    システム要件

Oracle Data Provider for .NETリリース21c (21.3)での変更点

Oracle Data Provider for .NETリリース21c (21.3)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 管理対象ODP.NETおよびODP.NET Core - ユーザー定義タイプ

    ODP.NET Coreおよび管理対象プロバイダは、ユーザー定義型(UDT)をサポートするようになりました。これには、Oracle Collections (VARRAYおよびネストされた表)、Oracle Objectsおよび参照(REF)が含まれます。これらの新しい機能は、既存のODP.NET管理対象外ドライバUDT機能とほぼ同等の機能を提供します。この新しい拡張機能により、管理対象外ODP.NETアプリケーションの大部分を、最小限のコード変更で管理対象ODP.NETまたはODP.NET Coreに簡単に移行できます。

  • OracleConfiguration SqlnetURI設定

    ODP.NET OracleConfiguration SqlnetURIプロパティは、名前がSqlNetURIに変更されています。この設定は、WebSocketユニバーサル・リソース識別子を指定します。変更は、.NETのPascalCasingの大文字小文字に関する規則への準拠の向上を反映しています。プロパティを現在使用している場合は、適宜コードを変更してください。

非推奨となった機能

次のプロパティおよび設定は、Oracle Data Provider for .NET for Release21cで非推奨になりました。

  • OracleConfiguration DirectoryTypeプロパティ

  • 構成ファイルのDIRECTORY_TYPE設定

    OracleConfiguration DirectoryServerTypeプロパティは、DirectoryTypeプロパティを置き換えます。.NET構成ファイルのDIRECTORY_SERVER_TYPE設定によって、DIRECTORY_TYPE設定が置換されます。これらのプロパティはすべて同一の機能を持ちます。開発者は、新しいプロパティを使用して移行することをお薦めします。DirectoryServerTypeおよびDIRECTORY_SERVER_TYPEの名前は、同等の機能を提供するDIRECTORY_SERVER_TYPEよりも、ldap.oraパラメータに合わせて調整されています。

  • Oracle Database Extensions for .NETの非推奨

関連項目:

Oracle Database Extensions for .NETの非推奨

Oracle Database Extensions for .NETはOracle Database 21cでは非推奨になりました。.NETコードを中間層に配置するか、外部プロシージャ機能を使用するか、PL/SQLまたはJavaを使用してコードを書きなおすことをお薦めします。

日付: 2021年9月

Oracle Database Extensions for .NETは、Microsoft Windows上のOracle Databaseの機能であり、これを使用すると.NETで管理されるC#などの言語で記述されたストアド・プロシージャおよびファンクションを使用できます。

Oracle Databaseは、Oracle Databaseプロセスの外にある外部プロセス内で、Microsoft Common Language Runtime(CLR)をホストします。アプリケーション開発者は、C#やVB.NETなど、任意の.NET準拠言語を使用してストアド・プロシージャおよびファンクションを記述し、これらの.NETストアド・プロシージャを他のPL/SQLまたはJavaストアド・プロシージャと同様にデータベースで使用できます。.NETストアド・プロシージャは、PL/SQLパッケージ、プロシージャ、ファンクションおよびトリガーから、SQL文からでも、またはPL/SQLプロシージャやファンクションをコールできる場所であればどこからでもコールできます。

次の移行オプションがあります。

  • 中間層への.NETコード(アセンブリ)の移動
  • 外部プロシージャ機能を使用した、.NETアセンブリ外部プロセスのロードと実行
  • PL/SQLまたはJavaを使用したストアド・プロシージャの書きなおし

Oracle Data Provider for .NET (21.1)での変更点

Oracle Data Provider for .NET (21.1)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • Entity Framework Core 5

    ODP.NET Entity Framework (EF) Coreでは、OracleデータベースでのEntity Framework Core 5をサポートするようになりました。Entity Framework Coreは、.NET開発者が.NETオブジェクトを使用してリレーショナル・データベースを使用できるようにするプラットフォーム間Microsoftオブジェクト・リレーショナル・マッパーです。

  • Oracle Database JSONデータ型

    ODP.NETは、Oracle DatabaseのネイティブJavaScript Object Notation (JSON)データ型をサポートします。新しいJSONデータ型は、問合せおよびDML処理用に最適化されており、JSONの処理でデータベースのパフォーマンスが向上します。

    .NET文字列またはOracleStringを使用するとき、JSONデータ型はOracleDbType.Json列挙値を使用してパラメータとしてバインドできます。ODP.NET Core、管理対象、管理対象外はすべて、これらの新しいJSON機能をサポートしています。

  • クライアント開始の連続問合せ通知

    クライアント開始の連続問合せ通知(CICQN)は、ODP.NETで使用可能な従来の連続問合せ通知(CQN)機能と似ています。CQNでは、クライアントの問合せ結果セット、基礎となるスキーマ・オブジェクト、またはデータベースの状態に影響を与えるサーバー側の変更が発生すると、アプリケーションはクライアント側の通知を受け取ります。この通知はプロセス外であり、既存のODP.NET接続なしで発生します。

    CICQNでは、プロセス内通知が使用されます。ODP.NETでは、通知を受信するためにプールごとに1つの個別の接続が作成されます。データベース・サーバーは、この特定の接続を使用して、変更通知をODP.NETに送信します。CICQNは、クラウド・デプロイメントなど、クライアントとデータベース・サーバー間でプロセス外通信を使用できない場合に便利です。

  • 管理対象ODP.NETおよびODP.NET Core – Oracle Globally Distributed Database

    ODP.NET Coreおよび管理対象プロバイダがシャーディングをサポートするようになりました。Oracle Globally Distributed Databaseでは、独立した複数のOracleデータベース(シャード)間で水平パーティション化が可能です。接続文字列で指定されたキーに基づいて、ODP.NETはデータベース・リクエストを特定のシャードにルーティングできます。Oracle Globally Distributed Databaseは、シェアードナッシング・アーキテクチャであり、ローカルまたはグローバルな1つ以上のデータ・センターに配置された低コストのコモディティ・データベース・サーバー間で、データベースをリニアにスケールできます。そのほかにも、データ分散(特定のデータをコンシューマの近くに格納する)、障害の封じ込め(1つのシャードで障害が発生しても他のシャードの可用性には影響しない)といったメリットがあります。Global Data Servicesが、シャード間でデータの場所をメッセージ送信するので、ODP.NETのクライアント・リクエストはこの分散データベース・システムで適切なシャードにルーティングすることができます。

    管理対象外ODP.NETがサポートするのと同じシャーディング機能に加えて、ODP.NET管理対象およびコアは、チャンク移行中の接続リクエストの一時停止もサポートします。チャンクの移行でシャード間を移動するのに十分な時間を与えないと、ユーザーはタイムアウトに気が付きません。

  • 新しい管理権限

    ODP.NETでは、データベース管理職務の分離を可能にするために、タスク固有で最小限の管理権限の割当がサポートされるようになりました。新しく追加された権限には、バックアップとリカバリ用のSYSBACKUP、Oracle Data Guard用のSYSDG、暗号化キー管理用のSYSKM、Oracle Real Applications Clusters操作用のSYSRACが含まれます。コア、管理対象および管理対象外ODP.NETでは、これらすべての管理権限がサポートされます。

    関連項目:

    OracleDBAPrivilege列挙

  • 管理対象ODP.NETおよびODP.NET Core -- デバッグ・トレースのリダクション

    管理対象ODP.NETおよびODP.NET Coreでは新しいトレース・レベルが導入され、SQL文およびネットワーク・パケットの内容がトレース・ファイルに含まれないように除外できます。

Oracle Data Provider for .NET (19.16)での変更点

Oracle Data Provider for .NET (19.16)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 管理対象ODP.NETおよびODP.NET Core -- Transport Layer Security 1.3

    管理対象ODP.NETおよびODP.NET Coreでは、Transport Layer Security (TLS)プロトコルのバージョン1.3のサポートが追加されました。TLSを使用すると、アプリケーションで、メッセージの傍受、改ざんおよび偽造を防止できる方法でデータベースと安全に通信できるようになります。

Oracle Data Provider for .NET (19.15.1)での変更点

Oracle Data Provider for .NET (19.15.1)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • Azure Active Directory

    ODP.NET 21.7および19.15.1以降、ODP.NETはOracle Databaseへの接続時にAzure Active Directory (AAD)認証をサポートしています。ODP.NETは、ユーザー名とパスワードのかわりにアクセス・トークンを使用して認証するようになります。

    この機能は、Oracleデータベースで一元化されたユーザー認証にAADを使用するアプリケーションおよびサービスに役立ちます。これらのサービスには、ユーザー管理のためにAADに依存するAzureやMicrosoft 365ベースのクラウド・サービス(Microsoft Power BIサービスなど)を含めることができます。

    トークン・ベース認証の使用は、エンド・ユーザーにとってより安全で簡単です。ユーザーがリソースにアクセスするたびに資格証明を指定する必要はありません。さらに、リソースは個々のユーザー資格証明を処理および管理する必要がありません。

    関連項目:

    Microsoft Entra IDの使用

Oracle Data Provider for .NET (19.10)での変更点

Oracle Data Provider for .NET (19.10)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • .NET 5ランタイムの動作保証

    ODP.NET Coreは、.NET 5で動作保証されています。

  • 管理対象ODP.NETおよびODP.NET Core -- 一括コピー

    ODP.NET一括コピーを使用すると、アプリケーションではあるデータベースの表から異なるデータベースの別の表に大量のデータを効率よくロードできます。管理対象ODP.NETおよびODP.NET Coreでは、一括コピーとそのすべてのAPIがサポートされるようになりました。

    ODP.NET一括コピーは、大規模なデータ・セットを表にロードしたり、様々なデータベースのデータベース表間でロードする必要がある場合に、最も最適化された.NETソリューションです。

    関連項目:

    一括コピー

  • DataSetおよびDataTableへのOracleプロバイダ・タイプのデシリアライゼーション

    アプリケーション・セキュリティを強化するためにすべての.NETバージョンが変更されたため、許可されたデシリアライズ可能なDataSetおよびDataTableデータ型が制限されるようになりました。この変更は、.NET 5、.NET Core、および新しい更新を使用する.NET Frameworkに適用されます。アプリケーションDataSetsおよびDataTablesがこれらの新しい.NETバージョンのいずれかでODP.NETデータ型を使用している場合、ODP.NETタイプ・イニシャライザ例外が発生する可能性があります。この例外を回避するには、開発者はODP.NET固有のデータ型を許可リストに追加して、DataSetまたはDataTableへのデシリアライゼーションを許可できます。

    これを行うには、OracleConfiguration AddOracleTypesDeserializationメソッドをコールするか、.NET構成ファイルを介してタイプを個別に追加します。

  • ODP.NET Core -- Windows以外のプラットフォーム上のKeepAlive

    KeepAliveは、Oracle LinuxなどのWindows以外のオペレーティングシステムでサポートされています。以前のリリースのODP.NET Coreでは、これらのKeepAliveプロパティはWindowsプラットフォームでのみサポートされていました。プロパティには、KeepAliveKeepAliveIntervalおよびKeepAliveTimeが含まれます。

    KeepAliveは、ファイアウォールやロード・バランサなどによってアイドル状態のTCP接続がクローズされるのを防ぐために使用されます。一部のクラウド・デプロイメントでは、このアイドル状態のTCP接続タイムアウトは変更できません。KeepAliveは、データを含まないプローブ・パケットを定期的に送信し、ACKフラグをオンにすることによって、接続を存続します。

  • GetDecimal無効キャスト例外の抑制

    SuppressGetDecimalInvalidCastExceptionプロパティは、OracleDataReaderおよびOracleDataAdapterクラスに追加されました。有効にして、GetDecimalがアプリケーションによって明示的にOracleDataReaderオブジェクトに対してコールされるか、たとえばOracleDataAdapterオブジェクトのFill()メソッドを介して暗黙的にコールされた場合、InvalidCastExceptionを抑制し、Oracle NUMBERを表す28または29の精度に四捨五入された.NET Decimal値を返します。

  • ODP.NET Core -- Windows以外のプラットフォーム用のLDAP

    ODP.NET Coreでは、Oracle LinuxやRed Hat Enterprise Linuxなど、プロバイダがサポートするすべてのWindows以外のオペレーティング・システムからLDAP準拠ディレクトリ・サーバーの接続記述子にマップされたネット・サービス名での接続がサポートされるようになりました。すべてのプラットフォーム上のODP.NET Coreアプリケーションは、LDAP認証を使用してOracle Databaseに接続できるようになりました。

Oracle Data Provider for .NET (19.9)での変更点

Oracle Data Provider for .NET (19.9)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • インバンド高速アプリケーション通知

    クラウド・デプロイメントや、ファイアウォールがデータベースとクライアント間の通知メッセージをブロックする場合など、一部のシナリオではアウト・オブ・バンド・メッセージやOracle Notification Serviceの使用が不可能な場合があります。これらのシナリオでは、ODP.NETはかわりにインバンドFAN通知を使用できます。インバンド通知は、既存のODP.NET接続に依存してメッセージを通信します。ODP.NETは、接続がデータベース・ラウンドトリップするたび、チェックインまたはチェックアウトするたびに通知をチェックします。DOWN通知を受信すると、ODP.NETは影響を受ける接続をプールでスキャンし、それらをクローズします。

    この機能は、19.9で管理対象ODP.NETおよびODP.NET Coreに導入されました。これは19.10で管理対象外ODP.NETに導入されました。

Oracle Data Provider for .NET ODACリリース19c (19.3.2)での変更点

ODAC 19c (19.3.2)のOracle Data Provider for .NETでの変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • Entity Framework Core 3.1

    ODP.NET Entity Framework (EF) Coreでは、OracleデータベースでのEntity Framework Core 3.1をサポートするようになりました。Entity Framework Coreは、.NET開発者が.NETオブジェクトを使用してリレーショナル・データベースを使用できるようにするプラットフォーム間Microsoftオブジェクト・リレーショナル・マッパーです。ODP.NET EF Coreのこのリリースでは、リレーショナル・ビューおよびマテリアライズド・ビューのサポートが追加されました。これらのビューは、読取り専用または更新可能にすることができます。

    Oracle EF Core 3.1開発者は、Oracle Databaseでデータ・モデルを作成および移行できるようになりました。Oracle Databaseスキーマ・オブジェクトに基づいて、EF Coreクラスをスキャフォールドできます。Oracleビューを使用して移行およびスキャフォールドできます。Oracle EF Coreは、EF Coreパッケージ・マネージャ・ツールなど一般的なEF Coreツールと統合されています。

Oracle Data Provider for .NET (19.7)での変更点

Oracle Data Provider for .NET (19.7)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • 管理対象ODP.NETおよびODP.NET Core -- SYSASM権限を使用したストレージの管理

    Oracle Automatic Storage Management (Oracle ASM)はボリューム・マネージャであり、Oracleデータベース・ファイル用のファイル・システムです。SYSASMは、管理者がASMインスタンスを管理できるシステム権限です。管理対象ODP.NETおよびODP.NET Coreは、SYSASM管理権限を使用して接続し、Oracle Databaseのストレージ管理を実行できるようになりました。

    ODP.NETでは、SYSASM権限接続を使用して接続するときに、データベースASM管理を実行できるようになりました。

    関連項目:

    OracleDBAPrivilege列挙

  • WebSocketおよびSSL/TLSを使用したWebSocket

    WebSocketは、単一のTCP接続を介して全二重通信チャネルを提供するプロトコルです。SSL/TLSを使用したWebSocketは、セキュアなWebSocket接続を提供します。WebSocketはHTTPの拡張機能であり、HTTPプロキシおよび仲介サービスと連携できます。ODP.NET Core、管理対象プロバイダおよび管理対象外プロバイダはいずれも、WebSocketおよびセキュアなWebSocketプロトコルをサポートしています。

    関連項目:

    WebSocketの使用

Oracle Data Provider for .NET (19.6)での変更点

Oracle Data Provider for .NET (19.6)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • .NET Core 3.1の動作保証

    ODP.NET Coreは、.NET Core 3.1で動作保証されています。

  • Linux 8の動作保証

    ODP.NET Coreは、Oracle Linux 8およびRed Hat Enterprise Linux 8で動作保証されています。

  • Entity Framework 6.4の動作保証

    管理対象および管理対象外のODP.NET Entity Frameworkは、Entity Framework 6.4で動作保証されています。

Oracle Data Provider for .NET (19.5)での変更点

Oracle Data Provider for .NET (19.5)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • .NET Core 3の動作保証

    ODP.NET Coreは、.NET Core 3で動作保証されています。

  • Entity Framework Core 2.1の動作保証

    ODP.NET Entity Framework Coreは、EF Core 2.1で動作保証されています。

ODACリリース19c (19.3)内のOracle Data Provider for .NETでの変更点

ODAC 19c (19.3)のOracle Data Provider for .NETでの変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • Entity Framework Core

    ODP.NET Entity Framework (EF) Coreは、Entity Framework CoreをOracleデータベースで使用できるデータベース・プロバイダです。Entity Framework Coreは、.NET開発者が.NETオブジェクトを使用してリレーショナル・データベースを使用できるようにするプラットフォーム間Microsoftオブジェクト・リレーショナル・マッパーです。

    Oracle EF Coreの開発者は、Oracle Databaseでデータ・モデルを作成および移行できるようになりました。Oracle Databaseスキーマに基づいて、EF Coreクラスをリバース・エンジニア/スキャフォールドできます。Oracle EF Coreは、EF Coreパッケージ・マネージャ・ツールなど一般的なEF Coreツールと統合されています。

  • 管理対象ODP.NETおよびODP.NET Core -- 新規のOracleConnectionプロパティへの構成オプションの追加

    OracleConnectionクラスでは、ODP.NET接続を構成するための追加プロパティが導入されました。新しいプロパティは次のとおりです。

    • KeepAliveKeepAliveIntervalおよびKeepAliveTime - アイドル状態の接続を維持するかどうか、およびその条件を指定します。

    • TnsAdmin - tnsnames.ora およびsqlnet.oraディレクトリを指定します。

    • WalletLocation - ウォレット・ディレクトリの場所を指定します。

  • 管理対象外ODP.NET -- SYSASM権限を使用したストレージの管理

    Oracle Automatic Storage Management (Oracle ASM)はボリューム・マネージャであり、Oracleデータベース・ファイル用のファイル・システムです。SYSASMは、管理者がASMインスタンスを管理できるシステム権限です。管理対象外ODP.NETは、SYSASM管理権限を使用して接続し、Oracle Databaseのストレージ管理を実行できるようになりました。

    ODP.NETでは、SYSASM権限接続を使用して接続するときに、データベースASM管理を実行できるようになりました。

  • 動的に有効にされるトレースおよびサイズ制限

    診断の使いやすさと生産性を向上させるために、OracleConfiguration.TraceLevelプロパティを使用してODP.NETトレース出力を実行時に有効および無効にできるようになりました。トレース・ファイルを管理可能なサイズに抑えるために、TraceFileMaxSizeプロパティを設定できます。

    管理者は、問題が発生した既知の時間またはイベントのみにトレースを分離できます。この機能は、問題の調査に必要な最小サイズまでトレース・ファイルを抑えるのに役立ちます。トレース・ファイルが大きくなった場合、ODP.NETでは、TraceFileMaxSizeに設定されている最大ファイル制限に達すると、新しいトレース・ファイルに書き込みます。これらの機能は、コア、管理対象および管理対象外のプロバイダで使用できます。

Oracle Data Provider for .NETリリース19c (19.3)での変更点

Oracle Data Provider for .NETリリース19c (19.3)での変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

  • .NET Framework 4.8認定

    ODP.NET Core、管理対象ドライバおよび管理対象外ドライバは、.NET Framework 4.8を使用して認定されています。

  • ODP.NET管理対象ドライバ -- コードとしての構成

    管理対象ODP.NETでは、OracleConfigurationOracleDataSourceCollectionおよびOracleOnsServerCollectionクラスがサポートされるようになりました。

    開発者はこれらのクラスを使用して、.NET構成やOracle構成ファイルのかわりにソース・コード内で管理対象ODP.NETを構成できます。

  • ODP.NETコア-- Lightweight Directory Access Protocol (LDAP)

    ODP.NETコアは、Oracle Internet DirectoryやMicrosoft Active DirectoryなどのLDAP準拠ディレクトリ・サーバーに含まれる接続記述子にマップされる接続識別子を使用できます。プロバイダは、管理対象ODP.NETと同じLDAP機能および設定をサポートします。

    ODP.NETコアLDAPのサポートは、Windowsオペレーティング・システムでのみ使用できます。

  • ODP.NETコア--パフォーマンス・カウンタ

    ODP.NETコアは、主要なランタイム接続カウンタをWindows Performance Monitorまたはファイルに公開できます。プロバイダは、管理対象および管理対象外ODP.NETと同じカウンタ、設定プロセスおよび設定をサポートします。

    ODP.NETコア・パフォーマンス・カウンタは、Windowsオペレーティング・システムでのみ使用できます。プログラム的にパフォーマンス・カウンタを使用するには、System.Diagnosticsネームスペースが必要です。

  • 簡易接続プラス

    Oracle簡易接続プラスでは、tnsnames.oraなどのパラメータ・ファイルや環境変数を使用せずに、Oracle DatabaseへのTCP/IP接続を簡単に構成できます。簡易接続プラスに含まれるサポートは、次のとおりです。

    • SSL/TLS付きTCP/IP/

    • 任意のSQL*Net記述レベル・パラメータを使用可能

    • 複数のホストおよびポート

    • 名前/値ペアのわかりやすい書式

    簡易接続プラスは、クラスタ・データベースやクラウド・データベースなど、従来の簡易接続よりも広範にODP.NETアプリケーションの構成をサポートします。

  • よりセキュアな Oracle Notification Service接続

    ODP.NETでは、SSL/TLS (TCPS)付きTCP/IPを介したOracle Notification Service (ONS)通信が可能になりました。これはTCP/IPのみの場合より安全です。TCPSではキーおよび証明書の格納にウォレットを使用する必要があるため、ODP.NETは、ONSとODP.NETの両方の接続に1つのウォレットを使用することも、それぞれに個別のウォレットを使用することもできます。

    TCPSでは、よりセキュアなONS通信が提供され、管理者はウォレットの構成を柔軟に行うことができ、クラウド・データベース接続が可能になります。