プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Internet Directory管理者ガイド
11g リリース1(11.1.1)
B55919-08
  目次へ移動
目次

前
 
次
 

4 Oracle Internet Directoryコンポーネントのプロセス制御の理解

この章では、LDAPサーバーおよびレプリケーション・サーバー・プロセスに関するOracle Internet Directoryのプロセス制御アーキテクチャと関連概念について説明します。ここには、Oracle Internet Directoryプロセスの起動、停止およびモニタリングと、プロセス制御のいくつかのベスト・プラクティスが含まれます。

この章の内容は次のとおりです。

Oracle Internet Directoryサーバー・インスタンスの作成および破棄の詳細は、第8章「Oracle Internet Directoryインスタンスの管理」を参照してください。

Oracle Directory Integration and Provisioningサーバーの起動および停止の詳細は、『Oracle Fusion Middleware Oracle Directory Integration Platform管理者ガイド』の「Oracle Directory Integration and Provisioningサーバーの管理」の章を参照してください。

4.1 Oracle Internet Directoryのプロセス制御アーキテクチャ

Oracle Process Manager and Notification Server (OPMN)は、Oracle Internet Directoryを含むOracle Fusion Middlewareシステム・コンポーネントをモニターするデーモン・プロセスです。Oracle Enterprise Manager Fusion Middleware ControlではOPMNを使用して、Oracle Internet Directoryのインスタンスを起動または停止します。コマンド行からOracle Internet Directoryコンポーネントを起動または停止する場合、OPMNへのコマンド行インタフェースであるopmnctlを使用します


関連項目:


OPMNは、デーモン・プロセスOIDMON(ORACLE_HOME/bin/oidmon)を直接、起動、停止、再起動、および監視します。OIDMONは、Oracle Internet Directoryインスタンスのプロセス制御を行います。11g リリース1では、同一ノードの同一Oracleインスタンスに複数のOracle Internet Directoryインスタンスを設定できます。Oracle Internet Directoryインスタンスを新規作成する方法としては、タイプOIDのOracle Fusion Middlewareコンポーネントを作成することをお薦めします。この方法で作成した各Oracle Internet Directoryインスタンスには、独自のOIDMONがあります。

図4-1に、Oracle Internet Directoryのプロセス制御の全体的なアーキテクチャを示します。タイプOIDのOracle Fusion Middlewareコンポーネントごとに、OPMNにより、OIDMONプロセスが生成されます。この図は、2つのコンポーネントとしてoid1oid2を示しています。OIDMONはOIDLDAPDディスパッチャ・プロセスを生成し、OIDLDAPDディスパッチャ・プロセスは1つ以上のOIDLDAPDサーバー・プロセスを生成します。

Oracle Internet Directory 11g リリース1(11.1.1.7.0)以降、OIDLDAPDプロセスはOIDDISPD(ディスパッチャ)プロセスとOIDLDAPD(サーバー)プロセスに分割されます。ただしUNIXシステムおよびLinuxシステムでは、これらのプロセスはともに、実行時にps -efコマンドにより引き続きOIDLDAPDとして表示されます。

このインスタンスにレプリケーションが構成されている場合、OIDMONはレプリケーション・サーバー・プロセスを生成します。各ディスパッチャ・プロセスには、リクエストを受信するための独自の非SSLおよびSSLポートがあります。コンポーネントごとにディスパッチャが生成するOIDLDAPDサーバー・プロセスの数は、コンポーネントのインスタンス固有の構成エントリ内のorclserverprocs属性によって制御されます。


注意:

orclmaxlogfilesizeで指定された設定に関係なくログ・ファイルのサイズが1MBを超えて増加した場合、Oracle Internet Directoryインスタンスの再起動後に、OIDモニター(OIDMON)およびOIDDISPD (ディスパッチャ)ログ・ファイルがローテーションされます。

図4-1 Oracle Internet Directoryのプロセス制御

図4-1については周囲のテキストで説明しています。

関連項目:

Oracle Internet Directoryインスタンスの新規作成の詳細は、第8章「Oracle Internet Directoryインスタンスの管理」を参照してください。

4.2 ODS_PROCESS_STATUS表

Oracle Internet Directoryのプロセス情報は、ODSデータベース・ユーザー・スキーマのODS_PROCESS_STATUS表で管理されます。OIDMONは、指定された間隔で表の内容を読み取り、その表の内容が伝える目的に従って動作します。この間隔は、OIDMON起動時に使用されたsleepコマンド行の引数の値によって制御され、デフォルト値は10秒です。

表4-1に、ODS_PROCESS_STATUS表内のプロセス制御に関する情報を示します。

表4-1 ODS_PROCESS_STATUS表のプロセス制御項目

項目 意味

Instance

指定されたホスト上の指定されたサーバーIDに対する一意のインスタンス番号

PID

稼働中のサーバーのプロセスID

ServerID

サーバーID(2=OIDLDAPD、3=OIDREPLD)

Flags

サーバー・インスタンスに渡す必要のあるコマンド行引数

