管理およびコンフィグレーション ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

Oracle CEP マルチサーバ ドメインのコンフィグレーションおよび使用

この節では、以下の項目について説明します。

 


Oracle CEP マルチサーバ ドメインの概要

以下の節では、一連の Oracle CEP サーバの管理と可用性に関連する使用例と用語について説明します。

Oracle CEP マルチサーバ ドメイン

Oracle CEP マルチサーバ ドメインは、管理上の目的から論理的に接続され、共有のユーザ データグラム プロトコル (UDP) マルチキャスト アドレスおよびマルチキャスト ポートを使用して物理的に接続された、複数のサーバの集まりです。Oracle CEP マルチサーバ ドメインのあらゆるサーバが、ドメインのその他すべてのサーバを認識します。また、ドメイン内のデプロイメントに変更を加えるためのアクセス ポイントとして、いずれか 1 つのサーバを使用できます。

マルチサーバ インフラストラクチャの管理はドメイン レベルで実行されます。このため、サーバのエラー、起動、または再起動は、マルチサーバ ドメインのどのメンバーでも検出されます。マルチサーバ ドメインの各メンバーは、マルチサーバ インフラストラクチャで使用されるドメイン メンバシップについて、一貫性のある一致した認識を保持します。

複数のサーバが同じマルチサーバ ドメインに属すると見なされるには、サーバ間で同じマルチキャスト アドレスとマルチキャスト ポートおよび同じドメイン名を共有する必要があります。

マルチサーバ ドメインのサーバは均一である必要があります。たとえば、2 つのサーバの一方を IPv6 (Internet Protocol version 6) プロトコルで、他方を IPv4 プロトコルでコンフィグレーションして、同じドメインのメンバーにすることはできません。

グループ

マルチサーバ ドメインへのデプロイメントおよびマルチサーバ ドメインの管理をドメインよりも細かいレベルでサポートするために、Oracle CEP ではグループという概念を取り入れています。グループは 1 つまたは複数のサーバの集まりです。グループはドメイン内でユニークな名前を持ちます。Oracle CEP ドメイン内では、コンフィグレーション可能なグループ メンバシップを持つ任意の数のグループを共存させることができます。1 つのサーバが複数のグループのメンバーになっている場合があります。ただし、通常、この情報はユーザからは意識されません。常に存在するグループとして、以下のグループが事前定義されています。

マルチサーバ ドメインにアプリケーションをデプロイするときは、特定のグループにデプロイします。ドメイン グループまたはカスタム グループにデプロイされるアプリケーションの名前は、ドメイン内でユニークである必要があります。

マルチサーバの通知とメッセージング

アダプタおよびイベント Bean の実装において高可用性 (HA) と同等の機能を実現するために、Oracle CEP ではグループレベルおよびドメインレベルの両方で、数多くの通知 API およびメッセージング API を提供しています。これらの API を使用して、管理者による意図的な変更またはサーバ エラーのためにグループまたはドメイン メンバシップが変更された場合に通知を受け取るように、サーバをコンフィグレーションできます。同様に、これらの API を使用して個々のグループおよびドメインの両方にメッセージを送信できます。

マルチサーバ ドメインのディレクトリ構造

Oracle CEP ドメインのサーバは単一のディレクトリにファイルを格納します。通常、マルチサーバ ドメイン内のサーバのディレクトリは、ドメイン ディレクトリのサブディレクトリです。また、サーバ名とドメイン名はそれぞれ、サーバ ディレクトリ名とドメイン ディレクトリ名に対応します。これは単に一般的な構造であり必須ではありませんが、わかりやすさと一貫性を保つために、この方法でドメインを設定することをお勧めします。マルチサーバ ドメインのサーバが別々のコンピュータに配置されている場合も、わかりやすさと一貫性を保つために、両方のコンピュータにディレクトリ構造をレプリケートすることをお勧めします。

