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

この章の内容は次のとおりです。

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

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

新機能

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

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

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

新機能

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

  • .NET Framework 4.7.x認定

    ODP.NET管理対象ドライバおよび管理対象外ドライバは、.NET Framework 4.7.xのすべてのバージョン(4.7.1および4.7.2を含む)に対応することが認定されています。

  • OracleCredentialを使用した安全なパスワード

    ODP.NETのOracleCredentialクラスにより、アプリケーション開発者は、メモリー・ダンプに公開せずにユーザー名とパスワードを接続文字列の外部に格納できます。

    OracleCredentialは、接続プーリングの有無にかかわらず使用できます。

    この機能は、ODP.NET 11.2、12.1および12.2の最終リリース、およびODP.NET 18cの最初のリリースで使用できます。

    OracleCredentialでの接続プーリングも参照

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

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

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

  • Oracle.ManagedDataAccessDTC.dll

ODAC 12.2cリリース1内のOracle Data Provider for .NETでの変更点

ODAC 12.2cリリース1のOracle Data Provider for .NETでの変更点は次のとおりです。

新機能

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

  • .NET Framework 4.7認定

    ODP.NET、管理対象ドライバと管理対象外ドライバは、.NET Framework 4.7に対応することが認定されています。

  • Entity Framework 6.2認定

    ODP.NET管理対象ドライバと管理対象外ドライバは、Entity Framework 6.2に対応することが認定されています。

  • データベース常駐接続プーリング

    データベース常駐の接続プール(DRCP)は、データベース・サーバー・レベルで接続をプールすることでリソース使用率を最適化します。DRCPを使用すると、特に接続が常に使用されているわけではないケースにおいて、異なるクライアント・マシンで実行されるアプリケーション間でサーバー接続を共有できます。DRCPは管理対象または管理対象外ODP.NETクライアント側のプーリングと組み合せて使用して、スケーラビリティを向上させ、データベース・サーバー・レベルでリソース使用率を低下させることができます。

    詳細は、「データベース常駐接続プーリング」も参照してください。

  • マルチテナントおよびプラガブル・データベース接続プーリング

    Oracle Multitenantは、顧客がアプリケーションを変更することなく、複数のプラガブル・データベースを簡単に統合できるデータベース・アーキテクチャです。このアーキテクチャにより、多数のデータベースを1つのデータベースとして管理する利点をすべて提供しつつ、別々のデータベースの独立性およびリソース優先度付けを維持します。

    管理対象および管理対象外ODP.NETは、同じ接続プールから複数のプラガブル・データベースへ接続をホストすることをサポートするようになりました。この機能により、アプリケーションのパフォーマンスおよびスケーラビリティが向上し、同じアプリケーションから複数のプラガブル・データベースを簡単に使用できるようになります。

    詳細は、「Oracleマルチテナントおよびプラガブル・データベース」も参照してください。

  • エディションベースの再定義接続プーリング

    エディションベースの再定義を利用すると、アプリケーションが使用中のデータベース・コンポーネントをそのままアップグレードして、ダウンタイムを最小限に抑えたり、なくすことができます。管理対象および管理対象外ODP.NETでは、同じ接続プールを使用して複数のエディションに接続できるようになりました。この機能により、同じアプリケーションの異なるエディションを使用する際のパフォーマンスおよびスケーラビリティが向上し、同じアプリケーションの複数のエディションを簡単に使用できるようになります。

    詳細は、「エディションベースの再定義」も参照してください。

  • オープン時の接続構成

    管理対象および管理対象外ODP.NETは、ConnectionOpenイベント・ハンドラを導入します。これにより、ODP.NETがOpen()メソッドの呼出しから接続される前に開発者は設定ロジックを提供し、設定を変更できます。この機能は、概念的にはログオン・トリガーと似ていますが、クライアント側の初期設定に最適です。プールされている接続とプールされていない接続の両方で動作します。イベント・ハンドラは、接続の初期化のための一元的な標準化された場所を提供します。

    詳細は、ConnectionOpenも参照してください。

非推奨となった機能

