– gute Unterstützung in Frameworks und App Servern – hohe Garantien – wenig Fehlerquellen • Aber: Der Transaktionsbegriff kann viel allgemeiner gesehen werden...
Transaktionskoordinator mit mehreren XA Resource Managers – XA-Protokoll wird zur Kommunikation zwischen Koordinator und Resource Manager verwendet • Ermöglicht ressourcenübergreifende Transaktionen
ACID-Garantien • Erste Phase: – Prepare: Können alle Ressourcen einen Commit durchführen? • Zweite Phase: – Commit: Sofern alle beteiligten Ressourcen das Prepare bestätigt haben...
Rolle in der Java EE • Standalone-Implementierungen verfügbar (Atomikos, ...) • Eine der möglichen Transaktionsmanagement-Optionen beim Spring Framework
der Prepare-Phase nicht mehr erreichbar ist? – Fehler in der 2. Phase verletzen das „Alles- Oder-Nichts“ Prinzip – Muss durch Recovery beseitigt werden... falls möglich.
jeweiligen Status der Transaktion • Transaktions-Recovery anhand dieses Protokolls grundsätzlich möglich • Protokollierungsaufwand ist Hauptgrund für Performance-Verlust
XA: generische Konsistenzgarantien zu einem hohen Preis • Best Effort a la Duplicate Message Detection oft der bessere Tradeoff – unter Berücksichtigung der spezifischen Anwendung