Управление размером пула и возрастом подключения Перейти к началу
Различные приложения имеют разные потребности в отношении компромиссов
между производительностью, площадью и надежностью. C3P0 предлагает широкий
Разнообразие вариантов для контроля, насколько быстро выросли пулы
большой под нагрузкой вернуться к minPoolSize, и "старые" ли соединения
в бассейне должны быть предварительно заменены, чтобы сохранить их
Reliablity.
- maxConnectionAge
- maxIdleTime
- maxIdleTimeExcessConnections
По умолчанию у пулов никогда не истекает Соединения. Если вы хотите, чтобы срок действия Соединений истек со временем,
чтобы сохранить «свежесть», установите maxIdleTime и / или maxConnectionAge.
maxIdleTime определяет, сколько секунд должно быть разрешено Соединение
чтобы остаться неиспользованным, прежде чем быть отбракованным из бассейна. maxConnectionAge
вынуждает пул отбирать любые соединения, которые были получены от
база данных превышает заданное количество секунд в прошлом.
maxIdleTimeExcessConnections о минимизации количества
Соединения, удерживаемые пулами c3p0, когда пул не загружен. От
по умолчанию пулы c3p0 растут под нагрузкой, но сокращаются только при подключении
не пройден тест соединения или истек срок действия через параметры
описано выше. Некоторые пользователи хотят, чтобы их пулы быстро высвобождались
ненужные соединения после всплеска использования, который вызывает большой
Размер бассейна. Вы можете добиться этого, установив
maxIdleTimeExcessConnections к значению намного короче, чем maxIdleTime,
принудительное отключение Соединений сверх установленного минимального размера, если
они простаивают более короткое время.
Несколько общих советов по всем этим параметрам тайм-аута.
Точка подключения пула состоит в том, чтобы нести расходы на приобретение
Соединение только один раз, а затем повторно использовать Соединение много, много
раз. Большинство баз данных поддерживают соединения, которые остаются открытыми в течение нескольких часов
вовремя. Там нет необходимости перетекать все ваши соединения каждый
несколько секунд или минут. Установка maxConnectionAge или maxIdleTime в
1800 (30 минут) довольно агрессивно. Для большинства баз данных несколько
часы могут быть более подходящими. Вы можете обеспечить надежность вашего
Связи, проверяя их, а не бросая их. (увидеть
Настройка тестирования соединения.) Единственный из этих параметров, который
как правило, должно быть установлено на несколько минут или меньше
maxIdleTimeExcessConnections.