Является ли подключение к базе данных таким же, как сеанс?

#database #jdbc #database-connection #connection-pooling #transaction-isolation

#База данных #jdbc #database-connection #объединение в пул соединений #транзакция-изоляция

Вопрос:

Я немного смущен отношениями между

  • Открытый сеанс базы данных
  • Объединение в пул соединений

Чтобы уточнить, я использую JDBC с Oracle 9i DB, и я также использую пул соединений для объединения своих подключений.

Что я хотел бы знать, так это то, что: когда мои соединения простаивают в пуле, связаны ли они с какой-либо Open Session базой данных? Итак, если у меня 5 незанятых подключений в пуле, означает ли это, что будет открыто 5 соответствующих активных сеансов с моей базой данных?

Ответ №1:

Хорошо .. Я получил некоторый ответ с других форумов:

Это полностью зависит от реализации пула. Кажется вероятным, что они некоторое время связаны с открытым сеансом, а затем сеансы закрываются, если соединения не используются в течение некоторого времени, и восстанавливаются, когда они снова понадобятся.

Не поддерживать их открытыми в течение некоторого времени означало бы тратить служебные данные на установление соединений, когда запросы поступают в быстром режиме. Сохранение их открытыми вечно привело бы к ограничению ресурсов без уважительной причины. Оба они идут вразрез с моим пониманием самого смысла наличия пула соединений в первую очередь.