ODP.NETの特定のバージョンに対する設定は、いくつかの方法で構成でき、優先順位について次のような特定の影響があります。
Windowsレジストリ・エントリは、ODP.NETの特定のバージョンに対応するマシン全体の設定です。
machine.config
設定は、.NET Framework全体の設定であり、Windowsレジストリ値より優先されます。
アプリケーションまたはWeb構成ファイルの設定は、アプリケーション固有の設定であり、machine.config
の設定およびWindowsレジストリの設定より優先されます。
接続文字列と同等のすべての属性は、他のどの設定値よりも優先されます。
アプリケーションまたはWeb構成ファイルは、1つのコンピュータ上の複数のアプリケーションが同じODP.NETのバージョンを使用する場合に便利で、ときには必須となりますが、各アプリケーションには異なるODP.NET構成が必要です。ODP.NETの特定のバージョンに対してWindowsレジストリ値を設定すると、そのバージョンを使用するすべてのアプリケーションに影響します。ただし、アプリケーションまたはWeb構成ファイル内でODP.NET構成値を持つことにより該当するアプリケーションに対してのみその設定が適用されるため、より細分化して使用できます。
たとえば、アプリケーションまたはweb.config
ファイルのStatementCacheSize
構成設定が100
の場合、このアプリケーション固有の設定により、そのアプリケーションがロードするODP.NETのバージョンではStatementCacheSize
に対して100
が強制的に使用され、machine.config
およびレジストリ内の設定より優先されます。前のリリース同様、構成ファイル(machine.config
またはアプリケーションおよびWeb構成ファイル)に存在しない設定の場合は、ロードしたODP.NETのバージョンに対応するレジストリ内の値が使用されることに注意してください。
ODP.NETがmachine.config
ファイルを読み込むのは、ODP.NETのバージョンからではなく、ODP.NETを実行する.NET Frameworkのバージョンからであることに注意してください。
ODP.NETは、メモリーにロードされるとき、WindowsレジストリおよびXML構成ファイルのみを読み込みます。そのため、その後に行われた構成の変更は、アプリケーションを再起動するまで読み込まれず、使用されません。
ODP.NETは、次のような属性の構成をサポートします。
Windowsレジストリ内。
XMLファイル内。
接続文字列などの別のメカニズムを使用したとき。または、適用可能な場合、プログラムでODP.NETクラスを使用したとき。
表2-1では、ODP.NETでサポートされる構成可能な各属性について説明します。この表では、「構成サポート」という用語の後に、その属性で使用可能な構成サポートのタイプ(Windowsレジストリ、XMLファイルなど)が続きます。
この表では、各属性のデフォルト値および有効値を示します。
注意: 記載されているデフォルト値は、レジストリ・キーが存在しないか、どこにも構成されていない場合に、属性に対して使用される値です。 |
表2-1 構成属性
属性/設定名 | 説明 |
---|---|
|
接続を接続プールに戻す前に接続ステータスがチェックされるかどうかを指定します。このレジストリ・エントリは、ODP.NETをインストールしても作成されず、デフォルト値の 構成サポート: WindowsレジストリおよびXMLファイル 有効な値:
デフォルト: |
|
変更通知、HA、またはRLB機能についてデータベースから送信されるすべての通知をODP.NETがリスニングするポート番号を指定します。無効なポート番号または使用されているポート番号が指定されている場合でもODP.NETはエラーをスローしません。 構成サポート: XMLファイルおよびODP.NETクラス 有効な値:
デフォルト: |
|
ODP.NETを使用して、データベースにアクセスしようとする.NETアプリケーションの 構成サポート: WindowsレジストリおよびXMLファイル 有効な値: 0: 1: デフォルト: 0 |
|
依存する非管理Oracle Clientバイナリのロード元を指定します。 構成サポート: WindowsレジストリおよびXMLファイル 有効な値: 依存する非管理Oracle Clientバイナリが格納される場所のパス。 デフォルト: |
|
構成サポート: Windowsレジストリ、XMLファイルおよび 有効な値:
デフォルト: 0 |
|
データベース・ラウンドトリップからフェッチしたデータをODP.NETがキャッシュするために割り当てる合計メモリー・サイズをバイト単位で指定します。この値は、 構成サポート: Windowsレジストリ、XMLファイルおよびODP.NETクラス 有効な値:
デフォルト: |
|
自動チューニングが有効化されている場合にキャッシュできる文の最大数を指定します。 構成サポート: WindowsレジストリおよびXMLファイル 有効な値: 0から デフォルト: |
|
ADO.NET 2.0の 構成サポート: XMLファイルのみ 有効な値: XMLファイルの完全ファイル名。 デフォルト: なし |
|
接続プーリングのパフォーマンス・カウンタの公開を有効または無効にします。複数のパフォーマンス・カウンタは、有効な値を追加することで取得できます。 構成サポート: WindowsレジストリおよびXMLファイル 有効な値:
デフォルト: |
|
最初の接続が 構成サポート: Windowsレジストリ、XMLファイルおよびpromotable transaction接続文字列属性 有効な値:
デフォルト: |
|
ODP.NETアプリケーションに対して自動チューニングが有効かどうかを指定します。 構成サポート: Windowsレジストリ、XMLファイルおよび 有効な値: 0: 自動チューニングは無効です。レジストリまたはXMLファイルで使用されます。
1: 自動チューニングは有効です。レジストリまたはXMLファイルで使用されます。
デフォルト: 1 |
|
各接続についてデータベースでキャッシュされるカーソルおよび文の数を指定します。この設定は、接続文字列のStatement Cache Size属性に対応します。値が0を超える場合も文のキャッシングが有効になります。 構成サポート: Windowsレジストリ、XMLファイルおよびStatement Cache Size接続文字列属性 有効な値:
デフォルト: |
|
構成サポート: WindowsレジストリおよびXMLファイル 有効な値:
デフォルト: |
|
プロセス内で使用可能な各プロセッサに対するワーカー・スレッドのデフォルトの最大サイズを指定します。この値は、ODP.NETにおける、このスレッド・プールを使用した接続の作成、コマンドの実行のタイムアウト、外部プロシージャ( 構成サポート: WindowsレジストリおよびXMLファイル 有効な値:
デフォルト: ODAC 2007より前またはリリース11.1.0.6.20より前のリリースでは、ODP.NETは、 |
|
トレース情報のロギングに使用されるファイル名を指定します。 構成サポート: WindowsレジストリおよびXMLファイル 有効な値: 有効なディレクトリの場所およびファイル名。 デフォルト: |
|
ODP.NETのトレース・レベルを指定します。すべてのオブジェクトに対するすべての開始および終了コールをトレースするのは過剰になる場合があるため、 構成サポート: WindowsレジストリおよびXMLファイル 有効な値:
デフォルト: 0 注意: ODP.NETは、値に対するビットのチェックは行いません。トレースを有効にすると、トレース・ファイルへのロギングがODP.NETのパフォーマンスに影響する可能性があります。 注意: ユーザーモード・ダンプの作成には、 |
|
トレース情報を1つのファイルに記録するか、スレッドごとの複数のファイルに記録するかを指定します。単一トレース・ファイルを指定した場合は、 構成サポート: WindowsレジストリおよびXMLファイル 有効な値:
デフォルト: |
|
ODP.NETがOracle UDTを取得して操作するために使用する各接続のオブジェクト・キャッシュのサイズをKB単位で指定します。 構成サポート: WindowsレジストリおよびXMLファイル 有効な値:
デフォルト: |
|
カスタム・タイプとデータベースのOracle UDTのマッピングを指定します。マッピングは、構成ファイルおよびカスタム・タイプ・ファクトリで指定できますが、マッピングが両方で指定されている場合は、構成ファイルで指定されたマッピングが、カスタム・タイプ・ファクトリを使用して指定されたマッピングより優先されます。 構成サポート: XMLファイルおよびカスタム・タイプ・ファクトリ・クラス 有効な値: 有効なマッピング デフォルト: なし |
インストール後、ODP.NETは、Windowsレジストリ内の構成およびトレースのエントリを作成します。構成およびトレース・レジストリの値は、Oracleクライアントのインストールを実行しているすべてのODP.NETアプリケーションに適用されます。各ODP.NETアプリケーションは、値(たとえば、FetchSize
)をODP.NETアプリケーション自身内で構成することで、これらの値をオーバーライドできます。また、.NET構成ファイルを使用してODP.NETのWindowsレジストリ値をオーバーライドすることもできます。
ODP.NETレジストリ値は、HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\
version
\
にあります。.NET Framework 2.0、3.0および3.5に1つのキー、.NET Framework 4以上に1つのキーがあります。
注意: x64ベース・バージョンのWindowsで動作する32ビット・アプリケーションは、レジストリ・サブキーにHKEY_LOCAL_MACHINE\Software ではなくHKEY_LOCAL_MACHINE\Software\WOW6432node を使用します。このようなアプリケーションがOracle Data Provider for .NET (32ビット)を使用する場合は、ODP.NETのレジストリ値がHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Oracle\ODP.NET\version\ に格納されます。 |
1つのバージョンのODP.NETに依存したコンピュータに多数のアプリケーションを保有する顧客の場合、特定のバージョンのODP.NETに対するWindowsレジストリの設定は、そのバージョンのODP.NETを使用するすべてのアプリケーションに対して必ずしも適用可能ではありません。より粒度の高い制御を提供するため、ODP.NET構成ファイル・サポートでは、開発者がODP.NETの構成設定をアプリケーションの構成ファイル、web.config
ファイルまたはmachine.config
ファイルに指定することができます。
ODP.NETバージョン・レベルの構成設定を超える粒度の制御が不要な場合、構成ファイルを使用してODP.NETの構成設定を指定する必要はありません。
次に、.NET Framework 2.0以上に対応した web.config
ファイルの例を示します。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <oracle.dataaccess.client> <settings> <add name="DllPath" value="C:\oracle\bin"/> <add name="FetchSize" value="131072"/> <add name="PromotableTransaction" value="promotable"/> <add name="StatementCacheSize" value="10"/> <add name="TraceFileName" value="C:\odpnet2.trc"/> <add name="TraceLevel" value="63"/> <add name="TraceOption" value="1"/> </settings> </oracle.dataaccess.client> </configuration>
次に、.NET Framework 2.0を使用するODP.NETに対応したapp.config
の例を示します。いくつかの追加属性と、UDTタイプの2つのマッピングが設定されています。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <oracle.dataaccess.client> <settings> <add name="DbNotificationPort" value="-1"/> <add name="DllPath" value="C:\app\user\product\11.1.0\client_1\bin"/> <add name="DynamicEnlistment" value="0"/> <add name="FetchSize" value="131072"/> <add name="MetaDataXml" value="CustomMetaData.xml"/> <add name="PerformanceCounters" value="4095"/> <add name="PromotableTransaction" value="promotable"/> <add name="StatementCacheSize" value="50"/> <add name="ThreadPoolMaxSize" value="30"/> <add name="TraceFileName" value="c:\odpnet2.trc"/> <add name="TraceLevel" value="0"/> <add name="TraceOption" value="0"/> <add name="Person" value="udtMapping factoryName='PersonFactory, Sample, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' typeName='PERSON' schemaName='SCOTT' dataSource='oracle'"/> <add name="Student" value="udtMapping factoryName='StudentFactory, Sample, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' typeName='STUDENT' schemaName='SCOTT'"/> </settings> </oracle.dataaccess.client> </configuration>