Spec-Zone.ru › MySQL Connectors 1.0

4.2 Управление пулом подключений в Connector/NET

MySQL Connector/NET поддерживает пул подключений для повышения производительности и масштабируемости приложений, интенсивно работающих с базой данных. Эта функция включена по умолчанию. Вы можете отключить её или настроить её характеристики, используя параметры строки подключения Pooling, Connection Reset, Connection Lifetime, Cache Server Properties, Max Pool Size и Min Pool Size. Дополнительную информацию см. в разделе 4.1 «Создание строки подключения Connector/NET».

Пул подключений работает, сохраняя активное нативное подключение к серверу, когда клиент освобождает MySqlConnection. Впоследствии, если открывается новый объект MySqlConnection, он создается из пула подключений, а не создается новое нативное подключение. Это улучшает производительность.

Рекомендации

Для правильной работы лучше всего позволить системе управления пулом подключений управлять всеми подключениями. Не создавайте глобально доступный экземпляр MySqlConnection и не открывайте и закрывайте его вручную. Это нарушает работу пула и может привести к непредсказуемым результатам или даже исключениям.

Один из подходов, упрощающих задачу, — это не создавать объект MySqlConnection вручную. Вместо этого используйте перегруженные методы, принимающие строку подключения в качестве аргумента. В этом случае Connector/NET автоматически создаёт, открывает, закрывает и уничтожает подключения, используя систему пула подключений для лучшей производительности.

Типизированные наборы данных и классы MembershipProvider и RoleProvider используют этот подход. Большинство классов, имеющих методы, принимающие MySqlConnection в качестве аргумента, также имеют методы, принимающие строку подключения. Это включает MySqlDataAdapter.

Вместо создания объектов MySqlCommand вручную, вы можете использовать статические методы класса MySqlHelper. Эти методы принимают строку подключения в качестве аргумента и полностью поддерживают пул подключений.

Использование ресурсов

Connector/NET выполняет фоновую задачу каждые три минуты и удаляет подключения из пула, которые были бездействующими (неиспользуемыми) более трёх минут. Очистка пула высвобождает ресурсы как на стороне клиента, так и на стороне сервера. Это связано с тем, что на стороне клиента каждое подключение использует сокет, а на стороне сервера каждое подключение использует сокет и поток.

Несколько конечных точек. Начиная с Connector/NET 8.0.19, строка подключения может включать несколько конечных точек (server:port) с включённым пулом подключений. Во время выполнения Connector/NET случайным образом (или по приоритету, если он задан) выбирает один из адресов из пула и пытается подключиться к нему. Если попытка подключения неудачна, Connector/NET выбирает другой адрес до тех пор, пока набор адресов не будет исчерпан. Неудачные конечные точки повторно проверяются каждые две минуты. Успешные подключения управляются механизмом пула подключений.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-connections-pooling.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API