ADF应用程序中创建和恢复保存点

来源:互联网 发布:c语言好的书籍 编辑:程序博客网 时间:2024/05/17 00:07

在Oracle Fusion Web应用开发中,如果采用Task Flow来进行应用流的控制,默认只要创建一个task flow就是一个新的事物开始,

如果在流中需要回滚,只需要添加一个restoreSavepoint活动就可以实现事物的回滚,但如果需要在程序中实现保存点的创建和回滚,使用下面的代码:

 

1、创建保存点

[c-sharp] view plaincopyprint?
  1. DCBindingContainer binding = ADFUtils.getDCBindingContainer();  
  2.   DCDataControl dcDataControl = binding.getDataControl();  
  3.   String sph = (String) dcDataControl.createSavepoint();  
  4.   JSFUtils.setExpressionValue("#{pageFlowScope.AdfmSavePoint}",sph);  

 

创建保存点时,ADF将AM中的对象实例序列化保存到PS_TXN表中,因此如果AM中包括了太多的对象,那创建保存点时就会有太多的信息保存到后台表,

意味着AM粒度的划分直接影响 到保存点的创建。关于相关的详细信息可以查看OTN的技术文章Overview of Temporary Tables Created By BC4J

 

2、恢复保存点

[java] view plaincopyprint?
  1. String sph = (String)JSFUtils.resolveExpression("#{pageFlowScope.AdfmSavePoint}");  
  2.   DCBindingContainer binding = ADFUtils.getDCBindingContainer();  
  3.   DCDataControl dcDataControl = binding.getDataControl();  
  4.   dcDataControl.restoreSavepoint(sph);  

[转]http://oracleseeker.com/2009/07/18/create_and_restore_savepoint_in_oracle_adf_application/

原创粉丝点击