プライマリ・コンテンツに移動

Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
| 目次 | 索引

前 | 次 |

# Oracle Data Provider for .NET管理対象外ドライバの構成

次の各項では、ODP.NET管理対象外ドライバの構成方法について説明します。

ODP.NETは、`web.config`、`app.config`または`machine.config`という名前のXMLファイルを使用して構成できます。これらの構成ファイルには、ODP.NETの構成に固有のセクションがあります。

管理対象ODP.NETの場合、開発者は従来の`<oracle.dataaccess.client>`セクションも、新しい`<oracle.unmanageddataaccess.client>`セクションのどちらも使用できます。アプリケーションでは、可能なかぎり`<oracle.unmanageddataaccess.client>`を使用することをお薦めします。管理対象ODP.NETの場合、管理対象は`<oracle.manageddataaccess.client>`を使用します。

管理対象外ODP.NETは、管理対象ドライバで使用できない一部の機能もサポートしているので、`<oracle.unmanageddataaccess.client>`は`<oracle.manageddataaccess.client>`のスーパーセットです。両方のプロバイダに共通している機能は、同じ構造とプロパティを共有しており、値もほぼ同じです。プログラマにとっては、フォーマットが共有されているのであれば、いずれかのプロバイダを互換的に使用し、管理対象外と管理対象のODP.NETの間で移行するほうが簡単でしょう。

この項では、Windowsレジストリ`<oracle.dataaccess.client>`、または独自の`<oracle.unmanageddataaccess.client>`設定での管理対象外のODP.NET構成設定について扱います。`<oracle.manageddataaccess.client>`との共有設定については、次を参照してください。

関連項目:

Oracle Data Provider for .NET管理対象ドライバの構成

## サポートされる構成設定

ODP.NET管理対象外ドライバは、次のような属性の構成をサポートします。

- Windowsレジストリ内。

- XMLファイル内。

- 接続文字列などの別のメカニズムを使用したとき。または、適用可能な場合、プログラムでODP.NETクラスを使用したとき。

表2-2では、ODP.NETでサポートされる構成可能な各属性について説明します。この表では、「構成サポート」という用語の後に、その属性で使用可能な構成サポートのタイプ(Windowsレジストリ、XMLファイルなど)が続きます。

この表では、各属性のデフォルト値および有効値を示します。

注意:

記載されているデフォルト値は、レジストリ・キーが存在しないか、どこにも構成されていない場合に、属性に対して使用される値です。

表2-2 構成属性

