HTTPSession 変数が保持できるデータの最大制限 (サイズ) は? これを超えるとどうなりますか?そして最も重要なのは、サイズが HTTPSession 変数が保持できる最大サイズを超えた場合に、セッション全体でデータを保持するための代替アプローチは何ですか?
質問する
4446 次
2 に答える
8
サーバーのメモリ以外に制限はありません。代替手段は次のとおりです。
- サーバーをより多くのメモリで実行するには
- セッションをディスクにスワップするようにサーバーを構成します ( Tomcatについては、 http://tomcat.apache.org/tomcat-7.0-doc/config/manager.htmlを参照してください)。
- セッションに大きなデータを入れないようにし、代わりにキャッシュまたはデータベースを使用してそれらを保存します。
于 2012-07-28T07:21:15.187 に答える
0
主に、データ サイズだけでなく、多くの点を考慮する必要があるため、注意して HttpSession でデータ セッションを使用することをお勧めします。
- 接続が安全でない場合、HttpSession がハイジャックされる可能性があります。そのため、接続が HTTPS ではない場合、HTTP に比べてハイジャックされる可能性が高くなります。
- ウェブ上でサービスを利用すると推定されるユーザー数。世界で可能なすべてのメモリを割り当てることができますが、ソリューションがサイズ制限なしでセッションを事前に割り当てる場合、多くのユーザーが使用しているときに JVM で OutOfMemory が発生する可能性が高くなります。たとえば、8 KB に 100.000 ユーザーを掛けたセッション データは、800 MB に達する可能性があります。
- サーバー、Websphere Application Server で構成されたセッション タイムアウトは、デフォルトで 30 分に設定されています。セッション タイムアウトを減らすと、JVM の過負荷が改善される可能性がありますが、一方で、ユーザーを非常に怒らせることができます。
- ソリューションが多くのサーバー (クラスター) を使用する場合、考慮すべきことの 1 つは、それらの間で Http セッションを共有することです。
さらに詳しい情報については、 Ken Hygh、Ruth Willenborg、および Stacy Joines による著書 Performance Analysis for Java Web Sites の Chapter 2 - Http Sessions を読むことをお勧めします。
于 2020-07-02T19:45:19.390 に答える