この章では、次の内容について説明します。
Oracle CEPマルチサーバー・ドメイン(またはクラスタ)は、管理上の目的で論理的に接続され、共有のユーザー・データグラム・プロトコル(UDP)マルチキャスト・アドレスおよびポートを使用して物理的に接続される、1つ以上のサーバーを追加できるドメインです。Oracle CEPマルチサーバー・ドメインのすべてのサーバーは、ドメイン内のその他すべてのサーバーを認識します。また、ドメイン内のデプロイメントに変更を加えるためのアクセス・ポイントとして、いずれか1つのサーバーを使用できます。
マルチサーバー・インフラストラクチャの管理はドメイン・レベルで実行されます。このため、サーバー障害、起動、または再起動は、マルチサーバー・ドメインのどのメンバーでも検出されます。マルチサーバー・ドメインの各メンバーは、マルチサーバー・インフラストラクチャで使用されるドメイン・メンバーシップについて、一貫性のある一致した認識を保持します。
マルチサーバー・ドメインでサーバーを適切に構成するには、そのサーバーは、同じマルチキャスト・アドレスとポート、および同じドメイン名を使用して構成する必要があります。同じマルチキャスト・アドレスおよびポートを使用し、異なるドメイン名を使用してサーバーを構成するとエラーになります。
マルチサーバー・ドメインのデフォルト・グループにデプロイ済アプリケーションは、そのドメインのすべてのサーバーに均一にデプロイされるので、すべてのサーバーにはアプリケーションで必要となる適切な構成リソースがある必要があります。
Oracle CEPでは、次のクラスタリング・システムをサポートします。
また、この章では次の内容についても説明します。
詳細は、次を参照してください:
Oracle Coherence: 信頼のおけるスケーラビリティの高いピア・ツー・ピアのクラスタリング・プロトコル上で、複製および配布した(パーティション化した)データの管理サービスを行います。Oracle Coherenceでは単一点障害がなく、サーバーが正常に動作しなくなったときやネットワークから切断されたときは、クラスタ・データの管理サービスを自動的かつ透過的にフェイルオーバーして再配布します。新しいサーバーが追加されたとき、または障害が発生したサーバーを再起動するときは、クラスタを自動的に接続し、Oracle Coherenceがサービスをフェイルバックして、そのクラスタの負荷を透過的に再分配します。
注意: Oracle CEPでOracle Coherenceを使用する前に、Coherence Enterprise Edition、Coherence Grid Edition、またはOracle WebLogic Application GridなどのOracle Coherenceの有効なライセンスを取得する必要があります。Oracle Coherenceの詳細は、http://www.oracle.com/technology/products/coherence/index.html を参照してください。 |
Oracle Coherenceを使用すると、Oracle CEPの高可用性とサービス品質オプションを利用できます。
詳細は、次を参照してください:
Oracle CEPネイティブ・クラスタリング: TOTEMに基づいてネイティブ・クラスタリング実装を行います。
Oracle CEPネイティブ・クラスタリングを使用する場合、Oracle CEPの高可用性とサービス品質オプションを利用できません。
詳細は、7.1項「Oracle CEPネイティブ・クラスタリングを使用したOracle CEPマルチサーバー・ドメインの作成」を参照してください。
マルチサーバー・ドメインへのデプロイメントおよびマルチサーバー・ドメインの管理をドメインよりも細かいレベルでサポートするために、Oracle CEPではグループという概念を取り入れています。グループは1つ以上のサーバーの集まりで、ドメイン内で固有の名前を持ちます。Oracle CEPドメイン内では、構成可能なグループ・メンバーシップを持つ任意の数のグループを共存させることができます。1つのサーバーが複数のグループのメンバーになっている場合があります。ただし、通常、この情報はユーザーからは意識されていません。
マルチサーバー・ドメインにアプリケーションをデプロイするときは、特定のグループにデプロイします。任意のグループにデプロイされるアプリケーションの名前は、ドメイン内で一意である必要があります。
マルチサーバー・ドメインのグループにデプロイ済アプリケーションは、そのグループのすべてのサーバーに均一にデプロイされるので、すべてのサーバーにはアプリケーションで必要となる適切な構成リソースがある必要があります。
サーバーにデプロイされるアプリケーションは、同じドメイン内の別のサーバーからアンインストールできます。
次の定義済のデプロイメント・グループは必ず存在します。
または、カスタム・デプロイメント・グループを作成できます(5.2.3項「カスタム・デプロイメント・グループ」を参照してください)。
注意: Oracle CEP高可用性アプリケーションをデプロイし、スケーラビリティが必要な場合、Oracle CEP高可用性通知グループを作成する必要もあります。詳細は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』のデプロイメント・グループと通知グループに関する項を参照してください。 |
このグループはローカル・サーバーのみが含まれます。これは、このグループのメンバーシップがアクセス元のサーバーに依存していることを意味します。このグループは、デプロイメントを単一サーバーに固定するために使用できます。
詳細は、6.1.1項「Oracle Coherenceを使用したデフォルト・グループによるOracle CEPマルチサーバー・ドメインの作成方法」を参照してください。
このグループはドメインの有効なすべてのメンバーが含まれています。メンバーシップは自動管理され、ユーザーが変更することはできません。
ドメイン名は、Oracle CEPサーバーのconfig.xml
ファイルのdomain
要素によって決定されます。たとえば、次に示すconfig.xml
ファイルの場合、ドメインにはmydomain
という名前が付けられます。
<domain> <name>mydomain</name> </domain>
デフォルト名は、WLEventServerDomain
です。
詳細は、6.1.1項「Oracle Coherenceを使用したデフォルト・グループによるOracle CEPマルチサーバー・ドメインの作成方法」を参照してください。
マルチサーバー・ドメインで均一なサーバーの集まり全体にアプリケーション・ロジックを簡単にレプリケートできない場合があります。様々な価格設定エンジンの提示価格から最適価格を判定するアプリケーションや、値の位置がしきい値を超えた場合にアラートを送信するアプリケーションは、このタイプのアプリケーションの例です。このような場合、アプリケーションは冪等ではなく、1回だけ値を算出したり、単一のイベントを送信したりする必要があります。モニター・アプリケーションやHTTP pub-subサーバーなど、その他の場合は、アプリケーションはシングルトンの性質を持ちます。
より複雑な例として、次の2つのアプリケーションを使用するドメインがあるとします。strategies
アプリケーションでは複数の方法を使用してデリバティブの様々な価格を計算し、selector
アプリケーションに計算結果を送信します。selector
アプリケーションではstrategies
アプリケーションの結果から提示される様々な選択肢から最適価格を選択します。フォールト・トレランスを実現するためにstrategies
アプリケーションをレプリケートできます。しかし、selector
アプリケーションは、最適価格を決定するために状態が保持される必要があります。そのため、selector
アプリケーションは双方向ではレプリケートできません。
完全に均一ではない複数のサーバーをドメインでサポートされるようにするには、カスタム・グループを作成してドメインを構成します。
マルチサーバー・ドメインのカスタム・グループにデプロイ済アプリケーションは、そのグループのすべてのサーバーに均一にデプロイされるので、すべてのサーバーにはアプリケーションで必要となる適切な構成リソースがある必要があります。
詳細は、6.1.2項「Oracle Coherenceを使用したカスタム・グループによるOracle CEPマルチサーバー・ドメインの作成方法」を参照してください。
アダプタおよびイベントBeanの実装において高可用性(HA)と同等の機能を実現するために、Oracle CEPではグループ・レベルおよびサーバー・レベルの両方で、数多くの通知APIおよびメッセージングAPIを提供しています。これらのAPIを使用して、管理者による意図的な変更またはサーバー障害のためにグループまたはドメイン・メンバーシップが変更された場合に通知を受け取るように、サーバーを構成できます。同様に、これらのAPIを使用して個々のグループおよびドメインの両方にメッセージを送信できます。
Oracle CEPの高可用性オプションを使用するようにアプリケーションを構成する場合は、プライマリOracle CEPサーバーでは、Oracle Coherenceを使用してセカンダリ・サーバーと通信し、セカンダリ・サーバーにプライマリ・サーバーのイベント処理の進行状況の最新情報を送信します。
安全に通信できるようにマルチサーバー・ドメインで複数のOracle CEPサーバーを構成できます。
詳細は、次を参照してください:
6.3.1項「Oracle Coherenceを使用したマルチサーバー・ドメインのサーバー間で送信されるメッセージの保護方法」
7.3.1項「Oracle CEPネイティブ・クラスタリングを使用したマルチサーバー・ドメインのサーバー間で送信されるメッセージの保護方法」
『Oracle Complex Event Processing開発者ガイドfor Eclipse』の高可用性の理解に関する項
Oracle CEPドメインのサーバーは単一のディレクトリにファイルを格納します。通常、マルチ・サーバー・ドメイン内のサーバーのディレクトリは、ドメイン・ディレクトリのサブディレクトリです。また、サーバー名とドメイン名はそれぞれ、サーバー・ディレクトリ名とドメイン・ディレクトリ名に対応します。これは単に一般的な構造であり必須ではありませんが、わかりやすさと一貫性を保つために、この方法でドメインを設定することをお勧めします。マルチ・サーバー・ドメインのサーバーが別々のコンピュータに配置されている場合も、わかりやすさと一貫性を保つために、両方のコンピュータにディレクトリ構造をレプリケートすることをお勧めします。
図5-1に、3つのサーバーがあるマルチサーバー・ドメイン・ディレクトリを示しています。
myServer1
構成ファイルのスニペットでは、ドメイン・ディレクトリとドメイン・オブジェクトが同じ名前で構成され、サーバー・ディレクトリとサーバー名が同じ名前で構成されています。ドメイン・ディレクトリは、Oracle CEPドメインのデフォルトの場所であるORACLE_CEP_HOME
/user_projects/domains
ディレクトリにあります。
config.xml
ファイルのcluster
要素の子要素の順序は重要です。間違った順序で要素を含まれた場合、エラーが発生する可能性があります。次のリストは、子要素をリストする順序を示しています。
server-name
server-host-name
: ポイント・ツー・ポイントのHTTPマルチサーバー通信に使用するホスト・アドレス/IPを指定します。デフォルト値は、localhost
です。
マルチサーバー・ドメインのすべてのOracle CEPサーバーが同じホストにある場合、この要素はオプションです。
マルチサーバー・ドメイン内の1つ以上のOracle CEPサーバーが異なるホストにある場合、Oracle CEP Visualizerを使用してマルチサーバー・ドメインを管理するためには、この要素が必須です。
multicast-address
: マルチキャスト通信アドレス。Coherenceの場合、ユニキャスト・アドレスの既知アドレス(WKA)を使用できます。
multicast-port
: オプション。マルチキャスト・トラフィックに使用されるポートを指定します。デフォルト値は9001
です。
identity
: Oracle CEPネイティブ・クラスタリングを使用する場合のみ必須です。Oracle Coherenceの場合は使用しません。
enabled
security
groups
operation-timeout
: オプション。ポイント・ツー・ポイントのHTTPマルチサーバー・リクエストのタイムアウトを指定します(ミリ秒)。デフォルト値は30000
です。
Oracle CEPサーバーのconfig.xml
ファイルのcluster
要素に関する詳細は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』のclusterに関する項を参照してください。
マルチサーバー・ドメインに対してOracle Coherenceクラスタリングを使用する場合、Oracle CEPの高可用性とサービス品質オプションを利用できます。Oracle CEPネイティブ・クラスタリングを使用する場合、これらのオプションはサポートされていません。
詳細は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』の高可用性の理解に関する項を参照してください。
Oracle CoherenceまたはOracle CEPネイティブ・クラスタリングを使用する場合、Oracle CEPのスケーラビリティとサービス品質オプションを利用できます。
詳細は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』のスケーラビリティの理解に関する項を参照してください。
独自のOracle CEPマルチサーバー・ドメインを作成した後、1.5項「Oracle CEPサーバーの管理タスクの理解」で説明されている管理タスクを参照してください。
たとえば、次の操作を実行できます。
オプションで、サーバーを構成します。
1.3項「Oracle CEPサーバー構成の理解」を参照してください。
Oracle CEPアプリケーションを作成します。
プログラミング・モデルの説明、アプリケーションを構成する各種コンポーネントの詳細、コンポーネントの連動の仕組み、および新しいアプリケーションを作成する一般的な手順は、『Oracle Complex Event Processing開発者ガイドfor Eclipse』を参照してください。
新規または既存のOracle CEPアプリケーションをドメインにデプロイします。
詳細は、次を参照してください:
『Oracle Complex Event Processing開発者ガイドfor Eclipse』のOracle CEPアプリケーションのアセンブルとデプロイに関する項
アプリケーション、サーバーおよびドメインを管理します。
Oracle CEP Visualizerを使用します。
『Oracle Complex Event Processing Visualizerユーザーズ・ガイド』を参照してください。
wlevs.Admin
コマンドライン・ツールを使用します。
付録A「wlevs.Adminコマンドライン・リファレンス」を参照してください。
JMXおよびMBeanを使用します。
12.3項「JMXによる管理」を参照してください。