C # SQL максимальный размер пула был достигнут - PullRequest
0 голосов
/ 11 мая 2011

У меня есть простой цикл while, который проверяет базу данных на наличие вставок. Если он находится в цикле слишком долго, моя попытка поймает ошибку «достигнут максимальный размер пула». Так что в нижней части цикла у меня есть соединение clearallpools(); Но это все еще не решает это.

while (!quit)
{
connection to database strings timeout=400

read from database


connection.clearallpools();
}

Ответы [ 3 ]

4 голосов
/ 11 мая 2011

Возможно, вы не закрываете свои соединения ... вы можете использовать

while(!quit){
    //do something here
    using(var connection = GetMyConnection()){
        //do your db reads here
    }
    //do validations and something more here
}

Это обеспечит правильное размещение / закрытие ваших соединений.

Кроме того, вам не нужно очищать свои бассейны.

Объекты SQLConnection / DBConnection реализуют IDisposable. Вы можете пройти через эти

3 голосов
/ 11 мая 2011

Скорее всего, продолжаете открывать новые соединения в цикле .

Над открытым циклом соединение является оператором using, а затем используйте его в цикле.Также обратите внимание на удаление из clearallpools:

using(create new connection)
{
    while (!quit)
    {
    connection to database strings timeout=400

    read from database


    // connection.clearallpools(); REMOVE THIS!!!!
    }
}
0 голосов
/ 11 мая 2011

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

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