4 マルチサーバー・ドメインについて

Oracle Stream Analyticsマルチサーバー・ドメイン(クラスタ)は、Oracle CoherenceまたはOracle Stream Analyticsネイティブ・テクノロジによって作成されます。マルチサーバー・ドメインに、ユーザー・データグラム・プロトコル(UDP)によって論理的および物理的に接続される1つ以上のサーバーを追加します。Oracle Stream Analyticsマルチサーバー・ドメインのすべてのサーバーは、ドメイン内のその他すべてのサーバーを認識し、また、ドメイン内のいずれか1つのサーバーを、デプロイメントに変更を加えるためのアクセス・ポイントにすることができます

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

4.1 マルチサーバー管理

マルチサーバー・ドメイン内のサーバーをドメイン(インフラストラクチャ)レベルで管理します。構成エラーを避けるために、ドメイン内のすべてのサーバーを、同じマルチキャスト・アドレスとマルチキャスト・ポート番号、およびドメイン名で構成する必要があります。

たとえば、マルチキャスト・アドレスとポートが同じであるが、異なるドメイン名でサーバーを構成した場合は、Oracle Stream Analyticsでエラーが発生します。

ドメイン内のすべてのサーバーが他のサーバーによって障害検出、起動および再起動されます。アプリケーションを1つのサーバーにデプロイし、同じドメインにある別のサーバーからそれをアンデプロイできます。

4.1.1 Oracle Coherence

Oracle Coherenceを使用してマルチサーバー・ドメインを作成すると、信頼のおけるスケーラビリティの高いピア・ツー・ピアのクラスタリング・プロトコル上で、ドメインは複製および配布した(パーティション化した)データの管理サービスを受信します。Oracle Coherenceには単一点障害がありませんが、かわりに、サーバーが正常に動作しなくなったときやネットワークから切断されたときは、クラスタ・データの管理サービスを透過的にフェイルオーバーして再配布します。新しいサーバーの追加または障害が発生したサーバーの再起動を行うと、サーバーによってクラスタが結合され、Oracle Coherenceでサービスの透過的な復元およびクラスタ・ロードの再配布が行われます。

注意:

Oracle Stream AnalyticsをOracle Coherenceとともに使用するには、最初に有効なOracle Coherenceライセンスを取得する必要があります。http://www.oracle.com/technetwork/middleware/coherence/overview/index.htmlを参照してください。

4.1.2 Oracle Stream Analyticsのネイティブ・クラスタリング

Oracle Stream Analyticsネイティブ・クラスタリングでマルチサーバー・ドメインを作成すると、ドメインはTOTEMに基づいたネイティブ・クラスタリング実装を受信します。ただし、Oracle Stream Analyticsネイティブ・クラスタリングを使用する場合、Oracle Stream Analyticsの高可用性とサービス品質オプションを利用できません。「ネイティブ・クラスタリングを使用したマルチサーバー・ドメイン」を参照してください。

4.2 サーバー・グループ

サーバー・グループは1つ以上のサーバーの集まりで、ドメイン内で固有の名前を持ちます。Oracle Stream Analyticsドメイン内では、構成可能なサーバー・グループ・メンバーシップを持つ任意の数のサーバー・グループを共存させることができます。

1つのサーバーを複数のサーバー・グループのメンバーにすることができます。サーバー・グループは、マルチサーバー・ドメインをより詳細なレベルでデプロイおよび管理することを可能にする管理ツールとして機能するため、ユーザーが基となるサーバー・グループを意識することはありません。

マルチサーバー・ドメイン内のデフォルト・サーバー・グループにアプリケーションをデプロイすると、それらのアプリケーションはドメイン内のすべてのサーバーにデプロイされます。マルチサーバー・ドメイン内のすべてのサーバーに、アプリケーションで必要となる同一の正しい構成リソースがある必要があります

Oracle Stream Analyticsには、次の事前定義済デプロイメント・サーバー・グループが用意されています。

アプリケーションをマルチサーバー・ドメイン内の特定のサーバーにデプロイできるように、カスタム・デプロイメント・サーバー・グループを作成することもできます。「カスタム・デプロイメント・グループ」を参照してください。Oracle Stream Analytics高可用性アプリケーションをデプロイし、スケーラビリティが必要な場合、Oracle Stream Analytics高可用性通知グループを構成する必要もあります。

サーバー・グループを作成するには、名前を決定し、サーバー・グループに含めるサーバーのconfig.xmlファイルのgroups要素でその名前を使用します。

4.2.1 シングルトン・サーバー・デプロイメント・グループ

シングルトン・サーバー・デプロイメント・グループは、1つのローカル・サーバーのみで構成されます。このサーバー・グループのメンバーシップは、アクセス元のサーバーに依存します。このサーバー・グループを使用して、デプロイメントを単一サーバーに固定できます。

詳細は、「Oracle Coherenceを使用したマルチサーバー・ドメイン」を参照してください。

4.2.2 ドメイン・デプロイメント・グループ

ドメイン・デプロイメント・グループには、ドメインの有効なすべてのメンバーが含まれています。そのメンバーシップは管理者によってのみ変更できます。

ドメイン名は、Oracle Stream Analyticsサーバーのconfig.xmlファイルのdomain要素によって決定されます。デフォルト・ドメイン名はAllDomainMembersです。次の例では、次のconfig.xmlファイル・エントリでデフォルト・ドメイン名がmyDomainに変更されています。

<domain>
     <name>myDomain</name>
</domain>

4.2.3 カスタム・デプロイメント・グループ

