La semaine dernière, quelque chose d'étrange s'est produit dans notre base de données. Tout d'un coup, l'application a été bloquée pour nos utilisateurs qui n'ont pas pu enregistrer de nouvelles entités, etc. Après avoir regardé le moniteur d'activité de SQL Server (2008 avec le mode de compatibilité 2005), j'ai vu les trois entrées suivantes:
Après un certain temps, les utilisateurs ont obtenu un délai de connexion. Lorsque j'ai tué le processus 64, ils pouvaient à nouveau enregistrer normalement.
Le problème est que les entités qu'ils ont essayé d'enregistrer pendant le bloc ont été insérées dans la base de données plus d'une fois (jusqu'à 3 fois) même s'il existe du code qui devrait empêcher cela de se produire (colonne de numéro qui doit être unique mais sans contrainte) ... la vérification a lieu dans le code).
Nous utilisons Entity Framework 6.0.
- L'un de vous sait-il pourquoi et quand ces types d'attente ASYNC_NETWORK_IO se produisent et comment les éviter?
- Et que signifient-ils exactement?