データベースセッションフェイルオーバ機能を使用する場合,グローバルセッションの引き継ぎが発生したタイミングでjavax.servlet.http.HttpSessionActivationListenerインタフェースのsessionDidActivate()メソッドが呼び出されます。また,このときjavax.servlet.http.HttpSessionListenerインタフェースのsessionCreated()メソッドは呼び出されません。
HTTPセッションを使用する処理では,Java EEで規定されたイベントに対応してHTTPセッションに関連するリスナが動作します。HTTPセッションに関連するリスナとは,次のインタフェースを実装したクラスです。
データベースセッションフェイルオーバ機能を使用する場合,HTTPセッションに関連するリスナはデータベースセッションフェイルオーバ機能のイベントを契機として動作します。
Java EEで規定されたイベントとデータベースセッションフェイルオーバ機能で発生するイベントの対応,およびイベントを契機として動作するリスナについて次の表に示します。
表6-17 データベースセッションフェイルオーバ機能で発生するイベントと動作するリスナ
項番 | Java EEで規定されたイベント | 対応するイベント(データベースセッションフェイルオーバ機能使用時) | 動作するリスナ |
---|---|---|---|
1 | HTTPセッション作成 | HTTPセッション作成 | javax.servlet.http.HttpSessionListenerインタフェースのsessionCreated()メソッド |
2 | HTTPセッション無効化 |
|
|
3 | HTTPセッションの属性追加 | HTTPセッションの属性追加 |
|
4 | HTTPセッションの属性変更 | HTTPセッションの属性変更 | javax.servlet.http.HttpSessionAttributeListenerインタフェースのattributeReplaced()メソッド |
5 | HTTPセッションの属性削除 |
|
|
6 | セッションの活性化 | グローバルセッションの引き継ぎ | javax.servlet.http.HttpSessionActivationListenerインタフェースのsessionDidActivate()メソッド |
7 | セッションの非活性化 | (対応するイベントなし) | (動作するリスナなし) |
注※ イベント発生時に属性が追加されていた場合です。
このほかのリスナの動作については,データベースセッションフェイルオーバ機能を使用しない場合と同じです。