Transaktion bei Überweisung: Was schützt vor Parallelzugriffen?

Lernfragen und Praxis · 1 Antworten

STARTBEITRAG

#1

Kontostand lesen, Guthaben prüfen, abbuchen, anderes Konto gutschreiben. BEGIN und COMMIT drumherum.

Für alles-oder-nichts leuchtet mir das ein. Nur: Zwei Aufrufe könnten doch denselben alten Kontostand lesen, bevor einer abbucht. Welche zusätzliche Annahme braucht die Aussage 'Das ist mit einer Transaktion sicher'?

0

Antworten

1
Antwort auf das Thema
#2

Die Transaktion allein sagt noch nichts Ausreichendes über diesen Parallelzugriff. Du musst Isolation und konkrete Zugriffe betrachten. Möglich sind geeignete Zeilensperren vor der Prüfung oder eine bedingte atomare Abbuchung, deren Ergebnis du prüfst. Gutschrift in dieselbe Transaktion, Fehler ordentlich behandeln. Bei mehreren Sperren auch die Reihenfolge festlegen, sonst wartet am Ende jeder auf den anderen.

0