Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Bijzonderheden
Attribuut | Waarde |
---|---|
Productnaam | SQL Server |
Gebeurtenis-id | 1205 |
Gebeurtenisbron | MSSQLSERVER |
Bestanddeel | SQLEngine |
Symbolische naam | LK_VICTIM |
Berichttekst | Transactie (proces-id %d) is vastgelopen op %.*ls-resources met een ander proces en is gekozen als het impasseslachtoffer. Voer de transactie opnieuw uit. |
Uitleg
Resources worden geopend in conflicterende volgorde voor afzonderlijke transacties, wat een impasse veroorzaakt. Bijvoorbeeld:
-
Transaction1
updatesTable1.Row1
, terwijl Transaction2Table2.Row2
-
Transaction1
probeertTable2.Row2
bij te werken, maar wordt geblokkeerd omdatTransaction2
nog niet heeft vastgelegd en de vergrendelingen niet heeft vrijgegeven - Transaction2 probeert nu
Table1.Row1
bij te werken, maar wordt geblokkeerd omdatTransaction1
niet heeft doorgevoerd en de vergrendelingen niet heeft vrijgegeven - Er treedt een impasse op omdat
Transaction1
wacht totTransaction2
is voltooid, maarTransaction2
wacht totTransaction1
is voltooid.
Het systeem detecteert deze impasse en kiest een van de betrokken transacties als slachtoffer. Vervolgens wordt dit foutbericht weergegeven, waarna de transactie van het slachtoffer wordt teruggedraaid. Zie Impassesvoor gedetailleerde informatie.
Gebruikersactie
Impasses zijn in de meeste gevallen problemen met betrekking tot toepassingen en vereisen dat toepassingsontwikkelaars codewijzigingen aanbrengen. Een benadering wanneer u fout 1205 ontvangt, is het opnieuw uitvoeren van de query's. Zie Deadlock Simulator-app voor ontwikkelaars voor meer informatie: Een probleem met een SQL-impasse afhandelen in uw app-.
U kunt de toepassing ook herzien om impasses te voorkomen. De transactie die als slachtoffer is gekozen, kan opnieuw worden geprobeerd en slaagt waarschijnlijk, afhankelijk van welke bewerkingen tegelijkertijd worden uitgevoerd.
Als u impasses wilt voorkomen of voorkomen, kunt u overwegen om alle transacties in dezelfde volgorde te openen (Table1
en vervolgens Table2
). Op deze manier, hoewel blokkeren kan optreden, wordt een impasse vermeden.
Zie Afhandeling van impasses en Het minimaliseren van impassesvoor meer informatie.