次の機能は、ODAC 12.2c リリース1で非推奨となりました。

  • Oracle.ManagedDataAccessDTC.dll

    Oracleは、Oracle.ManagedDataAccessDTC.dllを使用するODP.NET管理対象ドライバについて、ネイティブの管理対象分散トランザクション・サポートを提供していました。.NET Framework 4.5.2で、Microsoft社は、管理対象ODP.NETで使用できる、独自のネイティブ管理対象分散トランザクション実装を導入しました。新しい.NET Frameworkでは、Oracle.ManagedDataAccessDTC.dllは不要になりました。さらに、Microsoft社では、4.5.2より前のすべての.NET Framework 4バージョンがサポートされなくなりました。Microsoft社の方針に従い、Oracleでは、Oracle.ManagedDataAccessDTC.dllファイルは非推奨となっています。

    この非推奨は、UseManagedDTC .NET構成ファイル・パラメータとOracle.ManagedDataAccessDTC.dllにおよびます。

関連項目:

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

Oracle Data Provider for .NETリリース12.2.0.1での変更点は次のとおりです。

新機能

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

  • .NET Framework 4.6.2認定

    ODP.NET、管理対象ドライバと管理対象外ドライバは、.NET Framework 4.6.2に対応することが認定されています。

    詳細は、「システム要件」も参照してください。

  • .NETクラウドの開発およびデプロイメント

    Webデプロイによって、Oracle Cloud、プライベート・クラウドおよびサード・パーティのクラウド環境に、ODP.NET管理対象ドライバとODP.NET管理対象外ドライバを簡単にデプロイできます。ODP.NET固有のすべての設定では、オペレーティング・システム・レベルの構成は必要なくなりました。このような設定は、.NET構成ファイルで行うことができます。管理対象および管理対象外のODP.NETでは、統合構成ファイル形式を共有できるようになりました。

  • アプリケーション・コンティニュイティ

    アプリケーション・コンティニュイティは、ODP.NET管理対象外ドライバの観点から不完全な要求をリカバリし、システム、通信、ハードウェアの多くの障害および記憶域の停止をユーザーからマスクします。

    詳細は、アプリケーション・コンティニュイティも参照してください。

  • シャーディングとODP.NETルーティング

    リリース12.2.0.1から、ODP.NET管理対象外ドライバとOracle Databaseはシャーディングをサポートします。Oracle Shardingでは、独立した複数のOracleデータベース(シャード)間で水平パーティション化が可能です。接続文字列で指定されたキーに基づいて、ODP.NETはデータベース・リクエストを特定のシャードにルーティングできます。

    Oracle Shardingは、シェアードナッシング・アーキテクチャであり、ローカルまたはグローバルな1つ以上のデータ・センターに配置した低コストのコモディティ・データベース・サーバー間で、データベースをほぼリニアにスケールできます。そのほかにも、データ分散(特定のデータをコンシューマの近くに格納する)、障害の封じ込め(1つのシャードで障害が発生しても他のシャードの可用性には影響しない)といったメリットがあります。Global Data Servicesが、シャード間でデータの場所をメッセージ送信するので、ODP.NETのクライアント・リクエストはこの分散データベース・システムで適切なシャードにルーティングすることができます。

    詳細は、データベース・シャーディングも参照してください。

  • 長いスキーマ識別子

    Oracle Data Provider for .NETは、128文字までの長さのスキーマ・オブジェクト識別子名(表、列、ビュー、ストアド・プロシージャおよびファンクションなど)をサポートするようになりました。この機能は、ODP.NET管理対象ドライバと管理対象外ドライバの両方で使用できます。

  • ODP.NET管理対象ドライバ - データの整合性

    ODP.NET管理対象ドライバは、データベース・サーバーとクライアントの間でデータの整合性を確実に保証するために、暗号ハッシュ関数をサポートしています。サポートされるアルゴリズムは、MD5SHA-1SHA-2 (SHA-256SHA-384SHA-512)などです。

    詳細は、settingsセクションおよびネットワーク・データ暗号化および整合性を参照してください。

  • ODP.NET管理対象ドライバ - Transport Layer Security (TLS)

    ODP.NET管理対象ドライバには、TLS 1.0とSSL 3.0に対する従来のサポートに加えて、TLS 1.1および1.2のサポートも追加されました。

  • ODP.NET管理対象ドライバ - SSL/TLSの識別名

    ODP.NET管理対象ドライバ接続でSSL/TLSを使用すると、接続しようとしているデータベース・サーバーの識別名(DN)が正しいことを保証できます。

  • ODP.NET管理対象ドライバ - ブール・データ型

    ODP.NET管理対象ドライバは、データベースのPL/SQL Booleanデータ型を使用するとき、OracleBooleanデータ型もサポートするようになりました。管理対象ドライバは、Oracle Database 12cリリース2 (12.2)以上に接続する必要があります。ブール演算によってTRUEまたはFALSEの値が格納されます。

    ODP.NETのOracleBooleanデータ型を使用して、ブール値のパラメータ・バインドおよびデータ型マッピングを簡単に設定できます。

    詳細は、OracleBoolean構造も参照してください。

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

