在Java中:当更新Active Directory或数据库失败时如何回滚?
在Java中,我有两种方法要做:在Java中:当更新Active Directory或数据库失败时如何回滚?,java,active-directory,commit,rollback,transactionscope,Java,Active Directory,Commit,Rollback,Transactionscope,在Java中,我有两种方法要做: 更新AD中的某些属性数据 更新表中字段中的某些数据 如果项目1或项目2失败,则必须回滚系统 我想这样做,如果两个项目都更新完成,然后提交流程 如果其中一个失败,则必须回滚事务 我在.NET TransactionScope中找到了,但在Java中我不知道 是否有人在此解决方案中为我提供帮助/建议?如果您使用Enterprise java bean(ejb)。 容器管理您的事务并将它们作为一个工作单元,如果其中一个失败,所有其他事务都将回滚。 如果不使用ejb
- 如果项目1或项目2失败,则必须回滚系统
- 我想这样做,如果两个项目都更新完成,然后提交流程
- 如果其中一个失败,则必须回滚事务
是否有人在此解决方案中为我提供帮助/建议?如果您使用Enterprise java bean(ejb)。 容器管理您的事务并将它们作为一个工作单元,如果其中一个失败,所有其他事务都将回滚。 如果不使用ejb, 您必须使用像hibernate这样的持久提供程序。 并用try-catch块包装方法调用, 在catch块调用回滚方法中
try{Session ss = sessionFactory.openSession();
Transaction tx = ss.getTransaction();method 1();method 2();tx.commit();} catch(Exception e){tx.rollback();}finally{ss.close();}
我知道Hibernate只支持RDBMS,但我的一些方法是访问Active Directory(而不是RDBMS),所以我应该怎么做?要回滚数据库更新,可以使用Hibernate或其他持久性提供程序。在catch块中,执行可以取消方法1的操作。