属性/設定名 | 説明
--- | ---
`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` | ODP.NET接続文字列属性`enlist=dynamic`のODAC 12cリリース3バージョンの動作変更により、`DynamicEnlistment`は実行されなくなりました。
`FetchSize` | データベース・ラウンドトリップからフェッチしたデータをODP.NETがキャッシュするために割り当てる合計メモリー・サイズをバイト単位で指定します。この値は、`OracleCommand`および`OracleDataReader` `FetchSize`プロパティでも設定できます。 構成サポート: Windowsレジストリ、XMLファイルおよびODP.NETクラス 有効な値: `0 <=` `n` `<= int.MaxValue`: `n`は、バイト単位のキャッシュ・サイズです。 デフォルト: `131072`
`LegacyEntireLobFetch` | Oracle Databaseの`BLOB`および`CLOB`列から、`OracleBlob`および`OracleClob`型、または`OracleBinary`および`OracleString`型を返します。 `InitialLobFetchSize`が`-1`に設定されている場合にのみ、この設定が適用されます。 有効な値: `0`: `OracleBlob`および`OracleClob`を返します。 `1`: `OracleBinary`および`OracleString`を返します。 デフォルト: `0`
`LegacyTransactionBindingBehavior` | `System.Transactions`トランザクションからデータベース接続をデタッチするタイミングを指定します。デフォルトでは、接続の終了による明示的なバインド解除時か、トランザクションの破棄による暗黙的なバインド解除時にのみ、接続をデタッチします。この属性の設定は、トランザクションの終了時(コミット、強制終了、タイムアウト)、接続の終了時、またはトランザクションの破棄時に必ず接続をデタッチするように変更することもできます。 ODP.NET 11.2.0.3.20以前のリリースでは、後者がデフォルトの動作でした。現行のデフォルト動作を使用することをお薦めします。 以前のデフォルト動作では、トランザクションが完了する前にタイムアウト時間を超過すると、その接続のトランザクションが自動的にバインド解除され、その接続の以降の操作は`AutoCommit`モードで実行されていました。この場合、タイムアウトする前の操作はロールバックされますが、タイムアウト後に実行した操作はコミットされます。 現在のデフォルト設定では、トランザクションがタイムアウトすると例外が発生し、それ以降の操作は接続時に実行されます。 構成サポート: WindowsレジストリおよびXMLファイル 有効な値: `0:` 接続の終了時またはトランザクションの破棄時にトランザクションの接続をデタッチします。 `1:` 接続の終了時、トランザクションの破棄時、またはトランザクションの完了時(コミット、ロールバック、タイムアウト)に、トランザクションの接続をデタッチします。 デフォルト: `0`
`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` このプロパティは12.2.0.1で非推奨となりました。今後のリリースでサポートが終了する予定です。
`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 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="StatementCacheSize"    value="10"/>
          <add name="TraceFileName"         value="D:\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="StatementCacheSize" value="50"/>
         <add name="ThreadPoolMaxSize" value="30"/>
         <add name="TraceFileName" value="D:\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>

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

たとえば、`FetchSize`要素と値を従来の形式から新しい形式に変換する方法は次のとおりです。

    <oracle.dataaccess.client>
       <settings>
         <add name="FetchSize" value="131072" />
       </settings>
    </oracle.dataaccess.client>

    <oracle.unmanageddataaccess.client>
       <version number="*">
         <settings>
           <setting name="FetchSize" value="131072" />
         </settings>
       </version>
    </oracle.unmanageddataaccess.client>

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

### SQL翻訳フレームワークの構成

SQL翻訳プロファイルの構成

デフォルトのSQL翻訳プロファイルは、.NET構成ファイルでアプリケーション全体のすべての接続に設定するか、プロファイルの範囲をオプションの`dataSource`および`userId` XML属性に基づいて制限することもできます。これらの`dataSource`および`userId` XML属性は、データベース接続を開くために使用される接続文字列の`Data Source`および`User Id`属性に直接対応しています。

注意:

SQL翻訳プロファイル設定は`<oracle.unmanageddataaccess.client>`セクションでのみサポートされます。<`oracle.dataaccess.client>`セクションや`<oracle.manageddataaccess.client>`セクションではサポートされません。

これは、`Data Source`および`User Id`に対するすべての接続で使用されます。

これは、指定された`Data Source`に対するすべての接続で使用されます。

これは、指定された`User Id`に対するすべての接続で使用されます。

これは、指定された`Data Source`および`User Id`に対するすべての接続で使用されます。

複数のデフォルト・プロファイル・エントリを構成でき、これにより様々な`dataSource`属性および`userId`属性のデフォルト・プロファイルの構成を可能にしますが、プロファイルを設定する際には、最大一致属性のプロファイルが選択されます。

一致エントリが2つあり、1つは`dataSource`のみでもう1つは`userId`のみの場合、`userId`が一致するエントリが`dataSource`が一致するエントリより優先されます。

前述の構成では、`Data Source`属性に`stf_ds`および`User Id`属性に`stf_user`を持つ接続文字列で接続しようとする場合、前述の両方のエントリが一致します。このような場合、`User Id`属性が一致するエントリが優先されます。これは、`profile_user`がデフォルト・プロファイルとして選択されることを意味します。

エラー・マッピングの構成

アプリケーションはアプリケーション構成ファイルで接続関連エラー・マッピングを構成できます。エラー・マッピングは、`Data Source`名、`User Id`およびプロファイル名自体に基づいてスコープ設定することもできます。

次に3つすべての属性のエラー・マッピングを示す例を示します。

    <configuration>
      <oracle.unmanageddataaccess.client>
       <version number="*">
       <sqlTranslation>
         <defaultProfiles>
          <defaultProfile dataSource="stf_ds" userId="stf_user" profile=" Profile4"/>
         </defaultProfiles>
         <ErrorMappings>
            <ErrorMapping dataSource="stf_ds" userId="stf_user" profile="Profile4">
              <add oracleErrorNumber="1017" translatedErrorCode="222" />
              <add oracleErrorNumber="1005" translatedErrorCode="888" />
            </ErrorMapping>
         </ErrorMappings>
        </sqlTranslation>
       </version>
      </oracle.unmanageddataaccess.client>
    </configuration>

`dataSource`属性および`userId`属性はオプションですが、マッピングをスコープ設定するのに使用できることに注意してください。

すべてのプロファイルに使用できるエラー・マッピングを示すこともできます。次はその例です。

    <ErrorMappings>
      <ErrorMapping profile="*">
        <add oracleErrorNumber="1017" translatedErrorCode="222" />
        <add oracleErrorNumber="1018" translatedErrorCode="888" />
      </ErrorMapping>
    </ErrorMappings>

デフォルト・エラー・マッピング・プロファイルの構成

デフォルト・エラー・マッピング・プロファイルは`defaultErrorMappingProfile`設定を通じて構成できます。これは、デフォルト・エラー・マッピング・プロファイルを指定するために使用できます。特に、デフォルト・プロファイルが.NET構成ファイルを通じて指定されず、サーバー側で指定されているシナリオにおいて使用できます。この場合、接続関連エラーが発生すると、ODP.NETでは`defaultErrorMappingProfile`設定で指定されているプロファイルの.NET構成ファイルで指定されているエラー・マッピングを適切に使用できるようになります。

次にデフォルト・エラー・マッピング・プロファイルを構成する例を示します。

    <sqlTranslation>
      <settings>
        <add name="defaultErrorMappingProfile" value="error_mapping_profile" />
      <settings>
    </sqlTranslation>

SQL翻訳フレームワーク文キャッシュ・サイズの構成

クライアントは、翻訳を避けるためにODP.NETが内部的にキャッシュできる翻訳された文の数を構成できます。これは、手間のかかる操作になる場合があります。

次にデフォルト・エラー・マッピング・プロファイルを構成する例を示します。

    <sqlTranslation>
        <settings>
          <add name="translatedStatementCacheSize" value="50" />
          <settings>
    </sqlTranslation>

SQL翻訳フレームワークの構成ファイルのサンプル

次に、使用できるあらゆる可能性のあるエレメント付きのサンプル構成ファイルを示します。

    <sqlTranslation>
      <settings>
        <add name="translatedStatementCacheSize" value="50" />
        <add name="defaultErrorMappingProfile" value="def_Profile" />
      <settings>
      <defaultProfiles>
        <defaultProfile profile="STF.NO_DS_NO_USERID"/>
        <defaultProfile userId="stf" profile="STF_NO_DS"/>
        <defaultProfile dataSource="stf_inst" profile="STF_NO_USERID"/>
        <defaultProfile dataSource="stf_inst" userId="stf" profile="STF.STF_X"/>
      </defaultProfiles>
      <ErrorMappings>
        <ErrorMapping profile="def_profile">
          <add oracleErrorNumber="1017" translatedErrorCode="444" />
        </ErrorMapping>
        <ErrorMapping dataSource="stf_inst" userId="stf" profile=" STF.STF_X ">
          <add oracleErrorNumber="1018" translatedErrorCode="88888" />
        </ErrorMapping>
      </ErrorMappings>
    </sqlTranslation>

例2-1 すべての接続で使用できるプロファイルの設定

    <configuration>
      <oracle.unmanageddataaccess.client>
       <version number="*">
        <sqlTranslation>
         <defaultProfiles>
           <defaultProfile profile="Profile1"/>
          </defaultProfiles>
         </sqlTranslation>
       </version>
      </oracle.unmanageddataaccess.client>
    </configuration>

例2-2 特定のデータ・ソースのプロファイルの設定

    <defaultProfiles>
      <defaultProfile dataSource="stf_ds" profile="Profile2"/>
    </defaultProfiles>

例2-3 特定のユーザーIDのプロファイルの設定

    <defaultProfiles>
      <defaultProfile userId="stf_user" profile="Profile3"/>
    </defaultProfiles>

例2-4 特定のデータ・ソースおよびユーザーIDのプロファイルの設定

    <defaultProfiles>
      <defaultProfile dataSource="stf_ds" userId="stf_user" profile="Profile4"/>
    </defaultProfiles>

例2-5 複数のデフォルト・プロファイル・エントリの構成

    <defaultProfiles>
      <defaultProfile dataSource="stf_ds" profile="profile_ds"/>
      <defaultProfile userId="stf_user" profile="profile_user"/>
    </defaultProfiles>

### 管理対象外ODP.NETの統一構成付きのUDTマッピングの指定

ODP.NET管理対象ドライバではUDTマッピングが現在サポートされていないため、`<version>`セクション内の新しいセクションが使用され、統一構成形式で管理対象外ODP.NETのカスタムUDTマッピングがサポートされます。この新しいセクションは`<udtmappings>`として識別され、各マッピングは`<udtmapping>`要素を使用して識別されます。各`udtMapping`要素には次の属性を指定できます。

- `typeName` (必須)

- `factoryName` (必須)

- `dataSource` (オプション)

- `schemaName` (オプション)

これらの要素は、従来の構成形式で使用されているときと同じ名前および意味を保持します。

従来の形式を統一形式に変換する例:

    <configuration>
       <oracle.dataaccess.client>
         <settings>
           <add name="Person" value="udtMapping factoryName='PersonFactory, Sample, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' typeName='PERSON' schemaName='SCOTT' dataSource='oracle'" />
         </settings>
       </oracle.dataaccess.client>
    </configuration>

    <configuration>
       <oracle.unmanageddataaccess.client>
         <udtmappings>
           <udtmapping typename="PERSON" factoryname="PersonFactory, Sample, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" schemaname="SCOTT" datasource="oracle" />
         </udtmappings>
       </oracle.unmanageddataaccess.client>
    </configuration>

関連項目:

Oracleユーザー定義タイプ(UDT)および.NETカスタム・タイプ