セッション持続性を設定する手順については、『Sun GlassFish Enterprise Server 2.1 高可用性 (HA) 管理ガイド』の第 7 章「高可用性 (HA) セッション持続性とフェイルオーバーの設定」を参照してください。
HADB で受信される 1 分あたりの要求の数は、持続性の頻度に依存します。持続性の頻度によって、Enterprise Server が HTTP セッションデータを HADB に保存する頻度が決定されます。
持続性の頻度オプションを次に示します。
web-method (デフォルト): サーバーは、すべての HTTP 応答でセッションデータを格納します。このオプションによって、格納されたセッション情報が最新になることは保証されますが、HADB に対するトラフィックが増えます。
time-based: セッションは、指定された時間間隔で格納されます。このオプションによって、HADB に対するトラフィックは削減されますが、セッション情報が最新になることは保証されません。
次の表は、持続性の頻度オプションの長所と短所を要約しています。
表 2–1 持続性の頻度オプションの比較
持続性の頻度オプション |
長所 |
短所 |
---|---|---|
web-method |
最新のセッション情報を使用できることが保証されます。 |
応答時間が長くなり、スループットが低下する可能性があります。 |
time-based |
応答時間が短縮されるとともに、スループットが向上する可能性もあります。 |
アプリケーションサーバーインスタンスの障害が発生したあと、最新のセッション情報を使用できる保証は低くなります。 |
1 要求あたりのセッションサイズは、セッション内に格納されているセッション情報の量に依存します。
全体的なパフォーマンスを向上させるには、セッション内の情報の量をできるだけ削減します。
「持続性の範囲」の設定を使用して、1 要求あたりのセッションサイズを微調整することができます。HTTP セッション持続性の範囲を、次のオプションから選択します。
session: サーバーは、セッション情報を HADB に保存するたびに、セッションオブジェクト全体を直列化して保存します。
modified-session: サーバーは、セッションが変更された場合、そのセッションのみを保存します。サーバーは変更を、Bean の setAttribute() メソッドへの呼び出しを傍受することによって検出します。このオプションでは内部オブジェクトへの直接の変更は検出されないため、このような場合は、setAttribute() を明示的に呼び出すように SFSB をコーディングしてください。
modified-attribute: サーバーは、そのセッションが最後に格納されたあとに変更 (挿入、更新、または削除) された属性のみを保存します。これには modified-session と同じ欠点がありますが、正しく適用すれば、HADB 書き込みスループットの要件が大幅に削減される可能性があります。
このオプションを使用するには、アプリケーションが次の処理を行う必要があります。
セッション状態を変更するたびに、setAttribute() または removeAttribute() を呼び出す。
属性間で相互参照しないようにする。
複数の属性間、または少なくとも読み取り専用属性と変更可能な属性間でセッション状態を分散します。
次の表は、持続性の範囲オプションの長所と短所を要約しています。
SFSB セッション持続性の場合、HADB への負荷は次の要素に依存します。
チェックポイント設定が有効になっている SFSB の数。
チェックポイント設定のために選択されている SFSB メソッドと、その使用頻度。
セッションオブジェクトのサイズ。
トランザクションで使用するメソッド。
チェックポイント設定は一般に、その SFSB を含む任意のトランザクションが完了したあとに (そのトランザクションがロールバックした場合でも) 発生します。
パフォーマンスを向上させるには、チェックポイント設定に指定するメソッドのセットを小さくします。チェックポイントを設定するデータのサイズと、チェックポイント設定の頻度によって、特定のクライアント対話の応答時間で発生する追加のオーバーヘッドが決定されます。