ヘッダーをスキップ
Oracle® Data Provider for .NET開発者ガイド
11g リリース2 (11.2.0.4)
B66456-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Oracle Data Provider for .NETの構成

ODP.NETの特定のバージョンに対する設定は、いくつかの方法で構成でき、優先順位について次のような特定の影響があります。

アプリケーションまたは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 構成属性

属性/設定名 説明

CheckConStatus

接続を接続プールに戻す前に接続ステータスがチェックされるかどうかを指定します。このレジストリ・エントリは、ODP.NETをインストールしても作成されず、デフォルト値の1が使用されます。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

1: 接続のステータスをチェックします。

0: 接続のステータスをチェックしません。

デフォルト: 1

DbNotificationPort

変更通知、HA、またはRLB機能についてデータベースから送信されるすべての通知をODP.NETがリスニングするポート番号を指定します。無効なポート番号または使用されているポート番号が指定されている場合でもODP.NETはエラーをスローしません。OracleDependency.Port staticフィールドを指定すれば、WindowsレジストリおよびXML構成ファイルより優先するようにポートを設定できます。

構成サポート:

XMLファイルおよびODP.NETクラス

有効な値:

-1: 使用されていないポートがランダムに開き、リスニングします。

n > = 0: ポートnをリスニングします。

デフォルト: -1

DemandOraclePermission

ODP.NETを使用して、データベースにアクセスしようとする.NETアプリケーションのOraclePermissionをODP.NETで要求するかどうかを指定します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: OraclePermissionの要求を無効化します。

1: OraclePermissionの要求を有効化します。

デフォルト: 0

DllPath

依存する非管理Oracle Clientバイナリのロード元を指定します。

構成サポート: WindowsレジストリおよびXMLファイル

有効な値:

依存する非管理Oracle Clientバイナリが格納される場所のパス。

デフォルト: ORACLE_BASE\\ORACLE_HOME\bin

DynamicEnlistment

OracleConnection.Openメソッドが起動したEnlistTransaction()またはEnlistDistributedTransaction()を通じてアプリケーションが分散トランザクションに明示的に登録されるかどうかを指定します。プログラムによって動的に登録できるようにODP.NETを構成するには、接続文字列に"enlist=dynamic"を含める必要があります。

構成サポート:

Windowsレジストリ、XMLファイルおよび"enlist"接続文字属性

有効な値:

0: 分散トランザクションに明示的に登録する機能を無効にします。

1: 分散トランザクションに明示的に登録する機能を有効にします。

デフォルト: 0

FetchSize

データベース・ラウンドトリップからフェッチしたデータをODP.NETがキャッシュするために割り当てる合計メモリー・サイズをバイト単位で指定します。この値は、OracleCommandおよびOracleDataReader FetchSizeプロパティでも設定できます。

構成サポート:

Windowsレジストリ、XMLファイルおよびODP.NETクラス

有効な値:

0 <= n <= int.MaxValue: nは、バイト単位のキャッシュ・サイズです。

デフォルト: 131072

MaxStatementCacheSize

自動チューニングが有効化されている場合にキャッシュできる文の最大数を指定します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0からSystem.Int32.MaxValue

デフォルト: 100

MetaDataXml

ADO.NET 2.0のGetSchemaメソッドが返すメタデータを取得するための問合せをカスタマイズするXMLファイルの名前を指定します。MetaDataXmlは、構成ファイルでのみ設定できます。

構成サポート:

XMLファイルのみ

有効な値:

XMLファイルの完全ファイル名。

デフォルト: なし

PerformanceCounters

接続プーリングのパフォーマンス・カウンタの公開を有効または無効にします。複数のパフォーマンス・カウンタは、有効な値を追加することで取得できます。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: 有効ではありません。

1: Oracle Databaseで毎秒確立されるセッション数。

2: Oracle Databaseから毎秒切断されるセッション数。

4: 接続プールから毎秒確立されるアクティブな接続数。

8: 接続プールから毎秒戻されるアクティブな接続数。

16:アクティブな接続の合計数。

32: 非アクティブな接続プール数。

64: 使用中の接続の合計数。

128: すべての接続プールで使用可能な接続の合計数。

256: プールされているアクティブな接続の数。

1024: プールされていないアクティブな接続の数。

2048: まもなくプールで利用可能になる接続数。ユーザーはこれらの接続をクローズしましたが、使用可能な接続としてプールに戻される前の、トランザクション完了などのアクション待ちになっています。

4095: 前述のすべて。

デフォルト: 0

PromotableTransaction

最初の接続がTransactionScopeオブジェクトに関与するときに使用されるトランザクションのタイプを指定します。

構成サポート:

Windowsレジストリ、XMLファイルおよびpromotable transaction接続文字列属性

有効な値:

local: TransactionScopeオブジェクトで開いた最初の接続は、ローカル・トランザクションを使用します。

promotable: 同じTransactionScopeオブジェクトで開いた最初の接続およびすべての後続の接続は、同じ分散トランザクションに登録されます。

デフォルト: promotable

SelfTuning

ODP.NETアプリケーションに対して自動チューニングが有効かどうかを指定します。

構成サポート:

Windowsレジストリ、XMLファイルおよびSelf Tuning接続文字属性

