Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
|
![]() 前 |
![]() 次 |
この章の内容は次のとおりです。
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 Databaseアップグレード・ガイドを参照してください。
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管理対象ドライバは、データベース・サーバーとクライアントの間でデータの整合性を確実に保証するために、暗号ハッシュ関数をサポートしています。サポートされるアルゴリズムは、MD5
、SHA-1
、SHA-2
(SHA-256
、SHA-384
、SHA-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での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
.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での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
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での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
.NET Framework 4.5.2認定
ODP.NET、管理対象ドライバと管理対象外ドライバは、.NET Framework 4.5.2に対応することが認定されています。
詳細は、システム要件も参照してください。
32KBに拡張された文字データ型
ODP.NET管理対象ドライバは、サイズが32KBまでのVARCHAR2
、NVARCHAR2
およびRAW
データ型をサポートします。この大きなサイズのデータ型を使用するためのコード変更は不要です。
格納可能なデータが増えることで、これらのデータ型を使用できる回数も増えるため、開発者はプログラミングをより柔軟に行うことができます。また、これらのデータ型の新しいサイズによって、SQL ServerからOracle Databaseへのアプリケーション移行も容易になります。
配列バインディングの操作で入力値ごとに影響を受ける行数の戻り値
現在、複数のDML文を実行するために配列バインディングを使用すると、ODP.NET管理対象ドライバによって、影響を受けた行数の合計ではなく、バインドされた配列の入力値ごとに影響を受けた行数をリストする配列が提供されます。この情報によって、より詳しいフィードバックがアプリケーション開発者に提供されます。行数を取得するには、ODP.NETはOracleCommand.ArrayBindRowsAffected
プロパティをコールします。
配列がバインドされたDML実行についてさらに詳しいフィードバックが得られるため、開発者は問合せの有効性やデータ変更が正しく適用されたかどうかを評価しやすくなります。
詳細は、ArrayBindRowsAffectedも参照してください。
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での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
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での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
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デプロイメントとより密接に統合できます。
プラガブル・データベースのサポート
プラガブル・データベース(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管理対象外ドライバでは、VARCHAR2
、NVARCHAR2
、RAW
の各データ型について、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」を参照してください。
より細分化した接続プール監視
パフォーマンス・カウンタの監視を、アプリケーション・ドメイン、プールまたはデータベース・インスタンスのレベルでできるようになりました。
どのアプリケーション・ドメイン、プールおよびインスタンスが正常に動作し、どれに問題があるかを、簡単に区別できるようになりました。
関連項目:
Oracle Data Provider for .NETリリース11.2.0.3.20での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
.NET Framework 4.5およびEntity Framework 5のサポート
Oracle Data Provider for .NETでは、.NET Framework 4.5およびEntity Framework 5がサポートされます。
詳細は、システム要件も参照してください。
Oracle Data Provider for .NETリリース11.2.0.3での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
ADO.NET Entity FrameworkおよびLINQ to Entitiesのサポート
ODP.NETで、ADO.NET Entity FrameworkおよびLINQ to Entitiesがサポートされるようになりました。Entity Frameworkは、データ・モデルでのオブジェクト・リレーショナル・マッピング・サービスを提供するフレームワークです。Entity Frameworkでは、リレーショナル・データベース形式とクライアント優先オブジェクト形式とのインピーダンス・ミスマッチが解決されます。統合言語クエリ(LINQ)は、配列データ、可算クラス、XML、リレーショナル・データベースおよびその他のデータ・ソースのクエリ、計画およびフィルタ処理に使用される一連の演算子を定義します。LINQの1つの形式であるLINQ to Entitiesを使用すると、Entity Frameworkデータ・ソースをクエリできます。ODP.NETでは、オブジェクト・リレーショナル・モデリングおよびLINQ to EntitiesクエリでOracle Databaseを使用できるようEntity Frameworkがサポートされています。
Entity FrameworkおよびLINQを使用すると、.NET開発者の生産性が向上します。ここでは、アプリケーションのデータ・モデルからデータベースのデータ・モデルが抽出されます。Entity Frameworkのツールを使用すると、オブジェクト・リレーショナル・データの処理が容易になります。Oracle .NET開発者は、Entity FrameworkおよびLINQにOracleを統合することで、生産性に関するこれらのすべての利点を活用できます。
ODP.NETでのADO.NET Entity FrameworkおよびLINQ to Entitiesのサポートの詳細は、ADO.NET Entity FrameworkおよびLINQ to Entitiesを参照してください。
開発者は、Windows Communication Foundation(WCF)Data Servicesによって、Open Data Protocol(OData)を使用するサービスを作成し、Representational State Transfer(REST)のセマンティクスを使用してインターネット上のデータを公開および使用できます。データは、ODataによって、URIでアドレス指定できるリソースとして公開されます。リソースは、ODataでEntity Data Modelの規則を使用して、アソシエーションによって関連付けられたエンティティのセットとして公開されます。ODP.NETではEntity Frameworkがサポートされており、ODataおよびWCF Data Servicesを介してデータが公開されます。
WCF Data ServicesおよびODataを使用すると、任意のデータ・ソースからフレキシブルなデータ・サービスを作成して、作成したデータ・サービスを無理なくWebに統合できます。(Oracle Databasesを含む)すべてのデータ・ソースが同じデータ共有標準で使用されるため、データ交換による相互運用がより可能になります。
ODP.NETでは、REF CURSORパラメータを、明示的にバインドすることなくストアド・プロシージャにバインドできます。これを行うには、アプリケーションでREF CURSORメタデータを.NET構成ファイルの一部として指定する必要があります。この機能によって、Entity Frameworkの関数インポートでOracleストアド・プロシージャをコールして、REF CURSORの結果セットを戻すことができます。ODP.NETでは、REF CURSORを介して取得されるDataSetまたはDataTableを使用して、データベースのデータを更新することもできます。
Entity Frameworkでは、通常、結果セットのパラメータは宣言されません。ODP.NETは、暗黙的なREF CURSORパラメータをサポートすることで、Entity Frameworkの標準的な使用シナリオとより緊密に統合されます。
暗黙的なREF CURSORパラメータのバインドの詳細は、暗黙的なREF CURSORのバインドを参照してください。
Oracle Data Provider for .NETリリース11.2.0.2での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
Windows x64の64ビットODP.NET XCopy
ODP.NET XCopyは、Windows x64システムで使用できるようになり、通常のODP.NETクライアントよりも小さいクライアント・インストール・サイズを実現し、さらに、構成がより簡単になりました。ODP.NET XCopyは、カスタマイズされたデプロイメント・パッケージへのODP.NETの埋込みを簡素化します。
関連項目:
Oracle Data Provider for .NET管理対象外ドライバのインストールのXCopyに関する説明を参照
TimesTen In-Memoryデータベースのサポート
Oracle Data Provider for .NETでは、TimesTen In-memoryデータベースに対する.NETアプリケーション(C# .NET、Visual Basic .NET、ASP.NETなど)の高速データ・アクセスが可能です。ODP.NETによるTimesTenのサポートには、Oracle.DataAccess.Client
およびOracle.DataAccess.Types
ネームスペースのクラス、列挙、インタフェース、デリゲートおよび構造が含まれています。ODP.NETは、Microsoft Windows 32ビットおよび64ビット・プラットフォームにおけるTimesTenリリース11.2.1.6.1以上をサポートします。TimesTenは、Microsoft Visual Studio 2005以上とともに、.NET Framework 2.0、3.0、3.5および4で使用できます。
関連項目:
TimesTen In-Memoryデータベースの最新のドキュメントおよびリソースは、次の場所で入手できます。
http://www.oracle.com/technetwork/database/database-technologies/timesten/overview/index.html
Oracle Data Provider for .NETリリース11.2.0.1.2での変更点は次のとおりです。
Oracle Data Provider for .NETリリース11.2での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
エンドツーエンド・トレース: ClientInfo
プロパティ
ODP.NETでは、OracleConnection
オブジェクトで、ActionName
、ClientId
およびModuleName
プロパティに加え、ClientInfo
書込み専用プロパティがサポートされるようになりました。このプロパティでは、接続のクライアント情報を指定します。
ClientInfo
プロパティは、エンドツーエンドのトレース属性で、クライアントまたは中間層に設定しておくことができます。この属性は、次のサーバー・ラウンドトリップが発生するたびにデータベース・サーバーに伝播できます。これにより、単独のデータベース・ラウンドトリップに伴う追加のオーバーヘッドが軽減されます。ClientInfo
プロパティは、データベースのユーザー・アクティビティの追跡やアプリケーションのデバッグを行う際に使用すると便利です。
エディションベースの再定義
エディションベースの再定義を使用すると、.NETアプリケーションが使用中であってもそのデータベース・コンポーネントをアップグレードできます。このため、アプリケーションの停止時間を最小化あるいは排除することができます。
関連項目:
Oracle Data Provider for .NETリリース11.1.0.7.20での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
アプリケーションの自動チューニング
ODP.NETでは、実行時に行うサンプリングに基づいて動的に文キャッシュ・サイズを調整し、アプリケーションのパフォーマンスを向上させます。また、自動チューニングでは、メモリー使用率が高くなりすぎるのを防ぐために、クライアント・マシンのメモリー使用率が考慮されます。自動チューニングを使用すると、ODP.NETパフォーマンスの向上、ネットワーク使用率の低減、サーバーCPUアクティビティおよびクライアントCPUアクティビティの減少が実現します。
関連項目:
データ検索の高速化とメモリー使用率の低減
OracleDataReader
によるデータ検索やOracleDataAdapter
からのDataSet
の移入が高速化されました。
ODP.NETでは、同時に実行されない文の同じフェッチ配列バッファを再利用することで、メモリー使用量を節約します。フェッチ配列バッファには、データベースから取得したデータが保存されます。
これらの機能を使用する際にはコード変更は必要ありません。これらの機能により、ODP.NETアプリケーションのパフォーマンスとスケーラビリティが向上します。
Oracle Streamsアドバンスト・キューイングのサポート
ODP.NETは、Oracle Streamsアドバンスト・キューイング(AQ)へのアクセスをサポートしています。AQは、データベース統合型のメッセージ・キューイング機能を提供し、メッセージの永続的な格納、異なるマシンおよびデータベース上のキュー間でのメッセージの伝播、Oracle NET Services、HTTP、HTTPS、SMTPを使用したメッセージの送信を可能にします。
ODP.NETでは、エンキュー、デキュー、リスニング、通知など、AQのすべての操作機能を利用できます。AQリソースはOracle Developer Tools for Visual Studioで管理できます。
昇格可能なローカル・トランザクションのサポート
分散トランザクションは、アプリケーション、トランザクション・コーディネータおよび複数のデータベースのオーケストレーションを必要とします。ローカル・トランザクションに必要なのは、アプリケーションと単一のリソース・マネージャまたはデータベースのみです。ローカル・トランザクションのオーバーヘッドは、分散トランザクションと比較すると、それほど多くありません。
トランザクションをローカルにするか、分散させるかを設計時に判断するのは困難なこともあります。ローカル・トランザクションを使用することがほとんどであるとしても、開発者は分散トランザクション用にアプリケーションを設計せざるを得ません。こうした状況は、実行時のリソース使用率が必要以上に上昇する原因となります。
昇格可能なローカル・トランザクションを使用すれば、複数のデータベースがトランザクションに参加するまで、すべてのトランザクションをローカルにしておくことができます。複数のデータベースが参加した時点で、そのトランザクションは分散トランザクションに昇格し、トランザクション・コーディネータによる管理が可能になります。これにより、システム・リソースの利用が効率化されます。この機能は、Oracle Database 11gリリース1(11.1.0.7)以上でサポートされています。
ODP.NETのセキュリティ強化
ODP.NETでは、OraclePermission
クラスを利用して強制的セキュリティを適用します。これは、ユーザーまたはアプリケーションのセキュリティ・レベルがデータへのアクセスに十分であることを保証するのに役立ちます。
HAイベント通知のコールバック
ODP.NETでは、接続文字列に"ha events=true
"が指定されている場合にOracle高可用性(HA)イベントを登録できます。イベントを登録すると、停止または起動したデータベース、サービス、ホストまたはインスタンスについての通知を受信できるようになります。.NETの開発者は、必要に応じてコールバックをODP.NETに登録することで、いずれかのイベントが発生したときにアプリケーションに通知し、次にイベント・ハンドラを実行することができます。
データベースの起動および停止操作
データベース管理者権限を持つユーザーは、OracleDatabase
クラスを使用してデータベース・インスタンスを起動または停止できます。
Oracle Data Provider for .NETリリース11.1.0.6.20での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
32ビットODP.NET XCopy
Oracle XCopyは、通常のODP.NETクライアントよりもディスク・サイズが小さく、構成が簡単なODP.NETクライアントをシステム管理者に提供します。Oracle XCopyは、カスタマイズされたデプロイメント・パッケージへのODP.NETの埋込みを簡素化します。
関連項目:
Oracleユーザー定義タイプのサポート
ODP.NETには、.NETアプリケーションのカスタム・タイプとしてデータベースに定義されているOracle UDTを表示する機能があります。
一括コピー操作
ODP.NETでは、大量のデータを効率的にロードする一括コピー操作がサポートされています。
Oracle Real Application Clusters(Oracle RAC)およびOracle Data Guardに対する追加の接続プールの最適化
ODP.NETは、Oracle RACまたはOracle Data Guardからデータベース・ダウン・イベントを受信すると、接続プールをクリーン・アップします。ODP.NETはすでにノード・ダウン、サービス・メンバー・ダウンおよびサービス・ダウン・イベントに対して接続プールをクリーン・アップしていますが、これはその追加機能です。
Windows認証ユーザー接続プーリング
ODP.NET接続プールの一部として、オペレーティング・システム認証接続を管理できます
関連項目:
接続プール・パフォーマンス・カウンタ
ODP.NETは、Windowsパフォーマンス・モニターを使用して表示できる接続プーリングのパフォーマンス・カウンタを公開します。
関連項目:
エンドツーエンドのトレース属性のサポート
ODP.NETは、OracleConnection
オブジェクトの書込み専用プロパティであるActionName、ClientId
、ClientInfo
およびModuleName
をサポートしています。これらのプロパティは、エンドツーエンドのトレース属性に対応しています。このエンドツーエンドのトレース属性をクライアントまたは中間層に設定しておき、次のサーバー・ラウンドトリップが発生するたびにデータベース・サーバーに伝播できます。これにより、単独のデータベース・ラウンドトリップに伴う追加のオーバーヘッドが軽減されます。この属性は、データベースのユーザー・アクティビティの追跡やアプリケーションのデバッグを行う際に使用すると便利です。
Oracle Data Provider for .NETリリース11.1での変更点は次のとおりです。
このリリースの新機能は次のとおりです。
パフォーマンスの向上
パフォーマンスの拡張機能は次のとおりです。
このリリースでは、ODP.NETパラメータ・コンテキストをキャッシュする既存のキャッシング・インフラストラクチャが拡張されました。この機能拡張はデータベース・バージョンに関係なく、サポートされているすべてのデータベース・バージョンで使用できます。この機能によって、同じ文を繰り返し実行するアプリケーションのパフォーマンスが大幅に向上します。
開発者は、この拡張機能を意識する必要はありません。この機能を使用するためにコードを変更する必要はありません。
LOBSまたはSecureFilesを使用したLOBの効率的な検索
このリリースでは、データベースへのラウンドトリップの回数を減らすことで、LOBSまたはSecureFilesを使用する際の少量のLOB検索のパフォーマンスが向上しました。SecureFilesはOracle 11gリリース1以降のデータベース・リリースで使用可能です。
開発者は、この拡張機能を意識する必要はありません。この機能を使用するためにコードを変更する必要はありません。