ADF中的 'pessimistic 锁' 和 'optimistic 锁'

来源:互联网 发布:java汽车租赁费用 编辑:程序博客网 时间:2024/05/16 07:22

在ADF中提供两种类型的锁:pessimistic, optimistic。在11gR1版本的JDeveloper中,默认使用的是pessimistic锁,在11gR2的JDeveloper中使用的是optimistic锁。

可以在bc4j.xcfg中修改锁类型(jbo.locking.mode):

<?xml version = '1.0' encoding = 'UTF-8'?><BC4JConfig version="11.1" xmlns="http://xmlns.oracle.com/bc4j/configuration">   <AppModuleConfigBag ApplicationName="cn.com.frs.service.AppModule">      <AppModuleConfig DeployPlatform="LOCAL" jbo.project="xxx" name="AppModuleLocal" ApplicationName="xxx">         <Database jbo.locking.mode="optimistic"/>         <Security AppModuleJndiName="xxx"/>         <Custom JDBCDataSource="jdbc/xxx"/>      </AppModuleConfig>


pessimistic锁的缺点是:

1)用户会长时间占用锁,而不能释放;

2)造成死锁。

optimistic锁避免了上述缺点,因此,在开发ADF Fusion web application的时候,ADF建议用optimistic类型的锁。

 

更多关于ADF锁的知识可以参考:

Differences between Pessimistic and Optimistic Locking

Fusion Developer’s Guide for Oracle Application Development Framework 11g Release 1 (11.1.1).

http://www.orafaq.com/papers/locking.pdf