このドキュメントに記載されていた一部の機能は、Oracle Database 12cリリース2 (12.2)ではサポート対象外になります。このリリースでサポートされていない機能の完全なリストは、『Oracle Databaseアップグレード・ガイド』を参照してください。

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

  • OracleLogicalTransactionStatusクラス

  • OracleConnection.GetLogicalTransactionStatusメソッド

  • OracleConnection.LogicalTransactionIdプロパティ

  • OracleConnection.OracleLogicalTransactionプロパティ

  • OracleLogicalTransaction.DataSourceプロパティ

  • OracleLogicalTransaction.GetOutcome()メソッド

  • OracleLogicalTransaction.GetOutcome(sting, string, string) method

  • OracleLogicalTransaction.UserIdプロパティ

ODAC 12cリリース4内のOracle Data Provider for .NETでの変更点

ODAC 12cリリース4のOracle Data Provider for .NETでの変更点は次のとおりです。

新機能

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

  • .NET Framework 4.6および4.6.1認定

    ODP.NET管理対象ドライバと管理対象外ドライバは、.NET Framework 4.6および4.6.1に対応することが認定されています。

    詳細は、システム要件も参照してください。

  • ODP.NET管理対象ドライバ - Windowsインストーラ

    ODP.NET管理対象ドライバはODAC Microsoft Windowsインストーラ・パッケージの一部として入手できます。

  • ODP.NET管理対象ドライバ - ネットワーク・データ暗号化

    ODP.NET管理対象ドライバは、Advanced Encryption Standard (AES)、RC4またはTriple-DESを使用してデータベース・セキュリティ・ネットワーク・データ暗号化をサポートし、イントラネット・アクセスおよびクラウド・アクセス上に安全なデータベース通信を実現します。

    詳細は、settingsセクションおよびネットワーク・データ暗号化および整合性を参照してください。

  • ODP.NET管理対象ドライバ - 安全な外部パスワード・ストア

    ODP.NET管理対象ドライバは、クライアント側のOracleウォレットからパスワード資格証明を取得することで接続の確立をサポートします。

    詳細は、外部パスワード・ストアの使用も参照してください。

  • ODP.NET管理対象ドライバ - Microsoft Local Security Authority (MSLSA)

    ODP.NET管理対象ドライバはKerberos資格証明キャッシュ・タイプMSLSAをサポートするようになりました。MSLSAはMicrosoft Kerberos Logon Session資格証明キャッシュのアクセスに使用します。

    詳細は、Kerberosの使用も参照してください。

  • ODP.NET管理対象ドライバ - SSL/TLS接続は単一ポートを使用します

    ODP.NET管理対象ドライバSSL/TLS接続では、動的(エフェメラル)ポートでデータベース・サーバーが作成した新しいリスニング・エンドポイントへの前回のSSL/TLSクライアント・リダイレクションに代わって、データベース・リスナーに対する元の接続を続けます。したがって、ファイアウォールで必要なのはTNS Listenerのポートに対するアクセスのみです。たとえば、1521です。

    詳細は、Transport Layer SecurityとSecure Sockets Layerの使用も参照してください。

  • サービス再配置接続タイムアウト

    データベース・サービスが使用できなくなるたびに、アプリケーションでは数多くの接続エラーが発生します。使用できないサービスへの接続の試行を避けるために、ODP.NET管理対象ドライバおよび管理対象外ドライバでは、サービスが起動されるか、またはサービスの停止イベントを受け取ってから設定された時間制限で切れるまであらゆる接続の試行をブロックします。この機能は計画停止およびサービスの再配置に有用です。Oracle RACとOracle Data Guardで動作します。

    詳細は、ServiceRelocationConnectionTimeoutを参照してください。

  • ODP.NET管理対象外ドライバ - トランザクション・ガード

    トランザクション・ガードを使用すると、計画済および計画外の停止時や送信が繰り返された場合に、ODP.NETアプリケーションで実行を1回以下にすることができます。この機能のアーキテクチャはトランザクションのリカバリに必要なアプリケーション・コードを簡素化するために変更されました。開発者は、アプリケーション内でトランザクション・ガードを使用する方が簡単だと感じるでしょう。

    詳細は、論理破損を防ぐためのトランザクション・ガードの使用も参照してください。

  • ODP.NET管理対象ドライバ - トランザクション・ガード

    ODP.NET管理対象ドライバはトランザクション・ガードをサポートするようになりました。APIとアーキテクチャは、ODAC 12cリリース4のODP.NET対象外ドライバと同じで、開発者の生産性を向上します。

    詳細は、論理破損を防ぐためのトランザクション・ガードの使用も参照してください。

  • ODP.NET管理対象外ドライバ - 分散トランザクションの管理対象コード

    .NET Framework 4.5.2以上では、Microsoft分散トランザクション・コーディネータを使用して、ODP.NET管理対象外ドライバに分散トランザクション登録およびコミットメント・サービスの管理対象コードが含まれます。以前は、これらのサービスのOracle Services for Microsoft Transaction Serverを使用して、アプリケーションを使用する必要がありました。この新しい機能は、分散トランザクションを使用するODP.NET管理対象外ドライバ・アプリケーションの設定およびデプロイメントを簡素化します。

    詳細は、分散トランザクションも参照してください。

  • ODP.NET管理対象外ドライバ - SQL翻訳フレームワーク

    SQL翻訳フレームワークはOracle Database 12cで導入され、ベンダー固有の構文のSQL文を使用する.NETクライアント・アプリケーションから意味的に同等のOracleの構文への移行をサポートします。

    フレームワークは、Oracle以外のSQLをOracle SQLに自動的に翻訳するため、既存のクライアント側アプリケーション・コードをOracle Databaseに対して大部分は変更することなく実行できます。このため、Oracle Databaseへの移行コストが大幅に削減されます。

    詳細は、Databaseへのアプリケーション移行: SQL翻訳フレームワークおよびSQL翻訳フレームワークの構成を参照してください。

  • 拡張の追跡

    ODP.NETは、管理対象ODP.NETと管理対象外ODP.NETの間の追跡機能を改善し、統合します。トレースを含む主要な機能では、Windows一時ファイル・ディレクトリに出力するようになり、両方のプロバイダが同じトレース・パラメータを使用します。

    詳細は、デバッグ・トレースも参照してください。

