La scorsa settimana è successo qualcosa di strano sul nostro database. All'improvviso, l'applicazione è stata bloccata per i nostri utenti che non sono stati in grado di salvare nuove entità, ecc. Dopo aver esaminato Activity Monitor di SQL Server (2008 con modalità di compatibilità 2005) ho visto le seguenti tre voci:
Dopo qualche tempo, gli utenti hanno avuto un timeout di connessione. Quando ho ucciso il processo 64, hanno potuto salvare di nuovo normalmente.
Il problema è che le entità che hanno tentato di salvare durante il blocco sono state inserite nel DB più di una volta (fino a 3 volte) anche se esiste un codice che dovrebbe impedire che ciò accada (colonna numerica che deve essere unica ma senza vincoli ... il controllo avviene nel codice).
Usiamo Entity Framework 6.0.
- Qualcuno di voi sa perché e quando si verificano questi tipi di attesa ASYNC_NETWORK_IO e come evitarli?
- E cosa significano esattamente?