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

Проблема с подключением к базе данных после ВОССТАНОВЛЕНИЯ. SQL Server 2005 и классический ASP

У меня есть несколько тестовых сценариев Selenium, которые я использую для тестирования классического веб-приложения ASP, но у меня возникают проблемы после восстановления базы данных (SQL Server 2005) с файлом резервной копии перед запуском каждого теста. Сразу после успешного ВОССТАНОВЛЕНИЯ (из сценария Python, запускающего sqlcmd ...), когда ASP пытается подключиться к базе данных, я получаю следующую ошибку ...

[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionWrite (send()).,,,Microsoft OLE DB Provider for ODBC

Это создается ADODB с использованием этой строки подключения ...

"DSN=mydbdsn;UID=myuser;PWD=mypass;"

Но попытка подключения из объекта C ++ ActiveX через ODBC также завершается с той же ошибкой.

Перезапуск IIS вернет все в норму. И SQL Server 2008 демонстрирует ту же проблему.

Кто-нибудь знает, почему я не могу подключиться к базе данных после ВОССТАНОВЛЕНИЯ?

Спасибо,

После восстановления перезапустите приложение Classic ASP. Это очистит существующие соединения перед восстановлением.

В качестве альтернативы вы можете установить базу данных в режим SINGLE USER перед восстановлением (которое должно удалить все существующие соединения), выполнить восстановление перед продолжением ваших тестов.

SQL-сценарий для настройки однопользовательского режима:

ALTER DATABASE <DB_NAME_HERE> SET SINGLE_USER WITH ROLLBACK IMMEDIATE

Из RESTORE технические характеристики:

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

Так что убедитесь, что вы открыли новый соединения после восстановления. Все существующие соединения из пула соединений блокируются RESTORE, как это четко задокументировано. Перед каждым тестом очищайте пул соединений.