次の図は、3 つのサーバがあるマルチサーバ ドメイン ディレクトリを示しています。myServer1 のコンフィグレーション ファイルから抜粋したコード例では、ドメイン ディレクトリとドメイン オブジェクトが同じ名前でコンフィグレーションされ、サーバ ディレクトリとサーバ名が同じ名前でコンフィグレーションされています。ドメイン ディレクトリは、Oracle CEP ドメインのデフォルトの場所である ORACLE_CEP_HOME/user_projects/domains ディレクトリにあります。

 


単純なマルチサーバ ドメインの作成とコンフィグレーション

この節では、複数の Oracle CEP サーバからなる単純なマルチユーザ ドメインを作成してコンフィグレーションする方法を説明します。マルチサーバ ドメインは、カスタム グループを使用せず、事前定義されている 2 つのグループ (シングルトン グループとドメイン グループ) だけを使用してコンフィグレーションするので単純です。マルチサーバ ドメイン内にカスタム グループをコンフィグレーションする方法については、「マルチサーバ ドメインのカスタム グループのコンフィグレーション」を参照してください。

注意 : この節では、単一のサーバからなるドメインを作成済みであり、そのドメインにサーバを追加してマルチサーバ ドメインにすると想定します。ドメイン作成の詳細については「Oracle CEP スタンドアロンサーバ ドメインの作成と更新」を参照してください。

以下に、マルチサーバ ドメインをコンフィグレーションする手順の概要を示します。

  1. Configuration Wizard を使用して、ドメインに 1 つまたは複数のサーバを追加します。
  2. 注意 : Configuration Wizard ではマルチサーバ ドメインへの新規サーバの追加はサポートされていませんが、Configuration Wizard を使用して新しいスタンドアロン サーバを生成し、生成したサーバのコンフィグレーションを手動で更新することにより、サーバをマルチサーバ ドメインに追加できます。

    Configuration Wizard を使用した既存ドメインへの新規サーバの追加」を確認してください。

  3. マルチサーバ ドメイン内のすべてのサーバをコンフィグレーションします。そのためには、手動で config.xml ファイルを編集し、<cluster> 要素を追加して特定の情報を指定します。
  4. 詳細については、「マルチサーバ ドメインのサーバのコンフィグレーション」を参照してください。

Configuration Wizard を使用した既存ドメインへの新規サーバの追加

Configuration Wizard を使用して既存のスタンドアロン サーバ ドメインに新しいサーバを追加し、後からそのドメインをマルチサーバ ドメインに変換します。その手順は新しいドメインを作成する手順と似ています。そのため、この節の手順は「Configuration Wizard を使用したスタンドアロンサーバ ドメインの作成」を読んでから実行してください。

わかりやすくするために、以下を前提とします。

Configuration Wizard は、グラフィカル モードまたはサイレント モードで使用できます。

グラフィカル モードでの新規サーバの追加

