プライマリ・コンテンツに移動
Oracle® Data Provider for .NET開発者ガイド
ODAC 12c リリース4 (12.1.0.2) for Microsoft Windows
E72575-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

ODP.NET管理対象ドライバは、.NET構成ファイルベースのmachine.configapplication.configweb.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サブセクションには、アプリケーションに必要なすべての情報をグループ化します。<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

dataSourcesセクション

このセクションは<version>セクション内にのみ出現します。このセクションには様々なデータソース・エイリアスとそれに対応するデータ・ディスクリプタ間のマッピング情報を記述します。次に例を示します。

<dataSources>
  <dataSource alias="inst1" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)......)))"/>
  <dataSource alias="inst2" descriptor="(DESCRIPTION= ......)))"/>
</dataSources>

接続文字列のData Source属性で指定したデータソース・エイリアスは、次の優先順序で解決されます。

  1. .NET構成ファイルの<oracle.manageddataaccess.client>セクションにあるdataSourcesセクション内のデータソース・エイリアス。

  2. .NET構成ファイルのTNS_ADMINで指定した場所にあるtnsnames.oraファイル内のデータソース・エイリアス。場所は絶対ディレクトリ・パスまたは相対ディレクトリ・パスでもかまいません。

  3. .exeと同じディレクトリにあるtnsnames.oraファイル内のデータソース・エイリアス。


注意:

「データソース」の接続文字列属性は、データソース・エイリアスのかわりに、完全なディスクリプタや簡易接続構文で設定することもできます。前述の優先順位のルールが適用されるのは、データソース・エイリアスを解決するときのみです。

「データソース」の接続文字列属性を指定せずに、ローカル・データベースに接続するための要件は次のとおりです。

  • リスナーが稼働している必要があります。

  • ORACLE_SID環境変数が適切に設定されている必要があります。


注意:

「データソース」の接続文字列属性を指定しない場合、プロトコルは「tcp」に、ポートは「1521」にそれぞれデフォルト設定されます。

ODP.NET管理対象ドライバは、すべての別名エントリを、アプリケーションの起動時に検出されたapp.configweb.configmachine.config、およびtnsnames.oraファイルから読み込み、キャッシュします。ただし、LDAPサーバーで定義された別名は、オンデマンドで解決およびキャッシュされます。アプリケーションが使用するそれぞれの一意の別名は、LDAPサーバーに対して別名解決問合せが実行され、その別名に関連付けられている完全なディスクリプタが取得されるとキャッシュされます。

アプリケーションの開発中に、別名設定を変更または追加する必要がある場合、アプリケーションを再起動するのではなく、OracleDataSourceEnumerator.GetDataSources()の使用を検討してください。このメソッドを呼び出すと、tnsnames.oraファイルから読み込んだ既存のキャッシュ・エントリと、LDAPサーバーから取得したすべての別名が消去されます。次に、tnsnames.oraファイルが再解析され、そのエントリがすべて再キャッシュされます。app.configweb.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をオーバーライドします)


注意:

  • SSLは、メソッドMCSおよびFILE経由でサポートしています。

  • Kerberos5およびNTS認証の両方がサポートされています。RADIUSはサポートされていません。

  • SQL*Net、簡易接続ネーミングおよびLDAP (つまりActive DirectoryおよびOracle Internet Directory)のみをサポートしています。

  • bequeath (beq)はサポートしていません。かわりにデフォルト・アドレスは、ポート1521と環境変数(ORACLE_SID)のOracleサービス名を使用したTCPループバックになります。



関連項目:

各属性の詳細は、『Oracle Database Net Servicesリファレンス』を参照

管理対象ODP.NETはTNSディスクリプタ・ベースのロード・バランシングをサポートしませんが、ADDRESS_LISTおよびDESCRIPTION_LISTを通じてフェイルオーバーはサポートします。

フェイルオーバーのみがサポートされるため、LOAD_BALANCEディレクティブまたはFAILOVERディレクティブを指定する必要はありません。ディレクティブは無視されます。

次の例はフェイルオーバーを利用するTNSディスクリプタを示します。

