Tomcat(ここではバージョン5)はセッション情報をメモリに保存します。この情報のクラスタリングは、クラスタ内の他のサーバーに定期的にブロードキャストされ、同期が維持されます。データベースストアを使用してセッションを永続化することはできますが、この情報は定期的に書き込まれるだけで、実際にメモリ内セッションを置き換えるのではなく、障害回復に実際に使用されます。Tomcatとは別のセッションストアを指定する方法はありますか?
スティッキセッションを使用したくない場合(私たちの設定では残念ながら許可されません)、セッションが同期しなくなる問題が発生します。
他の言語では、Webフレームワークではデータベースをプライマリセッションストアとして使用できます。これによりスケーリングの問題が発生しますが、セッション管理は非常に簡単です。私は、この方法でセッション用のデータベースを使用する方法があるかどうか疑問に思っています(技術的にはTomcat server.xmlのクラスタリング設定の必要性もなくなります)。
スティッキーセッションを使用しない場合、同じセッションの要求が同じJVMから提供されるというサーブレット仕様の要件の1つを破ります。 Tomcatはこれを非常に難しくします。おそらく、セッションをデータベースに保存することで失われたアップデートの問題が発生するでしょう。 – davidsheldon