我们有一个成熟的server 2008 R2服务器,用于许多C# web应用程序,每个应用程序都有连接池。
昨晚,所有的web应用程序都失去了登录数据库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.
在紧接错误消息之前,我找不到失败的操作。故障ID 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
从客户端web服务器的角度来看,它们收到了一些登录错误:
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。
有什么想法吗?
更新:这种情况现在已经发生了三次。
发布于 2014-11-21 11:38:36
这很可能与客户端的连接方法和来自MSSQL的连接池有关。应用程序可能需要更新连接字符串,或者它非常特定于您的总体设置。你可以在这里看一下,https://dba.stackexchange.com/questions/41820/connection-pools-being-reset-with-error-18056-severity-20-state-46-perfm。
顺便说一句,如果您有来自MSSQL的特定错误描述,那么每个人都可以更容易地给出答案。
希望这能帮上忙。
https://serverfault.com/questions/643504
复制相似问题