Interstage Application Server J2EE ユーザーズガイド |
目次
索引
![]() ![]() |
第2部 Servlet/JSP編 | > 第14章 セションリカバリ | > 14.1 セションリカバリについて |
セションリカバリ機能を使用する場合の注意事項を説明します。
セションリカバリ機能を利用する場合、Webアプリケーションがセションに格納するオブジェクト(セションオブジェクト)は、シリアライズ可能でなければなりません。ユーザ定義オブジェクトを開発する場合には、java.io.Serializableインタフェースを実装する必要があります。
セションリカバリ機能が有効な状態で、実装されていないオブジェクトをセションに格納すると、IllegalArgumentExceptionが発生します。
OSおよびプロセス(Java VM)固有の資源を表すオブジェクトをセションに格納した場合、動作の保証はできません。たとえば、Threadクラスや入出力に関するクラス(InputStreamクラスやWriterクラス等を継承したクラス)、CORBAやEJBのクライアント(スタブ、org.omg.CORBA.ORBやjavax.naming.Context等、およびこれに類するオブジェクトへの参照を保持するクラス)などはJava VMに固有の資源です。ユーザ定義オブジェクトを開発する場合には、このようなクラスを継承したり、このようなクラスへの参照を保持したりしないようにしてください。
シリアライズ可能でないインスタンス変数には、transient修飾子を宣言してください。
また、セションオブジェクトのサイズが大きくなればなるほど、実行速度が遅くなります。
セション情報がリカバリされる保証範囲は、Session Registryサーバの環境定義によります。
セションリカバリの保証範囲については、“セションリカバリの保証範囲”を参照してください。
セションリカバリ機能を利用する場合、SOAPサービスのSOAPルータを運用することはできません。
セションリカバリ機能が有効な状態で、セションに格納したユーザ定義オブジェクトのクラスファイルを更新した場合、セションに格納したユーザ定義オブジェクトを正しく復元できないことがあります。この場合は、サーブレット・コンテナおよびSession Registryサーバを再起動してください。
また、永続化を行っている場合は、Session Registryサーバの起動前に、セション永続化情報定義ファイルの“serialize.file.path”のディレクトリ配下にあるファイルを削除してください。
サーブレット・コンテナが動作するマシンとSession Registryサーバが動作するマシンの時刻を等しくする必要があります。
時刻にずれが生じる場合は、定期的に同じNTP/SNTPサーバを参照するなどして時刻を修正してください。
目次
索引
![]() ![]() |