Hostname

このサーバーが存在している必要のあるホスト名

状態

サーバー・インスタンスの状態(0=停止、1=起動、2=実行中、3=再起動、4=シャットダウン、5=フェイルオーバー済、7=削除、8=追加)。OIDMONが状態を更新します。

RetryCount

サーバー・インスタンスが正常に起動するまでの起動試行回数

Instancename

サーバー・インスタンスの名前(server1など)

Compname

サーバー・コンポーネントの名前(OID1など)



注意:

  • Instance、Instancename、Compname、ServerIDおよびHostnameには一意性制約があります。

  • ここでは、情報を示す目的のみでODS_PROCESS_STATUSの詳細を説明しています。この表を直接変更しないようにしてください。


4.3 Oracle Internet Directoryのプロセスの起動、停止およびモニタリング

この項では、OPMNによるOracle Internet Directoryの起動時および停止時に発生するイベントについて説明します。また、プロセスのモニタリングについても説明します。この項では、次の項目について説明します。

4.3.1 opmn.xmlのOracle Internet Directoryスニペット

OPMNはOIDMONを起動するときに、OPMN構成ファイルORACLE_INSTANCE/config/OPMN/opmn/opmn.xmlのOracle Internet Directoryスニペットに基づいて、使用する引数を決定します。次に、Oracle Internet Directoryスニペットの例を示します。

<ias-component id="<componentName>">
 <process-type id="OID" module-id="OID">
  <process-set id="OID" numprocs="1">
   <environment>
      <variable id="TNS_ADMIN" value="ORACLE_INSTANCE/config" />
      <variable id="DB_CONNECT_STR" value="db_alias" />
   </environment>
   <module-data>
    <category id="oidmon-parameters">
     <data id="start-cmdline-opts" value="connect=$DB_CONNECT_STR start"/>
     <data id="stop-cmdline-opts" value="connect=$DB_CONNECT_STR stop"/>
    </category>
    </module-data>
   </process-set>
  </process-type>
 </ias-component>

次の2つのタグはOracle Internet Directoryに固有のものです。

  • OPMN用のOracle Internet Directoryコンポーネント固有のディレクティブは、タグ<ias-component id="OID" status="enabled>の下にあります。

  • OIDMON関連の要件は、タグ<category id="oidmon parameters">の下にあります。このようなディレクティブは1つのみである必要があります。

4.3.2 Oracle Internet Directoryを起動するOPMN

Oracle Internet Directoryは、次のように起動されます。


注意:

opmnctlを使用してOracle Internet Directoryインスタンスのみを起動する場合、opmn.xmlパラメータは、opmnctl startallを使用するときと同じ状態ではリロードされません。ファイルORACLE_INSTANCE/config/OPMN/opmn/opmn.xmlの変更をリロードするには、opmnctl reloadを実行します。

4.3.3 Oracle Internet Directoryを停止するOPMN

Oracle Internet Directoryは、次のように停止されます。


注意:

opmnctlを使用してOracle Internet Directoryインスタンスのみを起動する場合、opmn.xmlパラメータは、opmnctl startallを使用するときと同じ状態ではリロードされません。ファイルORACLE_INSTANCE/config/OPMN/opmn/opmn.xmlの変更をリロードするには、opmnctl reloadを実行します。

4.3.4 プロセスのモニタリング

OPMNは、サーバー・プロセスを直接モニターしません。OPMNはOIDMONをモニターし、OIDMONはサーバー・プロセスをモニターします。プロセスは次のとおりです。

  • OPMNを介してOIDMONを起動すると、OPMNはOIDMONを起動し、OIDMONが稼働中であることを確認します。

  • なんらかの理由でOIDMONが停止した場合、OPMNはOIDMONを稼働状態に戻します。

  • OIDMONは、Oracle Internet Directoryディスパッチャ・プロセス、LDAPサーバー・プロセス、およびレプリケーション・サーバー・プロセスのステータスをモニターし、このステータスをOPMNとFusion Middleware Controlで使用できるようにします。OIDMONがOPMNに情報を送信するため、opmnctl statusコマンドはOIDLDAPDプロセスPIDを示すことができます。

4.4 Oracle Internet Directoryレプリケーション・サーバーの制御およびフェイルオーバー

この項では、最大可用性アーキテクチャ(MAA)でのOracle Internet Directoryレプリケーション・サーバー(oidrepld)の次のようなプロセス制御およびフェイルオーバーについて説明します。

4.4.1 OIDモニターおよびレプリケーション・サーバー・フェイルオーバーの理解

各ノードで、OIDモニター・プロセス(oidmon)の直接的な起動、停止、再起動およびモニタリングを担当するのは、Oracle Process Manager and Notification Server (OPMN)です。その後は、OIDモニターが、LDAPサーバー・プロセスやレプリケーション・サーバー(oidrepld)・プロセス(レプリケーションがインスタンス用に構成されている場合)などのOracle Internet Directoryコンポーネントのプロセス制御を担当します。

