C # + Mysql заканчивается соединений. Я использую 'использование' и закрываю все соединения немедленно - PullRequest
1 голос
/ 24 апреля 2010

В приложении, которое я делаю прямо сейчас, я получаю эту ошибку:

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

Очевидно, я касаюсь максимального количества в пуле соединений. Я покорно использую «использование» со всеми объектами подключения и освобождаю их сразу же после завершения функции.

Это на C #, и я использую MySql Data Dll.

Что-то не так с разъемом dotnet для MySql? Есть ли обходной путь?

1 Ответ

1 голос
/ 24 апреля 2010

Несколько вещей, которые нужно проверить сначала:

  • Вы убедились, что ваше приложение не пытается использовать больше соединений одновременно, чем число, разрешенное пулом соединений? Это может легко произойти, если операции, которые вы выполняете во время использования соединения, достаточно долговечны (в любом случае, этого следует избегать).

  • Вы передаете DataReader вместо того, чтобы утилизировать его должным образом, когда закончите с ним. Это может удерживать соединение.

В качестве временного промежутка вы можете попробовать установить 'pooling = false' в строке подключения, хотя это приведет к снижению производительности.

Для получения дополнительной информации об использовании пула соединений см. Использование Connector / NET с пулами соединений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...