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(); } }


上一篇:
下一篇:
切换中文