(DESCRIPTION=
   (ADDRESS_LIST=                            
     (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))
     (ADDRESS=(PROTOCOL=tcp)(HOST=host2)(PORT=1630))
     (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521)))
   (CONNECT_DATA=(SERVICE_NAME=Sales.us.example.com)))
 
(DESCRIPTION_LIST=
 (DESCRIPTION=
  (ADDRESS_LIST=
   (ADDRESS=(PROTOCOL=tcp)(HOST=sales1a-svr)(PORT=1521))
   (ADDRESS=(PROTOCOL=tcp)(HOST=sales1b-svr)(PORT=1521)))
  (CONNECT_DATA=(SERVICE_NAME=sales1.example.com)))
 (DESCRIPTION=
  (ADDRESS_LIST=
   (ADDRESS=(PROTOCOL=tcp)(HOST=sales2a-svr)(PORT=1521))
   (ADDRESS=(PROTOCOL=tcp)(HOST=sales2b-svr)(PORT=1521)))
  (CONNECT_DATA=(SERVICE_NAME=sales2.us.example.com)))) 

settingsセクション

このセクションは<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管理対象ドライバの構成設定:

  • BindByName

  • DbNotificationPort

  • DemandOraclePermission

  • FetchSize

  • LDAP_ADMIN: ldap.oraの場所を指定します。LDAP_ADMIN設定とTNS_ADMIN設定の組合せによって、ldap.oraの検索順序が設定されます。

    ldap.oraは次の順序で検索されます。

    1. app/web.config内のTNS_ADMIN

    2. app/web.config内のLDAP_ADMIN

    3. 現行作業ディレクトリ

    4. %ORACLE_HOME%\network\admin

    5. %ORACLE_HOME%\ldap\admin

  • LegacyEntireLOBFetch

  • MaxStatementCacheSize

  • MetaDataXml

  • NAMES.DIRECTORY_PATH: デフォルトの検索順序は、TNSNAMESそしてEZCONNECTです。TNSNAMESLDAPおよびEZCONNECTのみがサポートされている名前解決メソッドですが、これらの優先順位は変更できます。

  • NAMES.LDAP_AUTHENTICATE_BIND

  • NAMES.LDAP_CONN_TIMEOUT

  • NODELAY

  • ORA_DEBUG_JDWP: Oracle PL/SQL Debuggerおよびデータベースがアプリケーション・コードを変更することなく、自動的に接続できるようにします。値はhost=<IP_addressまたはhost_name>;port=<デバッギング・ポート番号>として設定されます。例: host=localhost;port=1234

  • ORACLE_SID

  • PerformanceCounters

  • RECEIVE_BUF_SIZE: TCPのSO_RECVBUF、すなわちTCPソケットのローカル側に伴うバッファ・スペースの合計を設定します

  • SelfTuning

  • SEND_BUF_SIZE: TCPのSO_SENDBUF、すなわちTCPソケットのローカル側に伴うバッファ・スペースの合計を設定します

  • ServiceRelocationConnectionTimeout

    サービスが再配置されているためなどデータベース・サービスが使用できなくなるたびに、この時間、アプリケーションでは数多くの接続エラーが発生します。エラーを引き起こす、使用できないサービスに対する不要な接続の試行を避けるために、ODP.NET管理対象ドライバおよび管理対象外ドライバでは、サービスが起動されるか、またはサービスの停止イベントを受け取ってからこのプロパティで指定した時間制限で切れるかのいずれか先にくるほうまで、あらゆる接続の試行をブロックします。指定した時間が経過すると、停止していることがわかっている特定のサービスに対するすべての接続試行がブロックされなくなります。それらのリクエストはサーバーに送信されます。ServiceRelocationConnectionTimeoutはOracle Fast Connection Failover (HA Events = true)とあわせてのみ使用できます。計画停止および無計画停止で動作します。秒単位。(デフォルト = 90)

  • SQLNET.AUTHENTICATION_SERVICES: サポートされている値は、kerberos5、NTS、tcpsnullemptyまたはnot-specifiedです。

  • StatementCacheSize

  • SSL_VERSION

  • TNS_ADMIN: tnsnames.oraldap.orasqlnet.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)。デフォルトのTraceFileLocation<Windowsユーザーの一時フォルダ>\ODP.NET\managed\traceです。

  • TraceLevel: 1 = パブリックAPI、2 = プライベートAPI、4 = ネットワークAPI/データ。これらの値のいずれか1つを指定できます。すべてを有効にするには、TraceLevel7に設定します。エラーが常にトレースされます。

  • TraceOption

  • TCP.CONNECT_TIMEOUT

  • WALLET_LOCATION: Microsoft Certificate Store (MCS)およびファイル・システム・ウォレットをサポートしています。

  • SQLNET.ENCRYPTION_CLIENT = 暗号化をオンにするかどうかをネゴシエートします。サポートされている値は、受入済、拒否済、要求済または必須です。

  • SQLNET.ENCRYPTION_TYPES_CLIENT = 使用する暗号化アルゴリズム。

