В проекте asp.net/Sqlserver мы создаем соединения, используя ado.net (аутентификация sql), и мы видим поведение, при котором существует много активных соединений в состоянии «спящий», «Команда ожидания»
Код выполняет следующие действия: получение соединения из общей функции, обновление базы данных, фиксация транзакции, закрытие и удаление транзакции, закрытие соединения.
1) В sqlserver 2008, когда наша программа некоторое время запускается (она обновляет БД каждые несколько секунд), количество активных подключений резко возрастает, и sqlserver начинает отказывать в новых подключениях (так как подключений по умолчанию равно 100)
2) В sqlserver 2005 мы видим, что соединения используются повторно и работают нормально. Максимальное количество наших подключений не должно превышать 15-20.
Мы обнаружили проблему от MSFT в 2008 году и передали клиенту.
https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=383517 - говорит о том, что в 2008 году не будут немедленно закрыты соединения.
В клиентской среде мы видим ту же проблему и в sql2005.
Мой вопрос: когда программа .net вызывает close () для соединения, как долго sqlserver поддерживает его активным?
Большое спасибо за любые подсказки
С уважением
Ананд