グラフィカル モードで既存のドメインに新規サーバを追加するには、以下の手順を実行します。

  1. グラフィカル モードでのドメインの作成」の説明に従って Configuration Wizard を起動します。
  2. [Choose Create or Update Domain] ウィンドウで、[Create a New Oracle CEP Domain] を選択します。[Next] をクリックします。
  3. ドメインに追加する新しいサーバの管理者ユーザ名とパスワードを入力します。[Next] をクリックします。
  4. ドメインの新しいサーバについて基本的なコンフィグレーション情報を入力します。新しいサーバがドメイン内の他のサーバと同じコンピュータ上に配置される場合、すべてのサーバを起動したときに競合が発生しないように、以下の情報が他のサーバと重複しないようにする必要があります。特に、以下の情報を入力します。
    • 新しいサーバの名前を入力します。この名前は、新しいサーバのファイルを格納するディレクトリ名としても使用されます。例では、この値は myServer1 です。
    • Oracle CEP 自体のリスン ポート。
    • JMX RMI レジストリのリスン ポート、または RMI レジストリを開始するポート。
    • JMX RMI JRMP のリスン ポート、または RMI Java Remote Method Protocol (JRMP) の JMX 要求をリスンするポート。
    • [Next] をクリックします。

  5. Oracle CEP ID キーストアのパスワードを入力して確認します。デフォルトでは、証明書のプライベート キーのパスワードは ID キーストアと同じです。別のパスワードを使用する場合は、[Use Keystore Password] のチェックをはずしてプライベート キーのパスワードを入力します。[Next] をクリックします。
  6. [Configuration Options] ウィンドウで、デフォルトの JDBC データ ソース コンフィグレーションを変更する場合は [Yes]、デフォルトのままにする場合は [No] を選択します。[Next] をクリックします。
  7. 注意 : アプリケーションをドメイン内のグループにデプロイすると、Oracle CEP はグループのメンバーである各サーバにアプリケーションをレプリケートします。つまり、アプリケーションでデータソースを使用しており、ドメイン内でサーバごとにデータ ソースのコンフィグレーションが異なる場合は、このデータ ソースでのデータの格納および取得は、アプリケーションを実行しているサーバによって異なります。

  8. デフォルトの JDBC データ ソース コンフィグレーションを変更することを選択した場合は、[Configure Database Properties] ウィンドウに情報を入力します。
  9. 上のセクションで、データソース名を入力します。次に、データベース タイプ (Oracle または Microsoft SQL Server) と該当のドライバを選択します。[Browse/Append] ボタンを使用して、新しいドライバを参照することもできます。

    下のセクションで、データベース名、データベース サーバをホストするコンピュータ名、ポート、およびデータベースに接続するユーザの名前とパスワードなど、このデータ ソースから接続するデータベースの詳細を入力します。この情報に基づいて、使用する JDBC 接続 URL が自動的に生成されます。

    [Next] をクリックします。

  10. [Configure Server] ウィンドウで、既存のドメイン名とドメインの場所の絶対パス名を入力します。例では、ドメイン名として myDomain を、ドメインの場所として C:\oracle_cep\user_projects\domains を入力しています。[Create] をクリックします。
  11. 新しいサーバが正常に作成されると、[Creating Domain] ウィンドウに以下のようなメッセージが表示されます。
  12. Domain created successfully!
    Domain location: C:\oracle_cep\user_projects\domains\myDomain

    [Done] をクリックします。

サイレント モードでの新規サーバの追加

サイレント モードで既存のドメインに新しいサーバを追加する手順は、「サイレント モードでのドメインの作成」で説明した新しいドメインを作成する手順に似ています。違いは、silent.xml ファイルに入力するオプションの値のみです。特に、以下の情報を入力します。

Configuration Wizard を使用した既存ドメインへの新規サーバの追加」に示した想定に基づく silent.xml ファイルは、次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<bea-installer xmlns="http://www.bea.com/plateng/wlevs/config/silent">
  <input-fields>
    <data-value name="CONFIGURATION_OPTION" value="createDomain" />
<data-value name="USERNAME" value="wlevs" />
<data-value name="PASSWORD" value="wlevs" />
    <data-value name="SERVER_NAME" value="myServer1" />
<data-value name="DOMAIN_NAME" value="myDomain" />
<data-value name="DOMAIN_LOCATION" value="C:\oracle_cep\user_projects\domains" />
    <data-value name="NETIO_PORT" value="9102" />
<data-value name="RMI_REGISTRY_PORT" value="9104" />
<data-value name="RMI_JRMP_PORT" value="9998" />
<data-value name="KEYSTORE_PASSWORD" value="my_keystore_password" />
<data-value name="PRIVATEKEY_PASSWORD" value="my_privatekey_password" />
    <data-value name="DB_URL" value="jdbc:bea:oracle://localhost:1521:XE" />
<data-value name="DB_USERNAME" value="db_user" />
<data-value name="DB_PASSWORD" value="db_password" />
  </input-fields>
</bea-installer>

マルチサーバ ドメインのサーバのコンフィグレーション

マルチサーバ ドメインのサーバをコンフィグレーションするには、各メンバー サーバの config.xml ファイルを更新します。具体的には、ルート要素である <config> の子要素 <cluster> を追加します。<cluster> の子要素として <server-name><multicast-address><identity>、および <enabled> を含めます。要素の順序は重要です。詳細については、「<cluster> 要素の順序とその他の子要素」を参照してください。可能なコンフィグレーションの例を以下に示します。

