У меня есть несколько тестовых сценариев 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, как это четко задокументировано. Перед каждым тестом очищайте пул соединений.