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 を使用すると、1つの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 ミリ秒です。