次の表では、ODP.NET管理対象ドライバの有効な暗号化アルゴリズムを示します。

アルゴリズム名 有効な値
AES 128ビット鍵 AES128
AES 192ビット鍵 AES192
AES 256ビット鍵 AES256
RC4 128ビット鍵 RC4_128
RC4 256ビット鍵 RC4_256
2つの鍵を使用する3DES 3DES112
3つの鍵を使用する3DES 3DES168

データ暗号化設定の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

ODP.NET管理対象プロバイダは、ネットワーク暗号化を含むNTS認証アダプタのみをサポートします。データベース・サーバーはWindows上に必要で、NTS外部認証をサポートする必要があります。ODP.NET管理対象ドライバ・クライアントも、NTS外部認証を利用する必要があります。その他のNTS接続シナリオは、クライアントとサーバーがデータベース・セキュリティ認証メカニズムについて合意することができないため、すべて失敗します。

NTSベース外部認証は、Microsoft NT LAN Manager (NTLM)のみをサポートします。Kerberos NTSはサポートされていません。


関連項目:

『Oracle Database Net Servicesリファレンス』

LDAPsettingsセクション

このセクションは<version>セクション内にのみ出現します。このセクションには、ODP.NET管理対象ドライバに固有のすべてのLDAP設定を記述します。次に、<LDAPsettings>セクションの下位にある<LDAPsetting>サブセクションの例を示します。

<LDAPsettings>
  <LDAPsetting name="DIRECTORY_TYPE" value="AD" />
  <LDAPsetting name="DEFAULT_ADMIN_CONTEXT" value="dc=Oracle,dc=com"/>
</LDAPsettings>

Lightweight Directory Access Protocolの略。

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を使用する場合に、同じレベルのセキュリティをサポートしています。


Microsoft Active Directory
暗号化 なし SSL
認証 匿名 サポート対象外
ドメイン・ユーザー


Oracle Internet Directory
暗号化 なし SSL
認証 匿名 匿名
ウォレット

注意: Oracle Internet Directory向けのウォレット・ベースの認証は、このリリースではサポートしていません。



関連項目:

  • ディレクトリ使用パラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。

  • ネットワーク・アドレスの管理の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。


implicitRefCursorセクション

このセクションは<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>

distributedTransactionセクション

このセクションは<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秒です。

  • UseManagedDTC: falseに設定されていて.NET Framework 4.5.2以上を使用している場合、ODP.NETは分散トランザクション・サポートに.NET Frameworkを使用します。その他すべてのインスタンスでは、ODP.NETはOracle Services for Microsoft Transaction Serverを使用して分散トランザクションをサポートします。ODP.NET管理対象ドライバのBoolean (Default = false)のみです。

  • UseOraMTSManaged: trueに設定されていて.NET Framework 4.5.2以上を使用している場合、ODP.NETは分散トランザクションに管理対象コードを使用します。trueに設定しているが.NET 4.5.1以下が使用されている場合、例外がスローされます。falseに設定されている場合、ODP.NETはOracle Services for Microsoft Transaction Serverを使用して分散トランザクションをサポートします。ODP.NET管理対象外ドライバのBoolean (Default = false)のみです。

