MSSQLSERVER_1205
Neu: 17. Juli 2006
Details
Produktname |
SQL Server |
Produktversion |
9.0 |
Buildnummer des Produkts |
9.00.1281.60 |
Ereignis-ID |
1205 |
Ereignisquelle |
MSSQLSERVER |
Komponente |
SQLEngine |
Symbolischer Name |
LK_VICTIM |
Meldungstext |
Die Transaktion (Prozess-ID %d) befand sich auf %.*ls Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus. |
Erklärung
Durch separate Transaktionen wird in einer zu Konflikten führenden Reihenfolge auf Ressourcen zugegriffen, was zu einem Deadlock führt. Beispiel:
- Von Transaction1 wird Table1.Row1 aktualisiert, während von Transaction2 Table2.Row2 aktualisiert wird.
- Von Transaction1 wird versucht, Table2.Row2 zu aktualisieren. Transaction1 wird jedoch blockiert, weil für Transaction2 noch kein Commit ausgeführt wurde.
- Nun wird von Transaction2 versucht, Table1.Row1 zu aktualisieren. Transaction2 wird jedoch blockiert, weil für Transaction1 noch kein Commit ausgeführt wurde.
- Es kommt zu einem Deadlock, weil von Transaction1 auf die Beendigung von Transaction2 gewartet wird, während gleichzeitig von Transaction2 auf die Beendigung von Transaction1 gewartet wird.
Dieser Deadlock wird vom System erkannt und eine der beteiligten Transaktionen als "Opfer" ausgewählt. Anschließend wird diese Meldung ausgegeben und für die Transaktion des Opfers ein Rollback ausgeführt. Weitere Informationen zu Deadlocks finden Sie unter Deadlocks.
Benutzeraktion
Führen Sie die Transaktion erneut aus. Sie können auch die Anwendung überarbeiten, um Deadlocks zu vermeiden. Die Transaktion, die als Opfer ausgewählt wurde, kann erneut ausgeführt werden und wird wahrscheinlich erfolgreich verlaufen, je nachdem, welche Vorgänge gleichzeitig ausgeführt werden.
Wenn Sie Deadlocks verhindern oder vermeiden möchten, sollten alle Transaktionszugriffszeilen in derselben Reihenfolge (Table1, dann Table2) vorliegen. Auf diese Weise kann es zwar zum Blockieren kommen, ein Deadlock tritt jedoch nicht auf. Weitere Informationen zu erforderlichen Aktionen finden Sie unter Erkennen und Beenden von Deadlocks.