ODAC 12cリリース3内のOracle Data Provider for .NETでの変更点

ODAC 12cリリース3のOracle Data Provider for .NETでの変更点は次のとおりです。

新機能

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

  • Entity Framework Code FirstおよびCode First Migrations

    Entity Framework 6以上では、管理対象ODP.NETおよび管理対象外ODP.NETは、Code FirstおよびCode First Migrationsをサポートします。

    詳細は、ADO.NET Entity FrameworkおよびLINQ to Entitiesも参照してください。

  • Entity Framework 6

    ODP.NET管理対象ドライバと管理対象外ドライバはネイティブにEntity Frameworkバージョン6で認定されサポートされています。

    詳細は、Entity Frameworkの要件も参照してください。

  • NuGet

    ODP.NET管理対象ドライバはNuGetパッケージで入手できます。この機能は、カスタマイズされたODP.NET管理対象ドライバの開発者への配布を簡素化します。

    Code FirstおよびEntity Framework 6用のEntity Frameworkアセンブリは、別のNuGetパッケージとして入手できます。

    NuGetはMicrosoft .NETのパッケージ・マネージャです。NuGetは、参照を追加して構成ファイルを更新することで、ライブラリ・ファイルを.NETソリューションにコピーし、それに応じてプロジェクトを自動的に更新し、ソフトウェアをインストールできます。

    詳細は、Oracle Data Provider for .NET管理対象ドライバのインストールも参照してください。

  • ODP.NET管理対象ドライバ - XML DB API

    ODP.NET管理対象ドライバは、ODP.NET管理対象外ドライバによってサポートされているすべてのODP.NETのXMLクラスをサポートするようになりました。

  • Oracle.ManagedDataAccessDTC.dllのない分散トランザクション

    Oracle.ManagedDataAccessDTC.dllアセンブリは、.NET Framework 4.5.2以上およびODP.NET管理対象ドライバで実行している分散トランザクション・アプリケーションで必要なくなりました。ODP.NETインストールにおいて、Oracle.ManagedDataAccessDTC.dll はグローバル・アセンブリ・キャッシュ(GAC)に含まれなくなりました。.NET Framework 4.5.1以前を使用するアプリケーションでは、Oracle.ManagedDataAccessDTC.dllはアプリケーション・ディレクトリまたはGACに置く必要があります。

  • ODP.NET管理対象ドライバ - Kerberos

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

    詳細は、Kerberosの使用も参照してください。

  • ODP.NET管理対象ドライバ - 暗黙的なREF CURSOR

    ODP.NET管理対象ドライバは新しいOracle Database 12cの暗黙的なREF CURSORのサポートを導入しました。構成は、<implicitrefcursor> .NET構成セクションを使用して発生します。データベースの暗黙的なREF CURSORを使用している際には、bindInfo要素を「暗黙的」のモードで指定してください。

    <bindinfo mode="Implicit" /> 
    

    詳細は、implicitRefCursorセクションも参照してください。

  • 構成ファイル: 統一管理対象および管理対象外ODP.NET形式

    ODP.NET管理対象外ドライバは、ODP.NET管理対象ドライバと同じ構成ファイル形式を使用するオプションがあります。この形式は単一の統合スキームを使用することで構成を簡素化します。この形式を使用するには、既存の管理対象外ODP.NET構成セクションの名前を<oracle.dataaccess.client>から<oracle.unmanageddataaccess.client>に変更してください。既存の管理対象外ODP.NET要素および値が、ODP.NET管理対象ドライバと同じ形式を使用して新しいセクションでサポートされます。

    従来のODP.NET管理対象外ドライバ構成ファイル形式は引き続きサポートされます。

    詳細は、構成ファイルのサポートも参照してください。

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

