WebSphere Application Server, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

書き込み操作

変更されたセッション・データをデータベースまたは別の WebSphere Application Server インスタンスに書き出すタイミングは、 com.ibm.websphere.servlet.session.IBMSession インターフェースの sync メソッドを使用することによって、手動で制御することができます。 セッション・データの書き込み頻度の調整には、 手動更新、サービス・サーブレットの終了、 および時間ベースの書き込み頻度の、各モードを使用することができます。

このインターフェースは javax.servlet.http.HttpSession インターフェースを拡張するものです。 サーブレットの service メソッドから sync メソッドを呼び出して、 セッション内のあらゆる変更を外部ロケーションに送ります。 書き込み頻度モードとして手動更新が選択されていると、 アプリケーションが sync メソッドを呼び出す場合に限り、セッション・データの変更内容は外部ロケーションに書き込まれます。 sync メソッドが呼び出されない場合は、 セッション・オブジェクトがサーバー・キャッシュからなくなったときに、 セッション・データの変更内容は失われます。 サービス・サーブレットの終わりまたは時間基準が書き込み頻度モードである場合は、 sync メソッドが呼び出されるたびに、セッション・データの変更内容が書き出されます。 sync メソッドが呼び出されない場合は、 サービス・メソッドの終了時または選択された書き込み頻度モードに基づいた時間間隔ベースで、 変更内容が書き出されます。

   IBMSession iSession = (IBMSession) request.getSession();
   iSession.setAttribute("name", "Bob");
   
   //force write to external store
   iSession.sync( )

セッション値の更新中にデータベースのダウンまたは接続障害が起こると、 sync メソッドは、最終的に「BackedHashtable.getConnectionError」エラーを作成する前に常に 3 回試行します。 各接続の試行が失敗すると、「BackedHashtable.StaleConnectionException」が作成され、 sync メソッドで検出されます。データベースがこれらの 3 回の試行のいずれかで開くと、 メモリーのセッション・データは永続的なものとなり、データベースにコミットされます。

ただし、3 回の試行の後、データベースが依然として立ち上がっていない場合は、メモリーのセッション・データは、 セッションの無効化の次の確認後にのみ持続します。 セッションの無効化は、5 分間隔で起動する別のスレッドによって確認されます。 セッション・データの要求がこれらのイベント間にサーバーに発行されない限り、メモリー内のデータは一致します。 例えば、セッション・データの要求が 5 分以内に発行されると、以前の持続したセッション・データが送信されます。

セッションはトランザクションのリソースではありません。sync メソッドはクライアントとは別のスレッドと関連付けられているため、 作成された例外はプライマリー・スレッドで稼働しているクライアントには伝搬されません。 データのトランザクションの整合性は、 エンタープライズ Bean などのリソースを介して維持されます。




関連資料
セッション管理の調整
概念トピック    

ご利用条件 | フィードバック

最終更新: Jan 22, 2008 12:07:38 AM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/cprs_write_ops.html