<config>
  <domain> 
<name>myDomain</name>
</domain>
  <cluster>
<server-name>myServer1</server-name>
<multicast-address>239.255.0.1</multicast-address>
<identity>1</identity>
<enabled>true</enabled>
</cluster>
...
</config>

例では、サーバは myDomain というドメインに属しています。

マルチサーバ ドメインの各サーバについて、<multicast-address> 要素に同じ値が設定されている必要があります。ただし、<identity> および <server-name> 要素は、マルチサーバ ドメインのサーバごとに異なる必要があります。

<multicast-address> 要素は必須です。ただし、マルチサーバ ドメインのすべてのサーバを同じコンピュータでホストする場合は例外です。その場合、<multicast-address> 要素は省略可能で、マルチサーバ ドメインにはコンピュータの IP アドレスに基づくマルチキャスト アドレスが自動的に割り当てられます。サーバを別々のコンピュータでホストする場合は、ドメインのローカル アドレスを適切に指定する必要があります。239.255.X.X 形式のアドレスを使用することをお勧めします。自動的に割り当てられるマルチキャスト アドレスは、この形式に基づいています。

<identity> 要素はサーバの ID を識別し、1 から INT_MAX までの整数である必要があります。Oracle CEP では、マルチサーバの操作時にサーバ ID の数値を比較します。ID の値が最も小さいサーバがドメイン コーディネータになります。マルチサーバ ドメイン内の各サーバの ID は必ず異なる値にする必要があります。サーバの ID が重複している場合、マルチサーバ操作の結果は予測できません。

<cluster><server-name> 子要素には、サーバのユニークな名前を指定します。Visualizer でコンソールにサーバを表示するときに、この要素の値が使用されます。この要素を設定しない場合、デフォルト値は Server-<identity> です。

最後に、マルチサーバ ドメイン内のサーバのクラスタ化はデフォルトで無効になっているため、<enabled> 要素を使用してこの機能を明示的に有効にする必要があります。

myServer2 という 2 つ目のサーバを myDomain マルチサーバ ドメインにコンフィグレーションする例を以下に示します。ID が 2 である点に注意してください。

<config>
  <domain> 
<name>myDomain</name>
</domain>
  <cluster>
<server-name>myServer2</server-name>
<multicast-address>239.255.0.1</multicast-address>
<identity>2</identity>
<enabled>true</enabled>
</cluster>
...
</config>

マルチサーバ関連の他のコンフィグレーション要素および子要素の順序の要件については、「<cluster> 要素の順序とその他の子要素」の概要説明を参照してください。

 


マルチサーバ ドメインのカスタム グループのコンフィグレーション

マルチサーバ ドメインで均一なサーバの集まり全体にアプリケーション ロジックを簡単にレプリケートできない場合があります。さまざまな価格設定エンジンの提示価格から最適価格を判定するアプリケーションや、値の位置がしきい値を超えた場合に警告を送信するアプリケーションは、このタイプのアプリケーションの例です。このような場合、アプリケーションは冪等ではなく、1 回だけ値を算出したり、単一のイベントを送信したりする必要があります。モニタ アプリケーションや HTTP pub-sub サーバなど、その他の場合は、アプリケーションはシングルトンの性質を持ちます。

もっと複雑な例として、次の 2 つのアプリケーションを使用するドメインがあるとします。strategies アプリケーションで複数の方法を使用してデリバティブ商品のさまざまな価格を計算し、selector アプリケーションに計算結果を送信します。selector アプリケーションは strategies アプリケーションの結果から提示されるさまざまな選択肢から最適価格を選択します。フォールト トレランスを実現するために strategies アプリケーションをレプリケートできます。しかし、selector アプリケーションは、最適価格を決定するために状態を保持できる必要があります。そのため、selector アプリケーションは双方向ではレプリケートできません。

これらの理由により、完全に均一ではない複数のサーバをドメインでサポートする必要があります。このコンフィグレーションのためにカスタム グループを作成します。

