Назад | Перейти на главную страницу

Что могло быть причиной того, что мой код периодически не мог установить соединение с SQL Server?

Я писал тестовый код для разрабатываемой программы. Часть моего кода выполняет операции, изменяющие данные на SQL Server. Чтобы не загромождать мою базу данных тестовыми данными, я использую транзакции. Я запускаю каждый тест внутри транзакции, а затем откатываю транзакцию.

Однако, когда я запускаю свой тестовый код, он время от времени выдает исключение, которое не может подключиться к SQL Server. Хуже того, кажется, что иногда транзакции просто плавают в эфире, блокируя таблицы в моей базе данных, так что обычные пользователи не могут подключиться. (Это база данных среды разработки, но все же это большая проблема).

Мои тесты разделены примерно на 100 тестов; каждый тест запускается в отдельной транзакции; тесты выполняются последовательно (или, по крайней мере, я думаю, что они должны: - /).

Если я запускаю тесты по одному, они всегда проходят. У меня возникают проблемы только при запуске всех 100 тестов одновременно в Visual Studio 2008. Каждый тест выполняется очень быстро, поэтому я думаю, что проблема связана с тем, что SQL Server не может очистить соединение из предыдущего теста и выполнить доступно новое подключение.

Есть ли какие-то изменения в моей конфигурации SQL Server, которые могут решить эту проблему?

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