Причины не использовать пул соединений с базой данных? - PullRequest
5 голосов
/ 04 марта 2011

Недавно я нашел автоматически созданную строку подключения с указанием «Pooling = False» и удивился, почему она была настроена таким образом. Насколько я понимаю, объединение в пул практически всегда выгодно, если оно не полностью неверно сконфигурировано.

Есть ли причины для отключения пула? Это зависит от ОС, физического соединения или используемой СУБД?

Ответы [ 3 ]

3 голосов
/ 07 марта 2011

Да, есть причина отключить пул. Вам необходимо проверить, как определенная библиотека пула справляется с временными отключениями от сети. Например, некоторые драйверы баз данных и / или библиотеки пулов ничего не делают, если соединение было потеряно, но объект соединения все еще активен. Вместо того, чтобы создавать новое соединение, пул выдаст вам устаревшие соединения, и вы получите ошибки. Некоторые реализации пула проверяют, является ли соединение активным, выполняя некоторую быструю команду на сервер перед обслуживанием соединения с приложением. Если они получают ошибку, они уничтожают эту связь и порождают новую. Вы всегда должны проверять свою библиотеку пула в соответствии с таким сценарием, прежде чем включать пул.

2 голосов
/ 01 октября 2012

Причина должна заключаться в том, что ваш контекст пытается изменить состояние базовой базы данных, например, если вы делаете что-то, что влияет на TLS (безопасность транспортного уровня), вам не следует использовать пул соединений, поскольку LDAP не отслеживает такое состояние изменения, если вы делаете это, вы идете на компромисс в вопросах безопасности.

2 голосов
/ 04 марта 2011

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

В общем, я думаю, что вы правы, что объединение выгодно. Если это типичное веб-приложение, я бы поинтересовался.

...