リソースプールは、システムが対処できる方法でリソースの処理(データベース接続)を最適化します。開いている接続が多い場合は、リソースが不足する可能性があります。
これは、セッションコンテキストでデータベース接続を保存すると発生する可能性が高くなります。 Webアプリケーションを常にデータベースに接続する必要はなく、新しい接続の開始時に接続を確立し、最後に接続を閉じることができます。リソースプールを使用すると、不要になったプールに接続が返されます。新しいユーザー(Webパラダイムのセッション)は、新しいリソースを作成する代わりに、既にリリースしているリソースを使用できます。
プールでは、一部のリソースが長い間アイドル状態になっている(誰も特定の時間内にそれらを使用していない)シナリオを処理し、その後、それらのリソースを解放します。
セッションでデータベース接続を保存するときは、リソースを解放することは決してありませんが、ユーザーセッションと同じ長さの永続的な参照が保持されます。あなたは短時間で問題に直面することはできません。特に、同時に接続するユーザーがほとんどない場合は特にそうです。しかし、実際のアプリケーションでは、それらを確実に見つけることができます。
したがって、セッションコンテキストにデータベース接続を格納することは、の悪い方法とみなされます。
EDIT:私は、アプリケーションサーバがセッションを不動態化することを決定した場合、アプリケーションサーバは、それを再活性化することを決定したときに、それが持続し、復元することができ、それが唯一のようにセッションでSerializable
オブジェクトを格納する必要があります言及するのを忘れてしまいました。データベース接続はSerializable
リソースではありません。