Transaktion
Eine Transaktion ist eine Einheit von Operationen, die ganz oder gar nicht wirken (Atomarität).
In Jakarta EE meistens von CMT verwaltet.
I. ACID
| Buchstabe | Bedeutung |
|---|---|
| Atomicity | Alles oder nichts |
| Consistency | DB bleibt in gültigem Zustand |
| Isolation | Parallele TX stören sich nicht |
| Durability | Committet = dauerhaft |
II. In Jakarta EE
- Bei @Stateless mit CMT = automatisch
- Methoden-Start = TX-Begin
- Methoden-Return = COMMIT
- RuntimeException = ROLLBACK
- Checked Exception = KEIN Rollback!
III. Manuell mit BMT
@TransactionManagement(TransactionManagementType.BEAN)
public class FooService {
@Resource UserTransaction tx;
public void doIt() throws Exception {
tx.begin();
try {
// ...
tx.commit();
} catch (Exception e) {
tx.rollback();
}
}
}
.NET-Vergleich
Ähnlich TransactionScope mit using-Block.