Oracle Data Provider for .NETリリース12.1.0.2での変更点は次のとおりです。

新機能

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

  • .NET Framework 4.5.2認定

    ODP.NET、管理対象ドライバと管理対象外ドライバは、.NET Framework 4.5.2に対応することが認定されています。

    詳細は、システム要件も参照してください。

  • 32KBに拡張された文字データ型

    ODP.NET管理対象ドライバは、サイズが32KBまでのVARCHAR2NVARCHAR2およびRAWデータ型をサポートします。この大きなサイズのデータ型を使用するためのコード変更は不要です。

    格納可能なデータが増えることで、これらのデータ型を使用できる回数も増えるため、開発者はプログラミングをより柔軟に行うことができます。また、これらのデータ型の新しいサイズによって、SQL ServerからOracle Databaseへのアプリケーション移行も容易になります。

  • 配列バインディングの操作で入力値ごとに影響を受ける行数の戻り値

    現在、複数のDML文を実行するために配列バインディングを使用すると、ODP.NET管理対象ドライバによって、影響を受けた行数の合計ではなく、バインドされた配列の入力値ごとに影響を受けた行数をリストする配列が提供されます。この情報によって、より詳しいフィードバックがアプリケーション開発者に提供されます。行数を取得するには、ODP.NETはOracleCommand.ArrayBindRowsAffectedプロパティをコールします。

    配列がバインドされたDML実行についてさらに詳しいフィードバックが得られるため、開発者は問合せの有効性やデータ変更が正しく適用されたかどうかを評価しやすくなります。

    詳細は、ArrayBindRowsAffectedも参照してください。

ODAC 12cリリース2内のOracle Data Provider for .NETでの変更点

ODAC 12cリリース2のOracle Data Provider for .NETでの変更点は次のとおりです。

