Cluster Valve オブジェクト

目次

はじめに

クラスタバルブは、他の Tomcat Valve と何ら変わりありません。クラスタバルブは、HTTPリクエストの呼び出しチェーンにおけるインターセプターであり、クラスタリング実装はこれらのバルブを使用して、データの周囲やデータをいつレプリケートする必要があるかについてインテリジェントな決定を行います。

クラスタバルブは、org.apache.catalina.ha.ClusterValve インターフェースを実装する必要があります。これは、org.apache.catalina.Valve インターフェースを拡張するシンプルなインターフェースです。

org.apache.catalina.ha.tcp.ReplicationValve

ReplicationValve は、HTTPリクエストの終了時にクラスタに通知し、クラスタはレプリケートするデータがあるかどうかを判断できます。

属性

属性説明
className値を org.apache.catalina.ha.tcp.ReplicationValve に設定します。
filter既知のファイル拡張子またはURLの場合、このValveを使用して、セッションがこのリクエスト中に変更されていないことをクラスタに通知できます。これにより、クラスタはセッションマネージャに変更がないかプローブする必要がなくなります。リクエストがこのフィルタパターンに一致する場合、クラスタはセッションに変更がないと想定します。フィルタの例は filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt" のようになります。このフィルタは、java.util.regex を使用した正規表現です。フィルタパターンが指定されていない場合、またはフィルタパターンが空の文字列になるように構成されている場合、フィルタリングは行われません。
primaryIndicatorブール値。trueに設定すると、レプリケーションバルブは primaryIndicatorName 属性で定義された名前のリクエスト属性を挿入します。リクエスト属性に挿入される値は、Boolean.TRUE または Boolean.FALSE のいずれかです。
primaryIndicatorNameデフォルト値は org.apache.catalina.ha.tcp.isPrimarySession です。ここで定義された値は、セッションがこのサーバー上でプライマリかどうかを示すブール値を含むリクエスト属性の名前です。
statisticsブール値。バルブにリクエスト統計を収集させる場合は true に設定します。デフォルト値は false です。

org.apache.catalina.ha.session.JvmRouteBinderValve

mod_jkフェイルオーバーの場合、JvmRouteBinderValve はセッションIDの jvmWorker 属性を置き換えて、今後のリクエストがこのノードに固執するようにします。フォールバック機能が必要な場合は、このバルブを有効にしないでください。フェイルオーバーを固定し、mod_jkがダウンしたノードをプローブし続ける必要がないようにする場合は、このバルブを使用します。

属性

属性説明
className org.apache.catalina.ha.session.JvmRouteBinderValve
enabledデフォルト値は true です。セッションの jvmRoute 値の切り替えをオン/オフするランタイム属性です。
sessionIdAttributeフェイルオーバー前の古いセッションIDは、この属性のリクエスト属性に登録されます。デフォルトの属性名は org.apache.catalina.ha.session.JvmRouteOriginalSessionID です。

org.apache.catalina.ha.authenticator.ClusterSingleSignOn

ClusterSingleSignOn は、クラスタでのシングルサインオンの機能をサポートします。ClusterSingleSignOn を使用すると、あるWebアプリケーションによって認証されたセキュリティIDは、同じ仮想ホスト上の他のWebアプリケーションによって認識され、クラスタ内の他のノードに伝播されます。

詳細については、Host 要素の シングルサインオンの特殊機能を参照してください。

注: ClusterSingleSignOn は、ホストレベルのクラスタでのみ構成できます。

属性

属性説明
className

使用する実装のJavaクラス名。これは必ず org.apache.catalina.ha.authenticator.ClusterSingleSignOn に設定する必要があります。

cookieDomain

ssoクッキーに使用されるホストドメインを設定します。

mapSendOptions

Valveはレプリケートされたマップを使用します。このマップがメッセージを送信する方法のフラグを設定できます。デフォルト値は 6 (同期) です。非同期メッセージングを使用する場合、更新メッセージが送信された順序とは異なる順序で受信ノードによって処理される可能性があることに注意してください。

requireReauthentication

デフォルトはfalseです。各リクエストをセキュリティ Realm に対して再認証する必要があるかどうかを判断するフラグ。"true"の場合、このValveはキャッシュされたセキュリティ資格情報(ユーザー名とパスワード)を使用して、SSOセッションに関連付けられた各リクエストを Realm に対して再認証します。"false"の場合、Valveは、有効なSSOクッキーが存在する場合、Realm を再確認することなく、リクエスト自体を認証できます。

rpcTimeout

Valveはレプリケートされたマップを使用します。これは、クラスタ内の他のノードとの間で状態を転送するメッセージのタイムアウトです。指定されていない場合は、デフォルト値の 15000 ミリ秒が使用されます。

terminateOnStartFailure

基盤となるレプリケーションの起動に失敗した場合に、このValveを失敗させる場合は true に設定します。Valveが失敗した場合、関連するコンテナは起動に失敗します。この属性を false に設定し、基盤となるレプリケーションの起動に失敗した場合、Valveは起動し、ハートビートプロセスの一部としてクラスタに参加し、レプリケーションを開始しようとします。指定されていない場合、デフォルト値の false が使用されます。

accessTimeoutpingメッセージのタイムアウト。リモートマップがこのタイムアウト期間内に応答しない場合、消滅したと見なされます。デフォルト値は 5000 ミリ秒です。