通过阅读Intershop文档,我遇到了一些关于pesimistic和乐观锁定机制的提及(其中乐观是通过数据库表中的OCA属性实现的)。
我想知道如何控制在整个数据库中使用哪种类型的锁定,以及从哪里读取有关这些锁定类型的更多信息。
发布于 2020-04-30 20:57:44
据我所知,只有对象级别的乐观锁定,这是不能被禁用的。由于这个原因,intershop中的每个表都有一个OCA列。但是,您确实有其他的锁定方法。
例如:
ORMObject.tryLock。这将使用查询select for update nowait锁定数据库中的实际行。我不推荐使用这个,你可能会得到一些很难调试的死锁错误。更多信息请参见javadoc。
然后是Locking Framework。它实际上不会阻止任何进程更新数据,它是intershop通过锁定资源来编排不同进程的一种方法,这样它们就不会以其他方式进入。但是,您仍然可以忽略这些锁。
我通常会尽量避免锁定。您可能会对这个KB感兴趣,尤其是关于事务作用域的部分。
发布于 2020-04-29 21:40:08
在创建相应的EDL (Enfinity Definition Language,Enfinity定义语言)模型时,通过类修饰符"oca“设置乐观缓存。请参阅https://support.intershop.com/kb/index.php/Display/247P28上的Intershop文档
https://stackoverflow.com/questions/61502430
复制相似问题