Sybase ASE: "Ihr server-Befehl auftreten einer deadlock-situation"

Beim ausführen einer gespeicherten Prozedur (aus einer .NET-Anwendung) vorhanden ist, die eine INSERT-und eine UPDATE, ich habe manchmal (aber nicht oft, wirklich) und zufällig diese Fehlermeldung erhalten:

FEHLER [40001] [DataDirect][ODBC Sybase Wire Protocol driver][SQL Server]den server-Befehl (family id #0, Prozess-id #46) auf eine deadlock-situation. Bitte re-führen Sie Ihren Befehl.

Wie kann ich dieses Problem beheben?

Dank.

Wissen Sie, was ein deadlock ist, warum ein deadlock passieren kann ... und warum es wird passiert Ihr code? Haben Sie versucht, Googeln wie "sybase" und "deadlock"?
Ja, ich weiß, was es ist, ja, ich habe gegoogelt. Die Sache ist, die deadlock passiert sehr selten. Als die Abfrage ist einfach (ein update und ein insert), sollte es im schlimmsten Fall sein, verzögert vom server, wenn einige andere Sperre blockiert wird, nicht einfach nur werfen es aus. Auch der Fehler nicht sagen, was der deadlock wurde auf (in welcher Tabelle, Zeile, etc.) was es schwierig macht, das problem zu lösen. Ich kann nicht manuell verhindern, dass 2 Anfragen von der Ankunft auf dem server in der gleichen Zeit!
Ein deadlock nie Verzögerungen andere Prozesse beendet Sie den anderen Prozess tot - ich würde Lesen Sie mehr über deadlocks, wie Sie havn ' T Verständnis gezeigt
Nun, das ist der springende Punkt, Mark. Ich sage es /sollte/ verzögert werden, wie in,, das ist das Verhalten, das erwartet wird. Natürlich, das problem hier ist, dass ist nicht das Verhalten, die ich erhalte, anstatt verzögert, es verursacht einen deadlock und vollständig gesperrt.

InformationsquelleAutor Laurent | 2009-07-10

Schreibe einen Kommentar