У меня есть приложение IIS, которое размещено на виртуальной машине Windows, которая выполняет запросы на локальном сервере SQL.В целях тестирования тайм-аутов и нескольких других изменений конфигурации я хочу иметь возможность имитировать задержку всякий раз, когда IIS выполняет запрос к БД.Я немного исследовал это и обнаружил следующее:
https://dba.stackexchange.com/questions/144591/need-to-intentionally-create-blocking-processes-for-testing.
Однако это не работает, поскольку я не вижу эффективной задержки в ответе API.Обратите внимание, что я выполняю запрос, упомянутый в ссылке выше, через локальную систему SSMS в виртуальной машине.
Выполнено запросов:
Окно 1:
BEGIN TRANSACTION
SELECT * FROM TestAudit.dbo.TestAT WITH (TABLOCKX, HOLDLOCK)
WAITFOR DELAY '00:00:30'
ROLLBACK TRANSACTION
Окно 2:
SELECT TestTId,
TestAId,
TestST,
TestO,
TestRC,
TestSD
FROM TestAudit.dbo.TestAT
WHERE (
ServerTimestamp >= '2018-10-16 01:48:21.344'
AND ServerTimestamp <= '2018-10-16 01:48:22.344')
AND TestAId = '2000093309'
AND TestO IN ('A', 'B')
AND (
ClientName <> 'Test.Admin'
AND ClientName NOT LIKE '%TestIgnore%');
Ожидается задержка при выполнении второго запроса, учитывая, что первый был выполнен в другом окне.Но не испытывайте никаких задержек.