グループをコンフィグレーションするには、グループの各メンバーの config.xml ファイルを更新します。そのためには、<cluster><groups> 子要素をまだ追加していない場合は追加し、グループ名を <groups> 要素の値として指定します。サーバが複数のグループのメンバーである場合は、<groups> 要素に複数のグループ名を含めることができます。カンマを使用して複数のグループ名を区切ります。<groups> 要素は省略可能です。サーバ コンフィグレーションにこの要素が含まれていない場合、そのサーバはデフォルト グループ (ドメインおよびシングルトン) のメンバーになります。

例として、myServer1myServer2、および myServer3 という 3 つのサーバを作成したとします。myServer1selector グループのメンバーに、myServer2myServer3strategy グループのメンバーにします。config.xml ファイルから抜粋した各サーバに対応するコード例を以下に示します。

コード リスト 4-1 myServer1 の config.xml
<config>
<domain>
<name>myDomain</name>
</domain>
<cluster>
<server-name>myServer1</server-name>
<multicast-address>239.255.0.1</multicast-address>
<identity>1</identity>
<enabled>true</enabled>
<groups>selector</groups>
</cluster>
...
</config>
コード リスト 4-2 myServer2 の config.xml
<config>
<domain>
<name>myDomain</name>
</domain>
<cluster>
<server-name>myServer2</server-name>
<multicast-address>239.255.0.1</multicast-address>
<identity>2</identity>
<enabled>true</enabled>
<groups>strategy</groups>
</cluster>
...
</config>
コード リスト 4-3 myServer3 の config.xml
<config>
<domain>
<name>myDomain</name>
</domain>
<cluster>
<server-name>myServer3</server-name>
<multicast-address>239.255.0.1</multicast-address>
<identity>3</identity>
<enabled>true</enabled>
<groups>strategy</groups>
</cluster>
...
</config>

マルチサーバ関連の他のコンフィグレーション要素および子要素の順序の要件については、「<cluster> 要素の順序とその他の子要素」の概要説明を参照してください。

 


マルチサーバ ドメインのサーバの起動

マルチサーバ ドメインのサーバを起動するには、起動スクリプトを実行して各サーバを個別に起動します。これは、スタンドアロン サーバ ドメインのサーバを起動する方法と同じです。詳細については、「サーバの停止と起動」を参照してください。

マルチサーバ ドメインのカスタム グループをコンフィグレーションしなかった場合、単純にすべてのサーバは事前定義されたドメイン グループ (マルチサーバ ドメイン内のすべてのサーバが含まれる) とシングルトン グループ (メンバーのサーバごとに 1 つ) のメンバーになります。つまり、マルチサーバ ドメインに 3 つのサーバが存在する例では、シングルトン グループも 3 つになります。

これに対し、マルチサーバ ドメインにカスタム グループをコンフィグレーションした場合、サーバは事前定義されたグループのメンバーであると同時に、コンフィグレーションされたグループのメンバーにもなります。

 


マルチサーバ ドメインへのアプリケーションのデプロイ

マルチサーバ ドメインにアプリケーションをデプロイする場合、通常はユーザがターゲット グループを指定すると、Oracle CEP によって、そのグループで実行されている一連のサーバにアプリケーションがデプロイされます。Oracle CEP は、実行中のサーバに基づくグループ メンバシップを動的に維持します。つまり、グループ内で新しいサーバが起動されると、Oracle CEP によって、新しいサーバに対して適切なデプロイメント セットが自動的に伝播されます。

例として、「単純なマルチサーバ ドメインの作成とコンフィグレーション」でコンフィグレーションした単純なマルチサーバ ドメインについて説明します。myServer1 のみが起動済みであり、myServer1myServer2 が属するドメイン グループにアプリケーションがデプロイされると想定します。その場合、マルチサーバ ドメインの myServer1 のみが起動済みであるため、アプリケーションは myServer1 のみにデプロイされます。その後 myServer2 が起動されると、Oracle CEP によってアプリケーションのデプロイメントが自動的に myServer2 にレプリケートされ、伝播されます。ユーザが明示的にアプリケーションをデプロイする必要はありません。

