Jakarta Transactions API
Die Java Transaction API (JTA) ist ein von Sun implementiertes Interface zur Kontrolle von Datenmanipulationen in einer Datenbank. JTA selbst kann keine Transaktionen vornehmen, sondern bietet lediglich standardisierte Methoden zur Kontrolle von Transaktionen.
Die JTA-Bibliothek ist in so gut wie allen J2EE-Containern integriert. Da JTA lediglich aus Interfaces besteht, wird der Java-Entwickler meist mit JTA über Frameworks wie Hibernate, Spring, Glassfish oder ORACLE Toplink in Berührung kommen. Diese Frameworks implementieren (bzw. benötigen) die JTA-Interfaces, sodaß sie ein kontrolliertes Transaktions-Management gewährleisten können.
Transaktions-Management ist ein wichtiger Bestandteil businesskritischer DV-Anwedungen. Es zeichnet sich u.a. dafür verantwortlich, daß Transaktionen nur dann die Persistenz-Schicht(Datenbank) einer Anwendung dauerhaft manipulieren, wenn sie vollkommen fehlerfrei abgeschlossen werden können. Exakt dies leistet die Implementierung von JTA. Andere Kriterien wie Threadsicherheit (Nebenläufigkeit), also beispielsweise die Vermeidung von Race-Hazards, fallen nicht in den Zuständigkeitsbereich von JTA.
Da sich eine Transaktion aus verschiedenen Aktionen/Abfragen (abhängig von wiederum verschiedenen Bedingungen) zusammensetzt, kann sich ein Fehler oder eine Unzulänglichkeit inmitten des Ablaufes der Transaktion ereigenen, das heißt auch dann, wenn bereits Manipulationen an der Persistenzschicht vorgenommen wurden (beispielsweise könnte ein Käufer sich ganz am Ende als zahlungsunfähig erweisen, die Transaktion kann daher nicht erfolgreich abgeschlossen werden; die Ware mußte aber schon als gekauft markiert werden, um anderen Käufern den selben Artikel nicht noch einmal anzubieten). In einem solchen Fehlerfalle ist es notwendig, ein "Rollback" auszuführen, um die Daten der Anwendung konsistent zu halten. Der Transaktions-Manager führt also erst dann das "Commit" an der Datenbank durch, wenn die Transaktion vollständig und einwandfrei ausgeführt werden konnte.