新機能

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

  • .NET Framework 4.5.1認定

    Oracle Data Provider for .NETは、.NET Framework 4.5.1に対応することが認定されました。

    詳細は、システム要件も参照してください。

  • .NET Framework 4.6認定

    Oracle Data Provider for .NETは、.NET Framework 4.6に対応することが認定されました。

    詳細は、システム要件も参照してください。

  • ODP.NET管理対象ドライバのバージョニングの機能向上

    この機能によって、同じアセンブリ・バージョン番号を持つ複数のODP.NET管理対象ドライバ・アセンブリを一意に識別できるようになります。

    詳細は、Oracle Data Provider for .NETバージョニング体系も参照してください。

ODAC 12cリリース1内のOracle Data Provider for .NETでの変更点

ODAC 12cリリース1のOracle Data Provider for .NETでの変更点は次のとおりです。

新機能

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

  • Active DirectoryおよびOracle Internet DirectoryへのLDAP接続

    ODP.NET管理対象ドライバでは、LDAPサーバー/サービス、具体的にはMicrosoft Active DirectoryまたはOracle Internet Directoryを経由するTNS別名解決がサポートされます。

    この機能によって、ODP.NET管理対象ドライバがディレクトリ・サーバー/サービスを使用してデータベースに接続できるようになります。

    Lightweight Directory Access Protocolも参照してください。

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

Oracle Data Provider for .NETリリース12.1での変更点は次のとおりです。

