ACID: Atomicity: Either should commit all rollback all of its updates in a single unit of work. Consistency: database should never be left in inconsistent state Isolation: How protected is uncommitted changes from other transactions, isolation decreases concurrency. Durability: changes are permanent. interfaces UserTransaction begin(), commit(), rollback(), getStatus() TransactionManager suspend(), resume(), setRollbackOnly(), Status ACTIVE, COMMITTED, COMMITING, MARKED_ROLLBACK, NO_TRANSACTION, PREPARED, PREPARING, ROLLEDBACK, ROLLING_BACK, UNKNOWN. Transaction Models 1. Local 2. Programatic 3. Declarative Local Transaction Model: Resource manager manages transactions. Developer manages connections. e.g. conn.setAutoCommit(false); try { stmt.executeUpdate(sql1); stmt.executeUpdate(sql1); conn.commit() } catch (Exception e) { conn.rollback(); } Programatic Transaction Model Uses JTA, developer uses UserTransaction begin(), com...