ODP.NETの特定のバージョンに対する設定は、いくつかの方法で構成することができ、それぞれ優先順位が異なります。
Windowsレジストリ・エントリは、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構成ファイルのみを読み込みます。そのため、その後に行われた構成の変更は、アプリケーションを再起動するまで読み込まれず、使用されません。
|
注意: Entity Framework 6のネイティブ・アプリケーションに対するODP.NET管理対象ドライバおよび管理対象外ドライバの.NET構成ファイル設定は、従来の.NET構成ファイル設定とはフォーマットが異なっています。このフォーマットの詳細は、ODP.NET READMEを参照してください。 |
次の各項では、ODP.NET管理対象外ドライバの構成方法について説明します。
ODP.NET管理対象ドライバの構成方法の詳細は、「Oracle Data Provider for .NET管理対象ドライバの構成」を参照してください。
ODP.NET管理対象外ドライバは、次のような属性の構成をサポートします。
Windowsレジストリ内。
XMLファイル内。
接続文字列などの別のメカニズムを使用したとき。または、適用可能な場合、プログラムでODP.NETクラスを使用したとき。
表2-1では、ODP.NETでサポートされる構成可能な各属性について説明します。この表では、「構成サポート」という用語の後に、その属性で使用可能な構成サポートのタイプ(Windowsレジストリ、XMLファイルなど)が続きます。
この表では、各属性のデフォルト値および有効値を示します。
|
注意: 記載されているデフォルト値は、レジストリ・キーが存在しないか、どこにも構成されていない場合に、属性に対して使用される値です。 |
表2-1 構成属性
インストール後、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="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>
ODP.NET管理対象ドライバは、.NET構成ファイルベースのmachine.config、application.config、web.configの設定をサポートしています。ただし、Windowsレジストリベースの構成はサポートしていません。.NET構成ファイルでのODP.NET管理対象ドライバの設定は、ODP.NET管理対象外ドライバの設定と似ているため簡単に移行できます。
ODP.NET管理対象外ドライバの構成ファイル内のセクション名<oracle.dataaccess.client>は、ODP.NET管理対象ドライバでは<oracle.manageddataaccess.client>となります。通常は、ODP.NET管理対象ドライバを使用する.NET構成ファイルでは、次に示すサブセクションの一部またはすべてを、<oracle.manageddataaccess.client>セクションの<version>サブセクション内にネストします。タグ名の大文字と小文字は区別されますが、属性名は区別されません。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<oracle.manageddataaccess.client>
<version number="*">
<dataSources>
...
...
</dataSources>
<settings>
...
...
</settings>
<LDAPsettings>
...
...
</LDAPsettings>
<implicitRefCursor>
...
...
</implicitRefCursor>
<edmMappings>
...
...
<edmMappings>
</version>
<version number="4.112.3.60">
<dataSources>
...
...
</dataSources>
<settings>
...
...
</settings>
<LDAPsettings>
...
...
</LDAPsettings>
<implicitRefCursor>
...
...
</implicitRefCursor>
<edmMappings>
...
...
<edmMappings>
</version>
</oracle.manageddataaccess.client>
</configuration>
次の各項では、ODP.NET管理対象ドライバの構成設定について説明します。この属性の多くはODP.NET管理対象外ドライバと同じものです。属性の詳しい説明は、表2-1を参照してください。
versionサブセクションには、アプリケーションに必要なすべての情報をグループ化します。<version number="X">の各セクションのパラメータは、ODP.NET管理対象ドライバのバージョンXに適用されます。たとえば、<version number="4.112.3.60">セクションのパラメータは、ODP.NET管理対象ドライバのアセンブリ4.112.3.60を使用するアプリケーションのみに適用されます。
バージョン固有のセクションとは別に、汎用セクションとして<version number="*">が含まれる場合もあります。このセクションのパラメータは、ODP.NET管理対象ドライバのすべてのバージョンに適用されます。バージョン固有のセクションで指定したパラメータは、汎用セクションのパラメータよりも優先されます。次に、versionセクションの例を示します。
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="TraceOption" value="1"/>
<setting name="PerformanceCounters" value="0" />
</settings>
</version>
<version number="4.112.3.60">
<settings>
<setting name="PerformanceCounters" value="4095" />
</settings>
</version>
</oracle.manageddataaccess.client>
ODP.NET管理対象ドライバ4.112.3.60を参照するアプリケーションの場合は、次のような値セットになります。
TraceOption = 1
PerformanceCounters= 4095
このセクションは<version>セクション内にのみ出現します。このセクションには様々なデータソース・エイリアスとそれに対応するデータ・ディスクリプタ間のマッピング情報を記述します。次に例を示します。
<dataSources> <dataSource alias="inst1" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)......)))"/> <dataSource alias="inst2" descriptor="(DESCRIPTION= ......)))"/> </dataSources>
接続文字列のData Source属性で指定したデータソース・エイリアスは、次の優先順序で解決されます。
.NET構成ファイルの<oracle.manageddataaccess.client>セクションにあるdataSourcesセクション内のデータソース・エイリアス。
.NET構成ファイルのTNS_ADMINで指定した場所にあるtnsnames.oraファイル内のデータソース・エイリアス。
.exeと同じディレクトリにあるtnsnames.oraファイル内のデータソース・エイリアス。
|
注意: 「データソース」の接続文字列属性は、データソース・エイリアスのかわりに、完全なディスクリプタや簡易接続構文で設定することもできます。前述の優先順位のルールが適用されるのは、データソース・エイリアスを解決するときのみです。 |
ODP.NET管理対象ドライバは、すべての別名エントリを、アプリケーションの起動時に検出されたapp.config、web.config、machine.config、およびtnsnames.oraファイルから読み込み、キャッシュします。ただし、LDAPサーバーで定義された別名は、オンデマンドで解決およびキャッシュされます。アプリケーションが使用するそれぞれの一意の別名は、LDAPサーバーに対して別名解決問合せが実行され、その別名に関連付けられている完全なディスクリプタが取得されるとキャッシュされます。
アプリケーションの開発中に、別名設定を変更または追加する必要がある場合、アプリケーションを再起動するのではなく、OracleDataSourceEnumerator.GetDataSources()の使用を検討してください。このメソッドを呼び出すと、tnsnames.oraファイルから読み込んだ既存のキャッシュ・エントリと、LDAPサーバーから取得したすべての別名が消去されます。次に、tnsnames.oraファイルが再解析され、そのエントリがすべて再キャッシュされます。app.config、web.config、およびmachine.configのエントリはアプリケーションの起動時に一度のみ読み込まれて内容が保持され、OracleDataSourceEnumerator.GetDataSources()を呼び出しても再解析されません。
OracleDataSourceEnumerator.GetDataSources()メソッドの呼出しは、接続プールに影響します。これは、指定された接続プールに対して最初の接続が作成された後で、一意の接続文字列ごとに作成された接続プールによって、解決された完全なディスクリプタ情報がキャッシュされるためです。その後、接続プールは、後続のあらゆる接続作成に関して、キャッシュされた完全ディスクリプタ情報を使用します。このため、別名が以前と異なるデータベースを指しているアプリケーションの実行中に、tnsnames.oraまたはLDAPエントリが修正されたアプリケーションに関しては、OracleDataSourceEnumerator.GetDataSources()メソッドを呼び出して古いキャッシュ・エントリを解決する必要があります。次に、ClearPool(OracleConnection)インスタンス・メソッドまたはClearAllPools()静的メソッドを呼び出して、既存の接続を削除して、OracleDataSourceEnumerator.GetDataSources()の呼出しによって読み込まれた新しい完全ディスクリプタ値を取得する必要があります。この体系に従うと、接続プールのすべての接続で、別名に関連付けられている新しい完全ディスクリプタが使用され、接続プールのすべての接続が、同一のデータベースに対して確立されることが保証されます。
ディスクリプタの設定内では、次のキーワードをサポートしています。
ADDRESS
ADDRESS_LIST (注意: フェイルオーバーのみをサポートしています)
Oracle RACデータベースに接続する際のロードのバランスについては、SCANリスナーとRuntime Load Balancingを使用することをお薦めします。
DESCRIPTION
DESCRIPTION_LIST (注意: フェイルオーバーをサポートしていますが、Address_listのロード・バランスはサポートしていません)
HOST (注意: <hostname>、<IPv6 literal>、<IPv4 literal>をサポートしています)
IP (注意: 「ループバック」をサポートしています)
PROTOCOL (注意: tcpとtcpsをサポートしています)
SDU (注意: 256から65536までをサポートしています)
SECURITY: SSL_VERSION (注意: sqlnet.ora:ssl_versionをオーバーライドします)
TRANSPORT_CONNECT_TIMEOUT (注意: tcp.connect_timeoutをオーバーライドします)
|
注意:
|
|
関連項目: 各属性の詳細は、『Oracle Database Net Servicesリファレンス』を参照 |
「データソース」の接続文字列属性を指定せずに、ローカル・データベースに接続するための要件は次のとおりです。
リスナーが稼働している必要があります。
ORACLE_SID環境変数が適切に設定されている必要があります。
|
注意: 「データソース」の接続文字列属性を指定しない場合、プロトコルは「tcp」に、ポートは「1521」にそれぞれデフォルト設定されます。 |
このセクションは<version>セクション内にのみ出現します。このセクションには、ODP.NET管理対象ドライバに固有のすべての設定を記述します。次に、settingsセクションの例を示します。
<settings> <setting name="TraceLevel" value="7" /> <setting name="TraceOption" value="1"/> <setting name="TNS_ADMIN" value="C:\oracle\work"/> </settings>
ODP.NETリリース12.1.0.2以上では、InitialLobFetchSizeを-1に設定したときの新しいデフォルト動作が導入されました。新しいデフォルト値はLegacyEntireLOBFetch = 0です。以前の動作を使用する場合は、ODP.NET構成でLegacyEntireLobFetch = 1に設定します。詳細は、「InitialLONGFetchSizeを-1に設定」を参照してください。
サポートされるODP.NET管理対象ドライバの構成設定:
DbNotificationPort
DemandOraclePermission
FetchSize
LDAP_ADMIN: ldap.oraの場所を指定します。LDAP_ADMIN設定とTNS_ADMIN設定の組合せによって、ldap.oraの検索順序が設定されます。
ldap.oraは次の順序で検索されます。
app/web.config内のTNS_ADMIN
app/web.config内のLDAP_ADMIN
現行作業ディレクトリ
%ORACLE_HOME%\network\admin
%ORACLE_HOME%\ldap\admin
LegacyEntireLOBFetch
MaxStatementCacheSize
MetaDataXml
NAMES.DIRECTORY_PATH: デフォルトの検索順序は、TNSNAMESそしてEZCONNECTです。TNSNAMES、LDAPおよびEZCONNECTのみがサポートされている名前解決メソッドですが、これらの優先順位は修正できます。
NAMES.LDAP_AUTHENTICATE_BIND
NAMES.LDAP_CONN_TIMEOUT
NODELAY
ORACLE_SID
PerformanceCounters
RECEIVE_BUF_SIZE - TCPのSO_RECVBUF、すなわちTCPソケットのローカル側に伴うバッファ・スペースの合計を設定します。
SelfTuning
SEND_BUF_SIZE - TCPのSO_SENDBUF、すなわちTCPソケットのローカル側に伴うバッファ・スペースの合計を設定します。
SQLNET.AUTHENTICATION_SERVICES: サポートされている値は、NTS、NULL、空または未指定です。
StatementCacheSize
SSL_VERSION
TNS_ADMIN : tnsnames.ora、ldap.ora、sqlnet.oraのうち、1つ(または複数)が置かれている場所。
|
注意: ODP.NET管理対象ドライバとOracleホームを一緒にインストールすると、TNS_ADMIN設定が自動的に.NET Frameworkのmachine.configファイル内に作成されます。TNS_ADMIN設定はディレクトリ<ORACLE_HOME>\Network\Admin\となるように設定され、ここがデフォルトのマシンの場所となってtnsnames.ora、sqlnet.oraおよびldap.oraの各ファイルがホスティングされます。 |
TraceFileLocation: トレース・ファイルの保存先ディレクトリ(たとえば、D:\traces\)。TraceFileNameをサポートするODP.NET管理対象外ドライバの場所とは異なります。
TraceLevel: 1 = パブリックAPI、2 = プライベートAPI、4 = ネットワークAPI/データ。これらの値のいずれか1つを指定できます。すべてを有効にするには、TraceLevelを7に設定します。エラーが常にトレースされます。
TraceOption
TCP.CONNECT_TIMEOUT
WALLET_LOCATION : Microsoft Certificate Store (MCS)およびファイル・システム・ウォレットをサポートしています。
Oracle Advanced Security Option (ASO)暗号化はサポートされません。SQLNET.ENCRYPTION_SERVERをrequiredに設定することは、クライアント接続確立失敗の原因となるため、サポートされていません。SQLNET.ENCRYPTION_SERVERを設定しないこと、および他の有効な値に設定することはサポートされています。
ODP.NET管理対象プロバイダでサポートされるのは、ASO NTS認証アダプタのみです。データベース・サーバーがWindows上にあり、NTS外部認証をサポートしており、SQLNET.AUTHENTICATION_REQUIREDがtrue、1またはonに設定されていることが必要です。ODP.NET管理対象ドライバ・クライアントも、NTS外部認証を利用する必要があります。その他のASO NTS接続シナリオは、クライアントとサーバーがASO認証メカニズムについて合意することができないため、すべて失敗します。
Kerberos NTS外部認証はサポートされません。NTS外部認証は、Microsoft NT LAN Manager (NTLM)経由でのみサポートされます。
|
関連項目: 『Oracle Database Net Servicesリファレンス』 |
このセクションは<version>セクション内にのみ出現します。このセクションには、ODP.NET管理対象ドライバに固有のすべてのLDAP設定を記述します。次に、<LDAPsettings>セクションの下位にある<LDAPsetting>サブセクションの例を示します。
<LDAPsettings> <LDAPsetting name="DIRECTORY_TYPE" value="AD" /> <LDAPsetting name="DEFAULT_ADMIN_CONTEXT" value="dc=Oracle,dc=com"/> </LDAPsettings>
ODP.NET管理対象ドライバでは、LDAPサーバー/サービス、特にMicrosoft Active DirectoryおよびOracle Internet Directory (OID)によるTNS別名解決をサポートしています。TNS別名解決は、LDAPsettingsセクションまたはldap.oraファイルの設定を使用する場合に発生します。LDAPsettingsセクションの設定は、ldap.oraの設定よりも優先されます。
Active Directoryについて、ldap.oraに必要なのは、DIRECTORY_TYPEおよびDEFAULT_ADMIN_CONTEXTパラメータのみです。DIRECTORY_SERVERSパラメータが欠落しているか、または値がない場合、カレント・ドメインのデフォルトLDAPサーバーが使用されます。
OIDに対する構成を完了するには、すべてのldap.oraパラメータを有効な値で設定する必要があります。
ODP.NET管理対象ドライバとODP.NET管理対象外ドライバでは、名前解決にLDAPを使用する場合に、同じレベルのセキュリティをサポートしています。
| MicrosoftActive Directory | ||
|---|---|---|
| 暗号化 | なし | SSL |
| 認証 | 匿名 | サポート対象外 |
| ドメイン・ユーザー | ||
| Oracle Internet Directory | ||
|---|---|---|
| 暗号化 | なし | SSL |
| 認証 | 匿名 | 匿名 |
| ウォレット
注意: Oracle Internet Directory向けのウォレット・ベースの認証は、このリリースではサポートしていません。 |
||
|
関連項目:
|
このセクションは<version>セクション内にのみ出現します。このセクションには、暗黙的にバインドする必要のあるREF CURSORパラメータ関連のすべての情報を記述します。次に、<implicitRefCursor>セクションの例を示します。
<implicitRefCursor>
<storedProcedure schema="USERREFCUR" name="TestProc1">
<refCursor name="Param3">
<bindInfo mode="Output"/>
<metadata columnOrdinal="0" columnName="DEPTNO" baseColumnName="DEPTNO" baseSchemaName="USERREFCUR" baseTableName="DEPT" nativeDataType="number" providerType="Int32" dataType="System.Int16" columnSize="2" allowDBNull="true" />
<metadata columnOrdinal="1" columnName="DNAME" baseColumnName="DNAME" baseSchemaName="USERREFCUR" baseTableName="DEPT" nativeDataType="varchar2" providerDBType="String" columnSize="30" />
</refCursor>
<refCursor name="param2">
<bindInfo mode="Output"/>
<metadata columnOrdinal="0" columnName="EMPNO" baseColumnName="EMPNO" baseSchemaName="USERREFCUR" baseTableName="EMP" nativeDataType="number" providerType="Int32" dataType="System.Int16" columnSize="4" allowDBNull="false" />
</refCursor>
</storedProcedure>
<!--Next stored procedure information-->
<storedProcedure name="TestProc2">
...
...
</storedProcedure>
</implicitRefCursor>
このセクションは<version>セクション内にのみ出現します。このセクションには、分散トランザクションに関するすべての情報を記述します。次に、distributedTransactionセクションの例を示します。
<distributedTransaction> <setting name="OMTSRECO_IP_ADDRESS" value="my-pc" /> <setting name="OMTSRECO_PORT" value="2040" /> <setting name="ORAMTS_SESS_TXNTIMETOLIVE" value="240" /> </distributedTransaction>
OMTSRECO_IP_ADDRESS: データベースのインダウト・トランザクションを解決するために、OraMTS Recoveryサービスを実行するマシン名(またはIPアドレス)を指定します。デフォルト値はローカル・マシンの名前です。
OMTSRECO_PORT: データベースのインダウト・トランザクションを解決するために、OraMTS Recoveryサービスをリスニングするポートを指定します。デフォルト値は2030です。
ORAMTS_SESS_TXNTIMETOLIVE: トランザクションをデータベースからデタッチまたは登録解除してから、非アクティブのままにする時間を秒単位で指定します。この時間を超過すると、トランザクションはプロバイダによって自動的に終了されます。デフォルトは120秒です。
このセクションは<version>セクション内にのみ出現します。このセクションには、EDMマッピングに関連するすべての情報を記述します。次に、edmMappingsセクションの例を示します。
<edmMappings>
<edmMapping dataType="number">
<add name="bool" precision="1"/>
<add name="byte" precision="2" />
<add name="int16" precision="5" />
</edmMapping>
</edmMappings>
Oracle Notification Service (ONS)を構成する場合、ローカルまたはリモートのいずれかの構成を選択できます。リモート構成は、スタンドアロンのクライアント・アプリケーションに適した構成です。12cリリース1 (12.1)より前のリリースでは、このセクションはONSの通知を受信するために必須でした。12.1では、このセクションがオプションになり、ONSのデーモンに関する情報はサーバー自体で受信します。ただし、ODP.NETは、サーバーから受信する<host:port>ペアに加えて、このセクションにユーザーが指定する<host:port>ペアからのすべてのイベントをリスニングします。
ローカル構成の場合は、ODP.NETがローカルのONSデーモンから直接イベントを受信できるように、ODP.NETの稼働ノードにONSが構成されており、利用可能であることを確認してください。クライアント側のONSデーモン構成については、「クライアント側のONSデーモン構成」を参照してください。ローカル構成のサンプル書式を次に示します。
<onsConfig configFile="C:\temp\test.config" mode="local"> </onsConfig>
|
注意: .NET構成ファイルで指定するconfigFileは、ローカルのONSデーモンが使用するons.configに指定したのと同じ値をlocalportとremoteportに指定する必要があります。これにより、ローカルのONSデーモンからイベントを受信する機能がアプリケーションで有効になります。 |
リモート構成は、リモート・マシンで実行されているONSデーモンからアプリケーションが直接ONSイベントを受信する場合に使用します。クライアント側にONSデーモンを置く必要がないため、そのプロセスを管理しなくて済むことが、この構成の利点の1つです。
リモート構成のサンプル書式を次に示します。
<onsConfig mode="remote">
<ons database="db1">
<add name="nodeList" value="racnode1:4100, racnode2:4200" />
</ons>
<ons database="db2">
<add name="nodeList" value=" racnode3:4100, racnode4:4200" />
</ons>
</onsConfig>
リモート構成の場合、そのアプリケーションでは、接続する可能性のあるすべてのデータベースに対して<host>:<port>値を指定する必要があります。<host>:<port>値のペアは、ONSデーモンがリモート・クライアントと通信する様々なOracle RACノードのポートを表します。
ONS構成は、ONSの構成ファイルORACLE_HOME/opmn/conf/ons.configを使用して制御します。このファイルは、ONSデーモンに動作方法を指示します。SRVCTLユーティリティを使用して、ONSデーモンを起動および停止できます。これは、サーバー・インストール中にデフォルトで各ノードにインストールされます。SRVCTLユーティリティの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
ons.config内の構成情報は、単純な名前と値のペアで定義されています。ONS.configの例を次に示します。
# This is an example ons.config file # # The first three values are required localport=4100 remoteport=4200 nodes=racnode1.example.com:4200,racnode2.example.com:4200
ons.configファイルのパラメータには、必須のものとオプションのものがあります。表2-2は必須のONS構成パラメータを示し、表2-3はオプションのONS構成パラメータを示します。
表2-2 必須のONS構成パラメータ
| パラメータ | 説明 |
|---|---|
|
|
ローカル・クライアントと通信するために、ONSがローカル・ホスト・インタフェースでバインドするポート。 たとえば、 |
|
|
他のONSデーモンと通信するために、ONSがすべてのインタフェースでバインドするポート。 たとえば、 |
|
|
通信相手である他のONSデーモンのリスト。ノード値は、ホスト名またはIPアドレスにポートを追加したもののカンマ区切りのリストとして指定します。提供するポート値は、各ONSインスタンスがリスニングしているリモート・ポートです。全ノードで同一のファイルを維持するために、現行のONSノードの たとえば、 ノード行にリスト表示されているノードは、Oracle RACインスタンス内の個別のノードに対応します。ノードをリストに含めることにより、中間層ノードはOracle RACノードと確実に通信できます。最低1つの中間層ノードと、1つのOracle RACインスタンス内のノードを構成しないと、互いが認識されません。それぞれの側で最低1つのノードが互いを認識していると、すべてのノードが認識されます。各Oracle RACノードのONS構成ファイルでは、すべての単一クラスタおよび中間層ノードをリスト表示する必要はありません。特に、1つのONS構成ファイル・クラスタ・ノードが中間層を認識している場合、クラスタ内のすべてのノードが中間層を認識しています。 |
表2-3 オプションのONS構成パラメータ
| パラメータ | 説明 |
|---|---|
|
|
ONSがログに記録するメッセージ・レベル。この値は、1(ログに記録されるメッセージ量は最小)から9(ログに記録されるメッセージ量は最大)までの整数値です。デフォルト値は3です。 たとえば、 |
|
|
ONSがメッセージのロギングに使用するログ・ファイル。ログ・ファイルのデフォルト値は たとえば、 |
|
|
Oracle Secure Sockets Layer(SSL)がSSL証明書の格納に使用するウォレット・ファイル。ONSでウォレット・ファイルが指定されると、他のONSインスタンスとの通信時にSSLを使用し、接続しようとするすべてのONSインスタンスからSSL証明書の認証を要求します。つまり、1つのONSインスタンスでSSLを有効にする場合、このインスタンスと接続されているすべてのインスタンスでも有効にする必要があります。この値は、 たとえば、 |
|
|
ONSがすべてのOracle RACノードおよびポート番号を、ONS構成ファイルでなくOracle Cluster Registry (OCR)に格納するかどうかを示す、サーバー側での使用のために予約されている値。 このオプションは、クライアント側では使用しないでください。 |
ons.configファイルでは、ナンバー記号(#)で始まる行に空白行およびコメントを使用できます。
ODP.NET管理対象ドライバにはOracle Services for MTSがすべて登録されており、コミット機能も含まれているため、管理コードを使用してそれらの機能を実行できます。これまでと同様にOracle Services for MTSリカバリ・サービスは非管理です。
Oracle.ManagedDataAccessDTC.dllは、ODP.NET管理対象ドライバのパッケージに含まれています。このDLLにはOracle Services for MTSの登録とコミット機能があり、ODP.NET管理対象ドライバのアプリケーションで分散トランザクションを使用する場合には、このDLLをOracle.ManagedDataAccess.dllとともにデプロイする必要があります。同じマシンで非管理のデータ・アクセス・ドライバ(ODBCなど)が分散トランザクションを使用する場合にも、非管理のOracle Services for MTSバージョンを平行して実行できます。
Oracle.ManagedDataAccessDTC.dllは、32ビット.NET Frameworkと64ビット.NET Frameworkの2つのバージョンがあり、ODP.NET管理対象ドライバとともにインストールされます。どちらのOracle.ManagedDataAccessDTC.dllも完全管理のDLLですが、Microsoft Distributed Transaction Coordinator (MS DTC)のApplication Program Interface (API)は非管理コードであるため、プラットフォームによって異なります。したがって、ODP.NET管理対象ドライバの登録とコミットのコールでは、32ビットと64ビットのどちらのMS DTCをコールするのかを識別する必要があります。
これらのDLLは次のディレクトリにあります。
32ビット.NET Frameworkの場合: ORACLE_HOME\odp.net\managed\x86
64ビット.NET Frameworkの場合: ORACLE_HOME\odp.net\managed\x64
.NETアプリケーションのターゲット・プラットフォーム(32ビットまたは64ビット)に応じて、適切なディレクトリからOracle.ManagedDataAccessDTC.dllをデプロイしてください。
.NETアプリケーションからはOracle.ManagedDataAccessDTC.dllを直接参照しないでください。これは分散トランザクションの使用時にODP.NET管理対象ドライバによって暗黙的にロードされます。
Oracle Services for MTSリカバリ・サービスを実行するマシンは、ODP.NET管理対象ドライバと同じマシンでなくてもかまいません。管理者は、アプリケーションの.NET構成ファイル内で、リカバリ・サービスを実行するホスト・マシンの名前を指定できます。
|
関連項目: ODP.NET管理対象ドライバ用リカバリ・サービスのOracle Services for MTSセットアップに関するOracle Services for MTS |
表2-4に、ODP.NET管理対象ドライバとODP.NET管理対象外ドライバの構成の相違点を示します。
表2-4 ODP.NET管理対象ドライバとODP.NET管理対象外ドライバの構成の相違点
| 機能カテゴリ | ODP.NET管理対象外ドライバと比較した場合の相違点 |
|---|---|
|
構成 |
構成ファイルの書式が異なります。「Oracle Data Provider for .NET管理対象ドライバの構成」を参照してください。 |
|
構成 |
ODP.NET管理対象ドライバに付属する |
|
構成 |
Windowsレジストリベースの構成はサポートされていません。 |
|
構成 |
Oracle High Availability (HA)とOracle RAC Load Balancing (RLB)の通知にはOracle Notification Service (ONS)を使用します。そのため、HAまたはRLBを使用する場合は、Oracle Database Advanced Queuing (AQ)ではなくONSを使用するデータベースとクライアントを構成します。連続問合せ通知には従来どおりAQを使用することに注意してください。 |
|
構成パラメータ |
|
|
構成パラメータ |
|
|
構成パラメータ |
|
|
構成パラメータ |
|
|
構成パラメータ |
|
|
構成パラメータ |
|
|
構成パラメータ |
|
|
構成パラメータ |
|
|
接続文字列 |
コンテキスト接続はサポートされていません。 |
|
接続文字列 |
|
|
接続文字列 |
|
|
接続文字列 |
|
|
接続文字列 |
|
|
接続性 |
Oracle Times Tenデータベースへの接続はサポートされていません。 |
|
パフォーマンス監視 |
|
|
パフォーマンス監視 |
パフォーマンス監視のカテゴリ名は「ODP.NET管理対象ドライバ」のみです。 |
|
プロバイダ・タイプ |
プロバイダ・タイプは、文化に依存しない文字列のみを(コンストラクタ経由で)受け入れて、( |
|
トレース |
トレース・ファイル名の書式: |
|
トレース |
|
|
トレース |
トレース・ファイルの作成場所や、ODP.NET管理対象ドライバでトレース・ファイルを作成するような問題が発生したことを示す、イベントログのエントリが生成されます。 |