3 votes

Problème de connexion temporaire à SQL Server 2008 R2

Nous disposons d'un serveur SQL Server 2008 R2 mature, utilisé par de nombreuses applications web C#, chacune d'entre elles disposant d'un pool de connexions.

La nuit dernière, toutes les applications web ont perdu la possibilité de se connecter à la base de données pendant 6 minutes, avant que le problème ne se résolve de lui-même. Il s'agissait de plusieurs types de connexions.

J'ai jeté un coup d'œil au journal des événements sur le serveur, et j'ai trouvé beaucoup de messages du genre :

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.

Je n'ai pas trouvé d'opération ayant échoué juste avant le message d'erreur. L'ID d'échec de 29 fait apparemment référence à RedoLoginException .

Le journal des événements en contient également beaucoup :

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

Il y a aussi des temps morts :

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', ...

et :

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

Du point de vue des serveurs web clients, ils ont reçu un certain nombre d'erreurs de connexion :

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

Je me suis interrogé sur la mise en commun des fils, et j'ai constaté que max worker threads est fixé à 0.

Des idées ?

UPDATE : Cela s'est produit à trois reprises.

0voto

Random Citizen Points 476

Cela est probablement lié à la méthode de connexion des clients et à la mise en commun des connexions par MSSQL. L'application devrait probablement mettre à jour les chaînes de connexion ou il s'agit de quelque chose de très spécifique à votre configuration globale. Vous pouvez jeter un coup d'œil ici https://dba.stackexchange.com/questions/41820/connection-pools-being-reset-with-error-18056-severity-20-state-46-perfm .

D'ailleurs, il est plus facile pour tout le monde de donner une réponse si vous avez une description spécifique de l'erreur de MSSQL.

J'espère que cela vous aidera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X