Анатомия Connection Pooling

Введение

Все проекты с которыми я работал использовали пул соединений к БД и для этого есть веские причины. Иногда мы можем забыть зачем применили какой-то шаблон проектирования или технологию, поэтому стоит сделать шаг назад и объяснить это. Каждое технологическое решение имеет и достоинства и недостатки, и если вы не видите каких-то недостатков, то нужно задуматься что вы пропустили.

Жизненный цикл соединений к БД

Каждая операция чтения или записи из БД требует соединения. Так давайте же представим как выглядит цикл соединения с БД:

Этапы:

  1.  Слой данных приложения запрашивает у DataSource соединения к БД
  2. DataSource использует драйвер к БД для открытия соединения
  3. Соединение БД создается и TCP сокет открывается
  4. Приложение пишет/читает в БД
  5.  Соединение больше не требуется и поэтому закрывается
  6. Сокет закрывается

Подробнее