最大可用性アーキテクチャ(MAA)では、これらのプロセスが次のように実行されます。

  • 複数のOIDモニター・プロセスを1つのノードで実行可能で、同じOracle Databaseに接続できます。各OIDモニターは、oid1やoid2などのOracle Internet Directoryコンポーネントを担当します。ただし、高可用性操作を実行するOIDモニターは、1つのみです。

  • レプリケーションが構成されている場合、レプリケーション・サーバー・プロセスは、常に1つのノードでのみ実行される必要があります。

60秒ごとに、OIDモニターは、Oracle Databaseにメッセージを送信して稼働中であることをレポートします。また、OIDモニターは、他のいずれかのノードが停止していないかどうかを判断するため、データベースをポーリングします。OIDモニターは、ODS_PROCESS_STATUS表とODS_SHM表を使用して、ノード全体でプロセスの起動と停止およびメタデータの変更を伝達します。

レプリケーション・サーバーが実行されているノードで、OIDモニターは、応答のないレプリケーション・サーバーを検出し、その再起動を試みます。再起動に失敗すると、レプリケーション・サーバーは、次のロジックを使用して存続ノードの1つで起動されます。

  • プル・ロジック: OIDモニターは、別のノードで別のOIDモニターが構成済の時間(orclfailoverenabled属性で指定)を超えて停止していることを検出すると、そのノードに障害が発生したものとして扱い、そのノードでレプリケーション・サーバーを起動します。

  • プッシュ・ロジック: ノード上のローカルOIDモニターは、他のノード上のOIDモニターにプロセスを起動するようにリクエストして、障害レプリケーション・サーバーを別のノードにプッシュできます。OIDモニターは、別のノード上のレプリケーション・サーバー・プロセスを起動することはできません。

その後、障害ノードが元に戻り、OIDモニターがそのノードで再起動されると、OIDモニターは、別のノードがレプリケーション・サーバーを実行していることを検出します。次に、OIDモニターは、他のノード上のOIDモニターにレプリケーション・サーバーを停止するようにリクエストして、元のノードでレプリケーション・サーバーを起動します。

4.4.2 Oracle Internet Directoryプロセスのフェイルオーバーの有効化

orclfailoverenabled属性は、Oracle Internet Directoryプロセスのフェイルオーバーを構成する構成エントリ("cn=configset,cn=oidmon,cn=subconfigsubentry")です。

この属性は、OIDモニターが存続ノードで失敗したプロセスを開始するまでのフェイルオーバー時間を分数で指定します。デフォルトのフェイルオーバー時間は5分です。ゼロ(0)の値は、Oracle Internet Directoryプロセスを別のノードにフェイルオーバーしないことを指定します。

たとえば、ノードBのOIDモニターが、orclfailoverenabledによって指定された時間を経過してもノードAが応答しないことを検出すると、ノードBはノードAに障害が発生したとみなします。次に、ノードBは、ノードAで実行されていたOracle Internet Directoryプロセスに関する必要な情報をOracle Databaseから取得し、ノードBでそれらを起動しようと試みます。

現在のフェイルオーバー時間をorclfailoverenabled属性で確認するには、次のようにします。

ldapsearch -h oid_host  p oid_port -D "cn=orcladmin" -q -s base \
-b "cn=configset,cn=oidmon,cn=subconfigsubentry" objectclass=* orclfailoverenabled

別のフェイルオーバー時間を指定するには、orclfailoverenabled属性の値を設定します。たとえば、フェイルオーバー時間を10分に設定するには、次のようにします。

ldapmodify -h oid_host  p oid_port -D "cn=orcladmin" -q -f enablerepl.ldif

enablerepl.ldifには、次の内容が含まれています。

dn: cn=configset,cn=oidmon,cn=subconfigsubentry
changetype: modify
replace: orclfailoverenabled
orclfailoverenabled: 10

4.5 Oracle Internet Directoryプロセス制御のベスト・プラクティス

opmnctlおよびoidctlの使用に関してお薦めする方法は、次のとおりです。

  • opmnctlを使用して、Oracle Internet Directoryをコンポーネントとして停止または起動します。つまり、このコマンドを使用して、すべてのOracle Internet Directory LDAPおよびレプリケーション・サーバー・インスタンスを停止または起動します。

    • opmnctlを使用してOracle Internet Directoryを停止すると、OPMNによってoidmon stopが発行されます。この結果、OIDMONにより、構成されているすべてのLDAPおよびレプリケーション・サーバー・インスタンスが停止されます。

    • opmnctlを使用してOracle Internet Directoryを起動すると、OPMNによってoidmon startが発行されます。この結果、OIDMONにより、構成されているすべてのLDAPおよびレプリケーション・サーバー・インスタンスが起動されます。


    関連項目:


  • 関連付けられているOIDMONとOIDMONによって管理されているLDAPサーバー・インスタンスに影響を与えずにOracle Internet Directoryレプリケーション・サーバー・インスタンスを停止および起動するには、oidctlを使用します。


    関連項目: