Здравствуйте, уважаемые разработчики и знатоки 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 как-то не охота возможно есть более верное решение моей проблемы.
Также очень важна производительность кода.
Надеюсь на простое и быстрое решение.