データ・ドメイン用セッション・アフィニティの構成

クライアント・リクエストを受信すると、Endeca Serverクラスタでは適切なデータ・ドメインをホストする任意のEndeca Serverノードにルーティングします。オプションで、データ・ドメイン・プロファイルを構成して、リクエスト・ルーティングのセッション・アフィニティを利用できます。

セッション・アフィニティをEndeca Serverで構成すると、同じセッションIDの問合せは、データ・ドメインで同じDgraphノードに必ずルーティングされます。これにより、効率的にDgraphプロセス・キャッシュを利用することで、問合せ処理パフォーマンスが向上し、キャッシュ・エンティティ(Studioでビューとして知られています)のパフォーマンスが向上します。

データ・ドメイン・プロファイルをendeca-cmdで構成する際、次を指定できます。

endeca-cmdパラメータ 説明
endeca-cmd put-dd-profile --session-id-type method method: セッション・アフィニティの確立に使用されます。

使用可能なオプションは、HEADER(HTTPヘッダー)、PARAMETER(URLパラメータ)またはCOOKIEです。

デフォルトの方法はHEADERです。この値では大文字と小文字は区別されません。

endeca-cmd put-dd-profile --session-id-key name 指定された方法でチェックされるオブジェクトの名前。デフォルト名はX-Endeca-Session-IDです。

このプロファイルを使用して新規データ・ドメインを作成する際、Endeca Serverでは指定された値を利用します。

すべての3つ方法(HTTPヘッダー、URLパラメータまたはCookie)の場合、指定した方法と名前に基づいてEndeca ServerでセッションIDを探します。Endeca Serverで特定のセッションIDがリクエストにおいて検出されないと、任意にIDを選択して、ラウンドロビン分散を使用してリクエストを適切なEndeca Serverノードにルーティングしようとします。

ホストされるデータ・ドメインにリクエストを発行するフロントエンド・クライアント・アプリケーションが、HTTPヘッダー、URLパラメータおよびCookieをそのリクエスト用に明示的に設定することをEndeca Serverで期待します。

注意: CookieセットのないCookie方法を使用して、Endeca Serverにより、データ・ドメインへの問合せ型リクエストのあるCookieが返されます。そのため、Cookie方法を選択すると、以前のリクエストでEndeca Serverにより返されるCookieを後続リクエストのルーティングで使用する必要があります。
セッション・アフィニティの特定方法を使用するためにデータ・ドメインを構成するには:
  1. コマンドライン・ウィンドウ(たとえば、「コマンド プロンプト」をWindowsで開きます)を使用して、endeca-cmdディレクトリにナビゲートします。
  2. データ・ドメイン・プロファイルを構成する際、次の例で示すようなコマンドを使用します。
    endeca-cmd put-dd-profile --session-id-type <method>
     --session-id-key <name>
    これらの意味は、次のとおりです。
    • <method>は、headerparametercookieのいずれかになります。セッションIDの指定で使用できる方法(HTTPヘッダー、URLパラメータまたはCookie)をこれらの値は示します。これらのオプションでは大文字と小文字は区別されません。
    • <name>は、指定された方法でチェックされるオブジェクトの名前です。

    または、次の構文をクラスタWebサービスのリクエストで使用できます(セッション・アフィニティ構成に固有のパラメータのみをリストし他のデータ・ドメイン・パラメータを省略するようにこの例は簡略化されています)。

    <ns1:putDataDomainProfile xmlns:ns1="http://www.endeca.com/endeca-server/cluster/1/0">
      <ns1:dataDomainProfile>
      ...
      <ns10:sessionIdType xmlns:ns10="http://www.endeca.com/endeca-server/types/1/0">header</ns10:sessionIdType>
      <ns11:sessionIdKey xmlns:ns11="http://www.endeca.com/endeca-server/types/1/0">X-Endeca-Session-ID</ns11:sessionIdKey>
      </ns1:dataDomainProfile>
    </ns1:putDataDomainProfile>