edmMappingsセクション

このセクションは<version>セクション内にのみ出現します。このセクションには、EDMマッピングに関連するすべての情報を記述します。edmMappingsの項のその他の例については、「Oracle Numberデータ型のデフォルト・マッピングおよびカスタマイズ」を参照してください。

onsConfigセクション

Oracle Notification Service (ONS)を構成する場合、ローカルまたはリモートのいずれかの構成を選択できます。リモート構成は、スタンドアロンのクライアント・アプリケーションに適した構成です。Oracle Database 12cより前のリリースでは、このセクションはODP.NETがONS通知を受け取るのに必須です。Oracle Database 12c以降では、このセクションがオプションになり、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に指定したのと同じ値をlocalportremoteportに指定する必要があります。これにより、ローカルの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構成は、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構成パラメータ

パラメータ 説明

localport

ローカル・クライアントと通信するために、ONSがローカル・ホスト・インタフェースでバインドするポート。

たとえば、localport=4100です

remoteport

他のONSデーモンと通信するために、ONSがすべてのインタフェースでバインドするポート。

たとえば、remoteport=4200です

nodes

通信相手である他のONSデーモンのリスト。ノード値は、ホスト名またはIPアドレスにポートを追加したもののカンマ区切りのリストとして指定します。提供するポート値は、各ONSインスタンスがリスニングしているリモート・ポートです。全ノードで同一のファイルを維持するために、現行のONSノードのhost:portをノード・リストに含めることも可能です。リストの読取り時には、これは無視されます。

たとえば、nodes=myhost.example.com:4200,123.123.123.123:4200です。

ノード行にリスト表示されているノードは、Oracle RACインスタンス内の個別のノードに対応します。ノードをリストに含めることにより、中間層ノードはOracle RACノードと確実に通信できます。最低1つの中間層ノードと、1つのOracle RACインスタンス内のノードを構成しないと、互いが認識されません。それぞれの側で最低1つのノードが互いを認識していると、すべてのノードが認識されます。各Oracle RACノードのONS構成ファイルでは、すべての単一クラスタおよび中間層ノードをリスト表示する必要はありません。特に、1つのONS構成ファイル・クラスタ・ノードが中間層を認識している場合、クラスタ内のすべてのノードが中間層を認識しています。


表2-3 オプションのONS構成パラメータ

パラメータ 説明

loglevel

ONSがログに記録するメッセージ・レベル。この値は、1(ログに記録されるメッセージ量は最小)から9(ログに記録されるメッセージ量は最大)までの整数値です。デフォルト値は3です。

たとえば、loglevel=3です

logfile

ONSがメッセージのロギングに使用するログ・ファイル。ログ・ファイルのデフォルト値は$ORACLE_HOME/opmn/logs/ons.logです。

たとえば、logfile=C:\app\user\product\12.1.0\opmn\logs\myons.logです。

walletfile

Oracle Secure Sockets Layer(SSL)がSSL証明書の格納に使用するウォレット・ファイル。ONSでウォレット・ファイルが指定されると、他のONSインスタンスとの通信時にSSLを使用し、接続しようとするすべてのONSインスタンスからSSL証明書の認証を要求します。つまり、1つのONSインスタンスでSSLを有効にする場合、このインスタンスと接続されているすべてのインスタンスでも有効にする必要があります。この値は、ewallet.p12ファイルが存在するディレクトリを指すように設定します。

たとえば、walletfile=C:\app\user\product\12.1.0\opmn\conf\ssl.wlt\defaultです。

useocr

ONSがすべてのOracle RACノードおよびポート番号を、ONS構成ファイルでなくOracle Cluster Registry (OCR)に格納するかどうかを示す、サーバー側での使用のために予約されている値。useocr=onの場合、すべてのOracle RACノードおよびポート番号がOracle Cluster Registry (OCR)に格納されます。

このオプションは、クライアント側では使用しないでください。


ons.configファイルでは、ナンバー記号(#)で始まる行に空白行およびコメントを使用できます。