Top Up Home HTML2PDF Verteilte Transaktionen

Verteilte Transaktionen

Transaktionen, die mehr als einen Ressource-Manager umfassen

Typische Ressource-Manager sind Datenbank- oder Messaging-Systeme

Anforderungen

ACID muss wie bei nicht verteilten Transaktionen gewahrt werden

Alle RM müssen

  • die Transaktion erfolgreich beenden oder
  • alle ihre Änderungen rückgängig machen

Zwei-Phasen-Commit-Protokoll (2PC)

  • Umgang mit mit Systemfehlern,
  • z.B. Kommunikationsfehler (Netzwerkunterbrechung)
  • TM stürzt ab, RM stürzt ab
  • Sicherstellung der Atomarität

Spezifikationen

Distributed-Transaction-Processing-Modell (DTP)

TX-Spezifikation

  • Schnittstelle zwischen AP und TM
  • Das AP steuert die Transaktion: bot, commit, rollback

XA-Spezifikation

  • Schnittstelle zwischen TM und RM
  • Assoziation von Operationenen im RM mit einer Transaktion
  • Funktionen zur Abbildung des Zwei-Phasen-Commit-Protokolls

Überweisung Giro-/Sparkonto

Verschiedene Unternehmenseinheiten für Giro- und Sparkonten

Jeweils eigene IT-Infrastruktur

2PC - erfolgreicher Abschluss

2PC - Fehlerabbruch

Zustandsübergänge in RM

executing

  • RM führt Operationen durch, z. B. Änderungen an Daten
  • Bei Fehler kann sofort in den aborting/aborted-Zustand gewechselt werden
  • Nach der prepare-Aufforderung durch den TM wird bei positivem Ergebnis in den prepared-Zustand gewechselt
  • Der RM muss auf die Entscheidung durch den TM warten

prepared

  • Abhängig von der Entscheidung des TM wird die Transaktion erfolgreich beendet oder es findet ein Rückgängigmachen aller Operationen statt

aborting/aborted

  • Transaktion wurde abgebrochen

commiting/committed

  • Transaktion wurde erfolgreich beendet

Zustandsübergänge in TM

executing

  • TM startet commit-Bearbeitung
  • Sendet prepare-Meldung an alle RM
  • Kann aber Transaktion auch abbrechen

prepared

  • TM wartet auf Ergebnisse von den RM
  • Antworten alle RM positiv geht er in den Zustand committing über
  • Antwortet nur ein RM negativ geht er in den aborting-Zustand über

aborting, commiting

  • TM warted auf Bestätigungen

aborted/committed

  • Information zur Transaktion wird in den Programmstrukturen des TM gelöscht, da sie komplett abgeschlossen ist

Heuristische Entscheidungen

RM hat bei prepare mit yes geantwortet

TM stürzt ab

  • Alle Sperren müssen im RM gehalten werden
  • Andere Transaktionen auf diesem RM werden möglicherweise blockiert

Pragmatische Lösung für diesen Fall: RM können von sich aus, d. h. heuristisch, eine Entscheidung zum Ausgang der Transaktion treffen, entweder commit oder abort

  • Dadurch wird die Atomarität der Transaktion durchbrochen, da der TM möglicherweise eine andere Entscheidung zum Ausgang getroffen hat
  • In diesem Fall muss ggf. manuell wieder ein konsistenter Gesamtzustand des Systems hergestellt werden