有効な値:

0: 自動チューニングは無効です。レジストリまたはXMLファイルで使用されます。

false: 自動チューニングは無効です。Self Tuning接続文字列属性で使用されます。

1: 自動チューニングは有効です。レジストリまたはXMLファイルで使用されます。

true: 自動チューニングは有効です。Self Tuning接続文字列属性で使用されます。

デフォルト: 1

StatementCacheSize

各接続についてデータベースでキャッシュされるカーソルおよび文の数を指定します。この設定は、接続文字列のStatement Cache Size属性に対応します。値が0を超える場合も文のキャッシングが有効になります。

構成サポート:

Windowsレジストリ、XMLファイルおよびStatement Cache Size接続文字列属性

有効な値:

0 <= n <= init.oraデータベース構成ファイルで設定されるOPEN_CURSORSパラメータの値。

nは設定する数値です。

デフォルト: 0

StatementCacheWithUdts

SELECT文を実行したときに取得されるOracle UDTが、文のキャッシュ内の文とともにキャッシュされるどうかを指定します。この設定は、アプリケーションのメモリーの使用量およびパフォーマンスに影響します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: Oracle UDTは文とともにキャッシュされません。

1: Oracle UDTは文とともにキャッシュされます。

デフォルト: 1

ThreadPoolMaxSize

プロセス内で使用可能な各プロセッサに対するワーカー・スレッドのデフォルトの最大サイズを指定します。この値は、ODP.NETにおける、このスレッド・プールを使用した接続の作成、コマンドの実行のタイムアウト、外部プロシージャ(extproc)のパフォーマンスに影響を与える場合がありますが、スレッド・プールの最大サイズを必要以上に増加させると、パフォーマンス上の問題が発生する可能性があります。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0 <= n <= int.MaxValue: ODP.NETは、値nを使用してスレッド・プールの最大サイズをリセットできます。この値が無効の場合、ODP.NETのリセット操作は無視されます。たとえば、nがシステムで使用可能なプロセッサ数より少ない場合などです。この場合の結果は、値が-1の場合と同じになります。

-1: スレッド・プールの最大サイズをそのままにします。

デフォルト: -1(このレジストリ・エントリはデフォルトでは作成されません)

ODAC 2007より前またはリリース11.1.0.6.20より前のリリースでは、ODP.NETは、OracleCommand.CommandTimeoutプロパティが0より大きい値に設定されている場合、スレッド・プールの最大サイズをint.MaxValueにリセットすることに注意してください。この誤った動作は修正され、スレッド・プールの最大サイズはOracleCommand.CommandTimeoutによって変更されなくなりました。

TraceFileName

トレース情報のロギングに使用されるファイル名を指定します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

有効なディレクトリの場所およびファイル名。

デフォルト: c:\odpnet2.trc(.NET Framework 2.0の場合)

TraceLevel

ODP.NETのトレース・レベルを指定します。すべてのオブジェクトに対するすべての開始および終了コールをトレースするのは過剰になる場合があるため、TraceLevelは、トレース対象をプロバイダの特定の領域に制限するように指定します。各有効値は、指定可能なトレース・レベルを示します。有効値を追加すれば、複合されたトレース・レベルを取得できます。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: なし

1: 開始、終了およびSQL文の情報

2: 接続プーリング統計情報

4: 分散トランザクション(登録および登録解除)

8: 非管理例外におけるユーザーモード・ダンプの作成

16: HAイベント情報

32: ロード・バランシング情報

64: 自動チューニング情報

127: 前述のすべて

デフォルト: 0

注意: ODP.NETは、値に対するビットのチェックは行いません。トレースを有効にすると、トレース・ファイルへのロギングがODP.NETのパフォーマンスに影響する可能性があります。

注意: ユーザーモード・ダンプの作成には、dbghelp.dllバージョン 5.1.2600.0以上が必要です。

TraceOption

トレース情報を1つのファイルに記録するか、スレッドごとの複数のファイルに記録するかを指定します。単一トレース・ファイルを指定した場合は、TraceFileNameに指定されたファイル名が使用されます。複数トレース・ファイル・オプションが要求された場合は、指定されたファイル名にスレッドIDが付加され、スレッドごとにトレース・ファイルが作成されます。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0: 単一のトレース・ファイル

1: 複数のトレース・ファイル

デフォルト: 0

UdtCacheSize

ODP.NETがOracle UDTを取得して操作するために使用する各接続のオブジェクト・キャッシュのサイズをKB単位で指定します。

構成サポート:

WindowsレジストリおよびXMLファイル

有効な値:

0 <= n <= 4194303で、nは設定する数値です。

デフォルト: 4096

UDT Mapping

カスタム・タイプとデータベースのOracle UDTのマッピングを指定します。マッピングは、構成ファイルおよびカスタム・タイプ・ファクトリで指定できますが、マッピングが両方で指定されている場合は、構成ファイルで指定されたマッピングが、カスタム・タイプ・ファクトリを使用して指定されたマッピングより優先されます。

構成サポート:

XMLファイルおよびカスタム・タイプ・ファクトリ・クラス

有効な値:

有効なマッピング

デフォルト: なし


Windowsレジストリ

インストール後、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>