Переполнение пула соединений
От: mad_net  
Дата: 17.01.11 10:55
Оценка:
Здравствуйте, уважаемые разработчики и знатоки BLT.
У меня проэкт активно использующий базу данных.
Для доступа к базе я использую BLT. И иногда при частом обращении к базе
у меня возникает ошибка переполнения пула соединений.

Timeout expired.  The timeout period elapsed prior to obtaining a
connection from the pool.  This may have occurred because all pooled
connections were in use and max pool size was reached.




В документации по ADO.Net рекомендуется во избежание таких проблем каждый раз закрывать соединение, но в BLT это действие якобы должно делаться автоматически, тогда почему возникает эта ошибка?

Я решил закрывать соединение сам вручную, но тогда у меня возникла другая ошибка connection is null

public void Close()
    {
    ...
    if (_connection != null && _closeConnection)
        {
            ExecuteOperation(OperationType.CloseConnection, _connection.Dispose);
            _connection = null;
        }
    ...
    }


и соответственно после этого кода все обращения к _connection дают ошибки.

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

Надеюсь на простое и быстрое решение.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.