Пул ресурсов оптимизирует обработку ресурса (подключение к базе данных) таким образом, чтобы ваша система могла справиться с ним.Даже если у вас много открытых соединений, у вас может не хватить ресурсов.
Это более вероятно, если вы сохраните соединение с базой данных в контексте сеанса.Веб-приложениям не нужно все время подключаться к базе данных, это соединение можно установить в начале новой операции и закрыть в конце.Используя пул ресурсов, вы возвращаете свое соединение обратно в пул, когда он вам больше не нужен, поэтому новый пользователь (сеанс в веб-парадигме) может использовать ресурс, который вы уже освободили, вместо создания нового.
Пул также будет обрабатывать сценарий, в котором некоторые ресурсы простаивают в течение длительного времени (никто не использовал их в течение определенного периода времени), а затем освобождают эти ресурсы.
При хранении базы данныхПри подключении к сеансу вы никогда не освобождаете ресурс, но сохраняете постоянную ссылку на него, которая будет длиться столько же, сколько и пользовательский сеанс.Вы можете не столкнуться с какими-либо проблемами за короткое время, особенно если к этому времени подключено очень мало пользователей.Но в реальных приложениях вы обязательно найдете их.
Таким образом, хранение соединения с базой данных в контексте сеанса рассматривается как плохая практика .
РЕДАКТИРОВАТЬ: я забыл упомянуть, что в сеансе должны храниться только объекты Serializable
, поэтому, если сервер приложений решает пассивировать сеанс, его можно сохранить и восстановить, когда сервер приложений решит повторно его активировать.Соединение с базой данных не является ресурсом Serializable
.