Frage

diese Frage nach der Definition von gebucht wurde, was eine Transaktion in einem allgemeinen Kontext. Eine gemeinsame Antwort auf diese Frage war, dass eine Transaktion soll eine atomare Arbeitseinheit sein

Meine Frage an dieser Unteilbarkeit betrifft (ich glaube) ich oft explizite Anrufe sehen in gespeicherte SQL-Prozeduren zu ROLLBACK.

Ist es in der Regel eine gemeinsame Anforderung von Transaktionsverarbeitungssystemen, die Rollbacks explizit genannt werden?

Ist ein Zurücksetzen erfolgt automatisch, wenn ein Fehler auftritt, wenn zu begehen?

War es hilfreich?

Lösung

In TP-Systemen Rollback basierend auf auftreten kann:

  • eine explizite Anfrage, wie ein Anruf zu ROLLBACK oder ähnlich
  • jede abgefangene Ausnahme oder Fehler. Dazu gehören beispielsweise:
    • Verlust der Kommunikation mit einem Teilnehmer (in einer verteilten Transaktion)
    • eine ungültige oder Out-of-Range-Wert oder Parameter
    • ein Timeout, wegen Unfähigkeit, eine Sperre zum Beispiel, oder Benutzer-Verzögerung zu erwerben.
  • in einer Zwei-Phasen-Commit verteilte Transaktion, ein Ausfall einer der Teilnehmer stimmen zu begehen

Ein Rollback muss nicht auftreten, wie Sie „wenn zu begehen“, sagen, von dem ich denke, du meinst „wenn der Versuch zur Begehung.“ Eine Transaktion kann jederzeit nach Beginn Rollback.

Andere Tipps

In einigen Fällen wird ein Rollback automatisch erfolgen aufgrund eines Trigger oder eine Einschränkungsverletzung. In anderen Ländern (wie Sie gesehen haben), die gespeicherte Prozedur selbst tut das Rollback. Aiden ist richtig, dass autocommit variiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top