Was sind die Unterschiede zwischen Transaktionsfehler und Transaktionsabbruch? Und welche Ursachen für Transaktionsfehler und Transaktionsabbruch?

Was sind die Unterschiede zwischen Transaktionsfehler und Transaktionsabbruch? Und welche Ursachen für Transaktionsfehler und Transaktionsabbruch?

Greg Kemnitz, Postgres Interna, Embedded Device db Interna, MySQL Benutzerlevel

Wenn die Frage im Kontext einer Datenbank-Engine mit ACID-Transaktionen steht, wird eine Transaktion, die aus irgendeinem Grund abgebrochen wird, zurückgerollt, und die DB-Welt wird so aussehen, als ob die Transaktion nie stattgefunden hätte.

Datenbank-Engines werden in der Regel sorgfältig codiert, so dass alle Transaktionen, die noch nicht COMMIT-Transaktionen oder noch nicht abgeschlossene Einzelanweisungen mit AUTO_COMMIT gesetzt haben, effektiv rückgängig gemacht werden, wenn die db-Engine ausfällt. s läuft abstürzt, etc. Dies ist in der Regel als Teil der Crash-Recovery-Prozess der db-Engine (es gibt keine gute Wikipedia bei Crash-Recovery, so dass ich InnoDB Crash-Recovery-Beschreibung verwendet).

Eine DB-Engine kann auf verschiedene Arten versagen, und die Maschine, auf der sie läuft, kann auch abstürzen, Strom verlieren, usw., aber wenn die db-Engine korrekt codiert ist, wird die Datenwelt in einen vernünftigen Zustand mit nur Änderungen von COMMITted-Transaktionen zurückgesetzt verfügbar, wenn es wieder hochkommt.

Mehr zu Datenbanktransaktionen: Datenbanktransaktion.

Da dies auf "Finanzen" gebucht wird, sollte ich darauf hinweisen, dass eine "Transaktion" einer Anwendung nicht notwendigerweise einer Datenbanktransaktion gleichkommt. Die Beschreibung, die ich oben gegeben habe, betrifft nur Datenbank-Engine-Transaktionen.

Vishal Raj

Diplom-Informatiker
Beantwortet 8. November 2017 · Autor hat 535 Antworten und 424.4k Antwortansichten

Da Sie keinen spezifischen Kontext erwähnt haben, wäre die Antwort sehr allgemein gehalten.

Transaktionsfehler = Beim Ausführen der Anweisungen aus der Transaktion ist ein Fehler aufgetreten und daher fehlgeschlagen.

Transaktion abort = Eine explizite Anfrage zum Stoppen der laufenden Transaktion. Es könnte sehr wohl auch aufgrund eines Transaktionsfehlers oder einer Benutzeranforderung sein.

Ein einfaches Beispiel wäre beispielsweise, dass Sie den Browser öffnen und eine URL anfordern. Wenn die Seite nicht richtig geladen werden konnte, ist dies ein Transaktionsfehler. Aber wenn die Seite Zeit zum Laden braucht und Sie die "Esc" -Taste drücken, wird die Transaktion abgebrochen.

Hoffnung, die dir geholfen hat, Unterschiede zu verstehen.

Finnbogi Ragnar Ragnarsson
Beantwortet 1. November 2017 · Autor hat 186 Antworten und 155.8k Antwortansichten

Die Frage ist zu vage, aber im Allgemeinen würde es bedeuten, dass ein Fehler in ersterer aufgetreten ist oder verhindert wurde, aber die letzte Transaktion wurde rückgängig gemacht.

Diese beiden würden sich nicht gegenseitig ausschließen.

Datenbanksysteme, Computer, Computerprogrammierung