デプロイメントの伝播は、サーバに必要なデプロイメントがない場合にのみ行われます。サーバにローカル デプロイメントがすでに存在する場合は、そのデプロイメントが使用されます。つまり、マルチサーバ ドメインの 1 つのサーバでデプロイメントを変更しても、他のサーバにそのデプロイメントがすでに存在する場合は、変更が他のサーバに自動的に伝播されることはありません。これは、アプリケーションの jar ファイルをコピーして手動でデプロイメントをコンフィグレーションした場合は、同じデプロイメントのわずかに異なるバージョンが他のサーバに存在する可能性があることを意味します。

1 つのアプリケーションについて、別のサーバで異なるコンフィグレーションが必要な場合は、システム プロパティを使用するのが現時点での最適な方法です。

Deployer コマンドライン ツールの詳細なリファレンス情報については、「Deployer コマンドライン リファレンス」を参照してください。

シングルトン サーバ グループへのデプロイ

アプリケーションをデプロイするときにグループを指定しないと、アプリケーションは、デプロイ先として指定したサーバのみで構成されるシングルトン サーバ グループにデプロイされます。これは単一サーバ ドメインの標準仕様ですが、マルチサーバ ドメインにも当てはまります。

注意 : 2.0 ドメインをマルチサーバ ドメインで実行できるようにアップグレードした場合、アプリケーションをデプロイすると、すべてのアプリケーションがシングルトン サーバ グループにデプロイされます。

次の例は、シングルトン グループへのデプロイ方法を示しています。コマンドに -group オプションを指定していない点に注意してください。

prompt> java -jar wlevsdeploy.jar -url http://ariel:9002/wlevsdeployer -install myapp_1.0.jar

この例では、myapp_1.0.jar アプリケーションは単一サーバで構成されるシングルトン サーバ グループにデプロイされます。サーバを実行しているホストは ariel、リスン ポートは 9002 です。マルチサーバ ドメインで他のサーバがドメイン グループのメンバーである場合、アプリケーションは他のサーバにデプロイされません。

ドメイン グループへのデプロイ

ドメイン グループは常に存在する有効化されたグループであり、ドメイン内のすべてのサーバで構成されます。言い換えると、すべてのサーバは常にドメイン グループのメンバーです。ただし、ドメイン グループに対してもアプリケーションを明示的にデプロイする必要があります。その主な理由は、使用方法のわかりやすさと一貫性を保つためです。

アプリケーションをドメイン グループに明示的にデプロイすると、この均一な環境のすべてのサーバにこのデプロイメントが確実に伝播されます。

ドメイン グループにデプロイするには、-group all オプションを使用します。次の例は、ドメイン グループへのデプロイ方法を示しています。

prompt> java -jar wlevsdeploy.jar -url http://ariel:9002/wlevsdeployer -install myapp_1.0.jar -group all 

この例では、ポート 9002 をリスンしているホスト ariel 上のドメイン グループのすべてのサーバに myapp_1.0.jar アプリケーションがデプロイされます。

カスタム グループへのデプロイ

カスタム グループにデプロイするには、デプロイ コマンドの -group groupname オプションを使用します。

次の例では、「マルチサーバ ドメインのカスタム グループのコンフィグレーション」の説明に従ってマルチサーバ ドメインがコンフィグレーションされていると想定しています。

次の例は、strategies_1.0.jar というアプリケーションを strategygroup にデプロイする方法を示しています。

prompt> java -jar wlevsdeploy.jar -url http://ariel:9002/wlevsdeployer -install strategies_1.0.jar -group strategygroup 

このコマンドでは、マルチサーバ ドメインのコンフィグレーションに基づいて、strategygroup グループのメンバーである myServer2myServer3 にアプリケーションがデプロイされます。

次の例は、selector_1.0.jar というアプリケーションを selectorgroup にデプロイする方法を示しています。

prompt> java -jar wlevsdeploy.jar -url http://ariel:9002/wlevsdeployer -install selector_1.0.jar -group selectorgroup 