新機能

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

  • ODP.NET管理対象ドライバ

    ODP.NETは、100%ネイティブの.NETコードで記述された、完全管理のプロバイダ・バージョンになりました。ODP.NET管理対象ドライバは、ODP.NET管理対象外ドライバのほぼすべての機能を含み、同じアプリケーション・プログラミング・インタフェースを使用します。これによって、既存のODP.NETアプリケーションが容易にODP.NET管理対象ドライバに移行されます。

    ODP.NET管理対象ドライバによって、ODP.NETをより簡単に、より迅速にデプロイできます。アセンブリはより少なくなり、わずか1つでデプロイするため、パッチ適用も簡単になり、インストール・サイズは10MB未満に小さくなります。32ビットまたは64ビットのどちらの.NET Frameworkを使用しているかにかかわらず、必要なODP.NET管理対象ドライバのアセンブリは1つのみです。考慮する必要のある管理対象外アセンブリは存在しないため、他のODP.NETバージョンとのサイドバイサイド・デプロイメントは容易です。完全管理のプロバイダであるODP.NETは、コード・アクセス・セキュリティおよびClickOnceデプロイメントとより密接に統合できます。

    Oracle Data Provider for .NET管理対象ドライバのインストールも参照してください。

  • プラガブル・データベースのサポート

    プラガブル・データベース(PDB)は、スキーマ、スキーマ・オブジェクト、非スキーマ・オブジェクトのポータブル・コレクションであり、Oracle Database内に構成すると、個別のデータベースとしてODP.NETに表示されます。そのため、ODP.NETではPDBのシームレスな使用が可能です。

    PDBの活用によって、既存のデータベースで切断や再接続を行い、データベースのプロビジョニングや再デプロイメントを素早く実行したり、複数のデータベースに対するパッチ適用やアップグレードを1回の実行コストで済ませたり、PDBを切断して別のコンテナ・データベースに接続することもできます。1台のマシンで、個別のモノリシック・データベースとしてより多くのデータベース・インスタンスをPDBの形で実行できます。また、アプリケーション管理者とOracleシステム管理者のそれぞれの役割を切り離すことも簡単です。

  • 自動増分ID列のサポート

    Oracle Database 12cリリース1 (12.1)では、自動増分ID列を導入しました。この列データの操作は、ODP.NET管理対象外ドライバ12.1以降のリリースでサポートされます。通常、ID列は、その他の自然主キー制約がない場合に使用され、表内の行を一意に識別します。

    ID列の導入により、自然主キーを持たないアプリケーションのNET開発や、ID列を持つデータベースからのアプリケーション移行が容易になります。

  • 32KBに拡張された文字データ型のサポート

    Oracle Database 12cリリース1 (12.1)以降のODP.NET管理対象外ドライバでは、VARCHAR2NVARCHAR2RAWの各データ型について、32KBまでのサイズをサポートするようになりました。この大きなサイズのデータ型を使用するためのコード変更は不要です。

    格納可能なデータが増えることで、これらのデータ型を使用できる回数も増えるため、開発者はプログラミングをより柔軟に行うことができます。また、これらのデータ型の新しいサイズによって、SQL ServerからOracle Databaseへのアプリケーション移行も容易になります。

  • ブール・データ型

    Oracle Database 12cリリース1 (12.1)では、ODP.NET管理対象外ドライバでOracleBooleanデータ型として格納できる新しいPL/SQLブール・データ型を導入しました。ブール演算によってTRUEまたはFALSEの値が格納されます。

    ODP.NETのOracleBooleanデータ型を使用して、ブール値のパラメータ・バインドおよびデータ型マッピングを簡単に設定できます。

    関連項目:

  • 暗黙的なREF CURSORバインドの機能拡張

    Oracle Database 12cリリース1 (12.1)のODP.NET 12cでは、ターゲットやREF CURSORデータ型を明示的に指定しなくてもPL/SQLで実行されたSELECT文の結果を取得できます。ODP.NETによって暗黙的にストアド・プロシージャからの結果セットが取得されるため、戻り値を宣言する必要はありません。Entity Frameworkや更新可能なREF CURSORを使用しなければ、あるいはクライアント側に制約メタデータを渡す必要がある場合を除いて、.NET構成ファイルでのREF CURSORメタデータの宣言は不要です。

    この機能によって、Oracle結果セットの暗黙的な使用が簡略化されます。また、同様の機能を使用する他社のデータベースからOracle Databaseに移行する場合にも有効です。

  • 配列バインディングの操作で入力値ごとに影響を受ける行数の戻り値

    現在、複数のDML文を実行するために配列バインディングを使用すると、Oracle Data Provider for .NET管理対象外ドライバによって、影響を受けた行数の合計ではなく、バインドされた配列の入力値ごとに影響を受けた行数をリストする配列が提供されます。この情報によって、より詳しいフィードバックがアプリケーション開発者に提供されます。行数を取得するには、ODP.NETはOracleCommand.ArrayBindRowsAffectedプロパティをコールします。

    配列がバインドされたDML実行についてさらに詳しいフィードバックが得られるため、開発者は問合せの有効性やデータ変更が正しく適用されたかどうかを評価しやすくなります。

    関連項目:

  • APPLYキーワードのサポート

    Language Integrated Query (LINQ)は、.NETの問合せ言語です。LINQは実行時にネイティブ・データベースのSQLに変換されてから、データベースを問い合せます。状況によっては、LINQはラテラル・ビューを取得するために非標準のAPPLYキーワードをSQL翻訳で使用することがあります。Oracle Database 12cリリース1 (12.1)のOracle DatabaseおよびODP.NETでは、APPLYキーワードのサポートを通じて、LINQのサポートが強化されています。

    この機能により、SQLAPPLYが使用される偶発的なLINQ問合せが、ラテラル・ビューについてODP.NETおよびOracle Databaseでシームレスに作動できます。

  • トランザクション・ガードのサポート

    Oracle Database 12cリリース1 (12.1)のトランザクション・ガードは、計画済停止や計画外停止の間、アプリケーションから同じトランザクションが重複して送信されるのを防ぎ、ODP.NET管理対象外ドライバ12cアプリケーションのトランザクションのコミット結果を保護します。アプリケーションでは、新しい論理トランザクションIDを使用して、停止後に続くデータベース・セッション内でオープンになっている最終トランザクションの結果が判別されます。アプリケーションは、既知の結果に基づいてトランザクションを再送信するかどうかを確実に決めることができます。トランザクション・ガードを使用しないと、アプリケーションが停止の後に操作を実行しようとして、トランザクションが重複してコミットされ論理破損が発生する可能性があります。

    すべてのトランザクションのコミット結果を保護するトランザクション・ガードは、ODP.NETアプリケーションで利用可能です。この機能を使用することで、ODP.NETの開発者はトランザクションの実行を1回以下に制限できます。

  • リカバリ可能エラーの検出とリカバリ

    Oracle Database 12cリリース1 (12.1)で障害が発生した場合、ODP.NET管理対象外ドライバ12cを使用すると、そのトランザクションの障害がリカバリ可能かどうかを判別できます。ODP.NETは、OracleException IsRecoverableプロパティを戻し、そのトランザクションがリカバリ可能かどうかを示します。TRUEの場合は、アプリケーションはトランザクションを再試行できます。

    この機能によって、トランザクションの障害が簡単にリカバリできるかどうかがわかるので、速やかにアプリケーションのリカバリ・プロセスを次のステップへと進めることができます。

  • 高速なデータベース計画済停止のサポート

    Oracle Database 12cリリース1 (12.1)では、これからオフラインになるデータベースによって、その停止時間を知らせるアラートが自動的にODP.NETアプリケーションに送信されます。これにより、ODP.NETは新しい接続の割当てを中止し、その特定のインスタンスから接続プールに戻された接続をクローズします。

    この機能を使用することで、これからオフラインになるデータベースへのODP.NETの新規接続を防ぎ、エンド・ユーザーの中断を最小限に抑えながら、データベースをすばやくオフラインに切り替えることができます。

  • Oracle Notification Serviceのサポート

    Oracle Notification Service (ONS)は、高速アプリケーション通知(FAN)イベントの通信に使用するパブリッシュおよびサブスクライブ・サービスです。ODP.NETでは、ONSを通じてデータベース・サーバーから高速接続フェイルオーバーおよびロード・バランシングに関するメッセージを受信します。以前のODP.NETは、このFANパブリッシュおよびサブスクライブ・サービスのかわりに、Oracleアドバンスト・キューイング(AQ)を使用していました。

    ONSはメモリーベースのサービスであるため、AQよりも高速にメッセージを送信できます。Oracleは、ONSを使用して、すべてのOracleデータ・アクセス・ドライバのパブリッシュおよびサブスクライブ・サービスを統合しています。

  • グローバル・データ・サービスのサポート

    グローバル・データ・サービス(GDS)は、以前はOracle RACに限定されていたサービスの概念をグローバルな分散構成(Oracle RAC、Oracle Data Guard、Oracle GoldenGateの組合せを含む)に拡張する、Oracle Database 12cの機能の1つです。これにより、グローバルな分散構成の任意の場所にサービスをデプロイすることができ、ロード・バランシング、高可用性、データベース・アフィニティなどがODP.NETでサポートされます。

    これにより、ODP.NETアプリケーションは、パフォーマンスおよび可用性の向上を図るために、データベース・リソースをグローバルに効率よく活用できるようになりました。また、Oracle RACのサービスの概念を活用するアプリケーションでは、Oracle Data GuardおよびOracle GoldenGateの構成に自動ワークロード管理を利用することも可能です。同様に、Oracle Data GuardまたはOracle GoldenGateユーザーは、レプリケート構成のためにサービスや自動ワークロード管理の利点をフル活用できます。

  • トランザクションと接続の関連付け

    接続をenlist=true接続文字列属性で暗黙的に登録するか、OracleConnection.EnlistTransaction()メソッドで明示的に登録しておくと、System.Transactionsトランザクションとの関連付けが行われます。現在のデフォルトでは、ODP.NETの接続がトランザクションからデタッチされるのは、接続オブジェクトをクローズするか、トランザクション・オブジェクトを破棄するときのみです。

    旧ODP.NETリリースでは、前述の状況に加えて、トランザクションが完了(コミット、中断、タイムアウト)したときにも接続がトランザクションからデタッチされていました。トランザクションが完了する前にタイムアウト時間を超過すると、そのトランザクションの接続が自動的にバインド解除され、その接続の以降の操作はAutoCommitモードで実行されます。この場合、タイムアウトする前の操作はロールバックされますが、タイムアウト後に実行した操作はコミットされます。トランザクションをバインド解除する新しいデフォルトの動作では、トランザクションを廃棄する前にトランザクションがタイムアウトした場合、この接続で以降の操作を実行すると、例外とともにアラートがユーザーに送信されます。この新しい動作によって、タイムアウトが発生したときでも、エンド・ユーザーのトランザクションの一貫性が保持されます。

    詳細は、LegacyTransactionBindingBehaviorを参照してください。

  • より細分化した接続プール監視

    パフォーマンス・カウンタの監視を、アプリケーション・ドメイン、プールまたはデータベース・インスタンスのレベルでできるようになりました。

    どのアプリケーション・ドメイン、プールおよびインスタンスが正常に動作し、どれに問題があるかを、簡単に区別できるようになりました。