Task Flow使用指南之八:Transaction(4)

本文探讨了在JDeveloper环境下BoundedTaskFlow的事务管理机制,重点介绍了RestoreSavePoint属性的作用,通过具体实验展示了不同Transaction设置下数据更新的效果。
运行环境:JDeveloper 11.1.2.2.0 + Oracle Database 10g Express Edition 10.2.0.1。

在Bounded TaskFlow的Return Activity上有一个Restore Save Point属性,该属性与Transaction的关系如下:
(1)Transaction=Always Use Existing Transaction或UseExisting Transaction if Possible
当进入该TaskFlow时,会自动创建隐含的Save Point。
此时,如果Return Activity上的Restore Save Point=true,表明回退到刚进入TaskFlow时创建的Save Point。也就是说,放弃在TaskFlow中做的所有修改。
(2)Transaction=Always Begin New Transaction
Restore Save Point选项此时不起作用,因为永远开始一个新Transaction的TaskFlow与父TaskFlow的Transaction没有任何关系。
(3)Transaction=No Controller Transaction
Restore Save Point选项此时不起作用,因为TaskFlow没有关联Transaction。

1. 回顾上一个实验的重要设置:
(1)Update Location TaskFlow是第1层TaskFlow,其Transaction分别设置为Always Begin New Transaction。
(2)Update Department TaskFlow是第1层TaskFlow,其Transaction分别设置为Always Use Existing Transaction。
(3)Update Employee TaskFlow是第1层TaskFlow,其Transaction分别设置为Use Existing Transaction if Possible。
(4)Transaction只在Update Location TaskFlow中完成,Update Department TaskFlow和Update Employee TaskFlow只是加入Update Location TaskFlow的Transaction,不做完成Transaction的操作。

2. 设置Cancel Return Activity的Restore Save Point=true
(1)修改Update Department TaskFlow的Cancel Return Activity

(2)修改Update Employee TaskFlow中的Cancel Return Activity


3. 运行
(1)导航到Update Location TaskFlow,修改Location数据

(2)接着导航到Update Department TaskFlow,导航到修改Department数据

(3)接着导航到Update Employee TaskFlow,修改Employee数据

(4)在Update Employee页面中,点击Cancel,放弃修改的Employee数据,并返回Update Department TaskFlow。
(5)在Update Department页面中,点击OK,并返回Update Location TaskFlow。
(6)在Update Location页面中,点击OK,Commit事务。
(7)检查数据库表,发现Location和Department数据都成功修改了,而Employee数据没有变。

Project 下载: ADF_TaskFlow_MultiTransactions(2).7z

参考文献:
1. http://jjzheng.blogspot.jp/2011/03/does-your-task-flow-need-transaction.html

2. http://www.oracle.com/us/technologies/virtualization/oraclevm/o29frame-088050.html

http://maping930883.blogspot.com/2012/08/adf198task-flowtransaction4.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值