Управление пулом соединений - PullRequest
7 голосов
/ 07 октября 2011

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

Что такое алгоритм управления пулом соединений?

У меня есть строка подключения: Код:

User Id=inet;Password=somePassw0rd;Data Source=TEST11;Min Pool Size=5;Max Pool Size=15;Pooling=True

Затем я просто открываю и закрываю соединение в своем коде.Вот и все.

На данный момент все в порядке.На стороне БД пять сессий.Так что я бы убил сеанс для имитации проблем с подключением.А в некоторых случаях соединение будет восстановлено диспетчером пула, а в некоторых - нет.

Если я прерву все пять соединений, они никогда не восстановятся обратно.

Как настроить пулменеджер?Какие-либо настройки для продолжительности между проверками соединений с БД?

Я использовал validate connection=true;, мне кажется, это работает нормально, но потребуется некоторое усилие, если потребуется переподключение к БД, и, следовательно, было бы более эффективноУ меня уже есть хорошее соединение.

Я использовал компонент devArt dotConnect для Oracle .Заранее спасибо!

1 Ответ

14 голосов
/ 10 октября 2011

Я не уверен, что именно вы ищете, но это может быть полезно: пулы автоматически очищаются, если соединение какое-то время простаивает или закрывается сервером.Однако вы можете принудительно очистить пул, используя методы OracleConnection ClearPool или ClearAllPools (эти методы обычно существуют в большинстве поставщиков ADO.NET, и это не обязательно).

Обратите внимание, что если вы используете Oracle 11g, DotConnect также поддерживает Oracle Пул резидентных подключений к базам данных (DRCP) , который, по-видимому, является лучшим способом сделать пул, поскольку он предоставляется самой Oracle (у меня нетхотя по этому поводу).

...