このコマンドでは、マルチサーバ ドメインのコンフィグレーションに基づいて、selectorgroup グループの単一メンバーである myServer1 のみにアプリケーションがデプロイされます。

どちらのコマンドも同じサーバ (ホスト ariel、リスン ポート 9002 のサーバ) に対して実行されている点に注意してください。ただし、デプロイ コマンドではドメイン内の任意のサーバを指定できます。指定するサーバがアプリケーションのデプロイ先のグループに属していなくてもかまいません。

 


マルチサーバ ドメイン API を使用したグループ メンバシップの変更管理

アクティブ/アクティブ システムでは、アプリケーションは複数のサーバに均一にデプロイされ、アクティブに実行されます。

しかし、均一にデプロイされたこれらのアプリケーションからコーディネータ (リーダー) となるプライマリ アプリケーションを選択する必要が生じる場合があります。この場合、コーディネータ アプリケーションから発生したイベントは保持され、EPN の次のコンポーネントに渡されます。セカンダリ サーバの結果は削除されます。ただし、コーディネータにエラーが発生した場合は、いずれかのセカンダリ サーバが新しいコーディネータとして選択される必要があります。

アプリケーションでこれを実現するには、一般的にイベント シンクのロールに属するアダプタまたはイベント Bean が、com.bea.wlevs.ede.api.cluster.GroupMembershipListener インタフェースを実装する必要があります。それにより、マルチサーバ ドメイン グループのメンバシップの変更をイベント シンクがリスンできるようになります。実行時には、メンバシップに変更が発生するたびに、Oracle CEP が onMembershipChange コールバック メソッドを自動的に呼び出します。

コールバック メソッドのシグネチャは次のとおりです。

    onMembershipChange(Server localIdentity, Configuration groupConfiguration); 

この onMembershipChange コールバック メソッドの実装では、イベント シンクが Server オブジェクト (localIdentity) を使用してそのサーバがリーダーかどうかを検証します。この検証は、localIdentity と、2 番目のパラメータ groupConfiguration での Configuration.getCoordinator() の実行結果を比較して行うことができます。また、このパラメータを使用すると、Configuration.getMembers() を実行して、現在のグループのメンバーが何であるかをサーバに知らせることもできます。

メンバーがコーディネータである場合にのみイベントを保持するために、イベント シンクはグループのメンバシップに変更があるたびに新しい Server ID を取得する必要があります。グループ メンバシップに変更が発生するのは、たとえば、グループ内の別のサーバでエラーが発生し、そのサーバがコーディネータではなくなった場合です。

グループに対する変更だけではなくドメイン全体に対するメンバシップの変更をリスンするための、同様のインタフェース com.bea.wlevs.ede.api.cluster.DomainMembershipListener があります。

 


<cluster> 要素の順序とその他の子要素

サーバ コンフィグレーションの XSD スキーマで指定しているように、config.xml ファイルで使用する <cluster> 要素の子要素の順序は重要です。誤った順序で要素を指定すると、エラーが発生する可能性があります。子要素を指定トする順序を以下に示します。まだ説明していない要素については、この節の終わりを参照してください。

config.xml ファイルの <cluster> 要素のいくつかの子要素 (特に<server-name><multicast-address><identity><groups>、および<security>) については、これまでの節で説明しました。

この節では、その他の子要素について簡単に説明します。<cluster> 要素の説明を含む、config.xml ファイルの XSD スキーマ全体については、サーバ コンフィグレーションの XSD スキーマを参照してください。

マルチサーバ ドメインをさらに詳細にコンフィグレーションするには、config.xml<cluster> 要素に省略可能な以下の子要素を追加できます。

 


マルチサーバ ドメインのトラブルシューティング

質問 : マルチサーバ ドメインにアプリケーションをデプロイすると、約 30 秒後に Oracle CEP によってアプリケーションが停止されます。

回答 : マルチサーバ ドメインをホストしている同一コンピュータ上に複数の VPN ソフトウェア パッケージをインストールしていないか確認してください。


  ページの先頭       前  次