转自:http://blog.csdn.net/luyushuang/article/details/6789273
在ADF中提供两种类型的锁:pessimistic, optimistic。在11gR1版本的JDeveloper中,默认使用的是pessimistic锁,在11gR2的JDeveloper中使用的是optimistic锁。
可以在bc4j.xcfg中修改锁类型(jbo.locking.mode):
- <?xmlversion='1.0'encoding='UTF-8'?>
- <BC4JConfigversion="11.1"xmlns="http://xmlns.oracle.com/bc4j/configuration">
- <AppModuleConfigBagApplicationName="cn.com.frs.service.AppModule">
- <AppModuleConfigDeployPlatform="LOCAL"jbo.project="xxx"name="AppModuleLocal"ApplicationName="xxx">
- <Databasejbo.locking.mode="optimistic"/>
- <SecurityAppModuleJndiName="xxx"/>
- <CustomJDBCDataSource="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