import javax.transaction.*;
public class SavepointExample {
public static void main(String[] args) throws SystemException, NotSupportedException {
UserTransaction utx = (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction");
utx.begin();
// ...
Savepoint savepoint = utx.setSavepoint();
try {
} catch (Exception e) {
utx.rollback(savepoint);
}
utx.commit();
}
}
import javax.transaction.*;
import javax.ejb.*;
public class RollbackRulesExample {
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void doSomeTask() throws Exception {
// ...
}
public void doAnotherTask() throws Exception {
// ...
}
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void doTaskWithRollbackRules() throws Exception {
RollbackRuleAttribute rollbackRule = new RollbackRuleAttribute(Exception.class);
TransactionManager tm = (TransactionManager) new InitialContext().lookup("java:comp/TransactionManager");
Transaction tx = tm.getTransaction();
tx.setRollbackOnly(rollbackRule);
doSomeTask();
doAnotherTask();
}
}