Partager via


MSSQLSERVER_1205

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Détails

Attribut Valeur
Nom du produit SQL Server
ID de l’événement 1205
Source de l’événement MSSQLSERVER
Composant SQLEngine
Nom symbolique LK_VICTIM
Texte du message La transaction (ID de processus %d) a été bloquée sur les ressources %.*ls par un autre processus et a été choisie comme victime. Relancez la transaction.

Explication

Des ressources font l’objet d’accès dans un ordre conflictuel sur des transactions distinctes, ce qui provoque un interblocage. Par exemple :

  • Transaction1 mises à jour Table1.Row1, tandis que transaction2 met à jour Table2.Row2
  • Transaction1 tente de mettre à jour Table2.Row2 mais est bloquée, car Transaction2 n’a pas encore validé et n’a pas publié ses verrous
  • Transaction2 tente maintenant de mettre à jour Table1.Row1 mais est bloqué, car Transaction1 n’a pas validé et n’a pas libéré ses verrous
  • Un blocage se produit parce que Transaction1 attend que Transaction2 se termine, mais Transaction2 attend que Transaction1 se termine.

Le système détecte ce blocage et choisit l’une des transactions impliquées en tant que victime. Il émet ensuite ce message d’erreur, en annulant la transaction de la victime. Pour plus d’informations, consultez Deadlocks.

Action de l’utilisateur

Les blocages sont dans la plupart des cas des problèmes liés à l’application et nécessitent que les développeurs d’applications apportent des modifications de code. Une approche lorsque vous recevez l’erreur 1205 consiste à réexécuter les requêtes. Pour plus d’informations, consultez 'application Deadlock Simulator for Developers : How to Handle a SQL Deadlock issue in Your App.

Vous pouvez également réviser l'application pour éviter les blocages. La transaction choisie en tant que victime peut être retentée et réussira probablement, en fonction des opérations exécutées simultanément.

Pour empêcher ou éviter les blocages de se produire, envisagez d’avoir toutes les lignes d’accès aux transactions dans le même ordre (Table1, puis Table2). De cette façon, bien que le blocage puisse se produire, un blocage est évité.

Pour plus d’informations, consultez Gestion des interblocages et réduction des interblocages.