マルチサーバー・ドメインで均一なサーバーの集まり全体にアプリケーション・ロジックをレプリケートできない場合があります。例としては、異なる価格決定エンジンによって提供される最善の価格を決定するアプリケーションがあります。別の例としては、位置がしきい値を超えたときにアラートを送信するアプリケーションがあります。どちらの場合も、アプリケーションは複数の操作は実行しませんが、かわりにそれぞれ、1度計算するか、単一イベントを送信します。アプリケーションのモニターやHTTP pub-subサーバーなど、その他の場合は、アプリケーションはシングルトンの性質を持ちます。

より複雑な例は、2つのアプリケーションがあるドメインです。最初のアプリケーションstrategiesはいくつかの方法を使用して1つのデリバティブに複数の価格を計算し、結果をselectorアプリケーションにフィードします。selectorアプリケーションは、strategiesアプリケーションによって送信された結果から最善の価格を選択します。

フォールト・トレランスを実現するためにstrategiesアプリケーションをレプリケートできます。ただし、selectorアプリケーションは最善の価格を決定できるように状態を保持する必要があります。selectorが状態を保持する必要があるため、selectorアプリケーションは均一なサーバーのセット全体にレプリケートできません

ドメインが完全に同一ではないサーバーをサポートする必要がある場合、カスタム・デプロイメント・グループを使用して構成できます。マルチサーバー・ドメイン内のカスタム・デプロイメント・グループにデプロイされたアプリケーションは、デプロイメント・グループ内のすべてのサーバーに均一にデプロイされます。デプロイメント・グループ内のすべてのサーバーには、アプリケーション(単数または複数)で必要となる適切な構成リソースがある必要があります。

詳細は、「Oracle Coherenceを使用したマルチサーバー・ドメイン」を参照してください。

4.3 マルチサーバーの通知およびメッセージング

Oracle Stream Analyticsには、サーバー・グループおよびサーバー用の通知およびメッセージングAPIが多数用意されています。これらのAPIを使用して、サーバー・グループまたはドメインのメンバーシップに変更があったときに通知を受信するようにサーバーを構成できます。変更は、管理者による変更か、サーバー障害のために発生します。これらのAPIを使用して、個別のサーバー・グループおよびドメインにメッセージを送信することもできます。

Oracle Stream Analyticsの高可用性オプションを使用するようにアプリケーションを構成する場合は、プライマリOracle Stream Analyticsサーバーでは、Oracle Coherenceを使用してセカンダリ・サーバーと通信し、セカンダリ・サーバーにプライマリ・サーバーのイベント処理の進行状況の最新情報を送信します。

安全に通信できるようにマルチサーバー・ドメインで複数のOracle Stream Analyticsサーバーを構成することもできます。

詳細は、次を参照してください。

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

Oracle Stream Analyticsドメインのサーバーは単一のディレクトリにファイルを格納します。通常、マルチサーバー・ドメイン内のサーバーのディレクトリは、ドメイン・ディレクトリのサブディレクトリです。また、サーバー名とドメイン名はそれぞれ、サーバー・ディレクトリ名とドメイン・ディレクトリ名に対応します。

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

図4-1に、3つのサーバーがあるマルチサーバー・ドメイン・ディレクトリを示しています。

図4-1 マルチサーバー・ドメインのディレクトリ構造

図4-1の説明が続きます
「図4-1 マルチサーバー・ドメインのディレクトリ構造」の説明

図4-1では、myServer1の構成ファイルのスニペットが、ドメイン・ディレクトリとドメイン・オブジェクトを同じ名前で構成する方法、およびサーバー・ディレクトリとサーバー名を示しています。

ドメイン・ディレクトリは、Oracle Stream Analyticsドメインのデフォルトの場所である/Oracle/Middleware/my_oep/user_projects/domainsディレクトリにあります。

4.5 cluster要素の子要素の順序

config.xmlファイルにおけるcluster要素の子要素の順序は重要です。正しくない順序で要素を入れると、エラーが発生します。

次のリストは、子要素をリストする順序を示しています。

  • server-name

  • server-host-name: ポイント・ツー・ポイントHTTPマルチサーバー通信に使用するホスト・アドレス/IPを指定します。デフォルト値はlocalhostです。

    マルチサーバー・ドメイン内の1つ以上のOracle Stream Analyticsサーバーが異なるホストにあり、Oracle Stream Analytics Visualizerを使用してマルチサーバー・ドメインを管理する場合は、この要素が必須です。サーバーが複数のIPアドレスが構成されたホスト・マシンにデプロイされている場合も、この要素は必須です(マルチサーバーかスタンドアロンサーバー環境のいずれでも)。

  • multicast-address: マルチキャスト通信アドレス。Oracle Coherenceの場合、ユニキャスト・アドレスの既知アドレス(WKA)を使用できます。

  • multicast-port: オプション。マルチキャスト・トラフィックに使用するポートを指定します。デフォルト値は9001です。

  • identity: Oracle Stream Analyticsネイティブ・クラスタリングを使用する場合のみ必須です。この要素はOracle Coherenceには使用しません。

  • enabled

  • security

  • groups

  • operation-timeout: オプション。ポイント・ツー・ポイントHTTPマルチサーバー・リクエストのタイムアウトを指定します(ミリ秒)。デフォルト値は30000です。

4.6 高可用性およびマルチサーバー・ドメイン

マルチサーバー・ドメインに対してOracle Coherenceクラスタリングを使用する場合、Oracle Stream Analyticsの高可用性とサービス品質オプションを利用できます。これらのオプションは、Oracle Stream Analyticsネイティブ・クラスタリングではサポートされていません。

4.7 スケーラビリティおよびマルチサーバー・ドメイン

Oracle CoherenceまたはOracle Stream Analyticsネイティブ・クラスタリングを使用して、Oracle Stream Analyticsのスケーラビリティとサービス品質オプションを利用できます。