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

Ошибка временного входа в SQL Server 2008 R2

У нас есть зрелый сервер SQL Server 2008 R2, который используется во многих веб-приложениях C #, каждое из которых имеет пул соединений.

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

Я просмотрел журнал событий на сервере и нашел много таких сообщений, как:

The client was unable to reuse a session with SPID [Various], which had been reset for connection pooling. The failure ID is 29. This error may have been caused by an earlier operation failing. Check the error logs for failed operations immediately before this error message.

Я не мог найти сбойную операцию непосредственно перед сообщением об ошибке. Идентификатор отказа 29, очевидно, относится к RedoLoginException.

В журнале событий их тоже было много:

Login failed for user '[Various]'. Reason: Failed to open the database configured in the login object while revalidating the login on the connection.

Также некоторые тайм-ауты:

A timeout (30000 milliseconds) was reached while waiting for a transaction response from the MSSQLSERVER service.
Timeout occurred while waiting for latch: class 'DBCC_MULTIOBJECT_SCANNER' id ..., type 4, Task ...: 44, waittime 300, flags 0x1a, owning task .... Continuing to wait.
Timeout occurred while waiting for latch: class 'ACCESS_METHODS_DATASET_PARENT', ...

и:

IO Completion Listener (0x900) Worker ... appears to be non-yielding on Node 1. Approx CPU Used: kernel 0ms, user 0ms, Interval; 15334

С точки зрения клиентских веб-серверов они получили ряд ошибок входа в систему:

Logon failure: the user has not been granted the requested logon type at this computer
Logon Failure: The target account name is incorrect
Logon failure: unknown user name or bad password

Я задумался о пуле потоков и обнаружил, что max worker threads установлен на 0.

Любые идеи?

ОБНОВИТЬ: Теперь это произошло трижды.

Скорее всего, это связано с методом подключения клиентов и пулом подключений из MSSQL. Приложению, вероятно, потребуется обновить строки подключения или что-то очень специфичное для вашей общей настройки. Вы можете посмотреть здесь https://dba.stackexchange.com/questions/41820/connection-pools-being-reset-with-error-18056-severity-20-state-46-perfm.

Кстати, всем проще дать ответ, если у вас есть конкретное описание ошибки из MSSQL.

Надеюсь, это поможет.