Intershop 7 - 属性 用于控制事务锁定类型
Intershop 7 - property for controlling transaction locking type
阅读 Intershop 文档时,我发现了悲观和乐观锁定机制(其中乐观是通过数据库表中的 OCA 属性实现的)。
我想知道如何控制在整个数据库中使用哪种类型的锁定以及在何处阅读有关这些锁定类型的更多信息。
在创建相应的 EDL(无限定义语言)模型时,通过 class 修饰符 "oca" 设置乐观缓存。
请参阅 https://support.intershop.com/kb/index.php/Display/247P28
处的 Intershop 文档
据我所知,只有对象级别的乐观锁定,无法禁用。出于这个原因,intershop 中的每个 table 都有一个 OCA 专栏。但是您确实有其他锁定方式
例如:
ORMObject.tryLock
。这通过使用查询锁定数据库中的实际行:select for update nowait
。我不推荐使用这个,你最终可能会遇到一些相当难以调试的死锁错误。有关更多信息,请参阅 javadoc。
然后是Locking Framework。它实际上并没有阻止任何进程更新数据,它是 intershop 通过锁定资源来协调不同进程的一种方式,这样它们就不会互相干扰。但是你仍然可以忽略这些锁。
我通常尽量避免锁定。 KB 您可能会感兴趣,尤其是关于事务范围的部分。
阅读 Intershop 文档时,我发现了悲观和乐观锁定机制(其中乐观是通过数据库表中的 OCA 属性实现的)。
我想知道如何控制在整个数据库中使用哪种类型的锁定以及在何处阅读有关这些锁定类型的更多信息。
在创建相应的 EDL(无限定义语言)模型时,通过 class 修饰符 "oca" 设置乐观缓存。 请参阅 https://support.intershop.com/kb/index.php/Display/247P28
处的 Intershop 文档据我所知,只有对象级别的乐观锁定,无法禁用。出于这个原因,intershop 中的每个 table 都有一个 OCA 专栏。但是您确实有其他锁定方式
例如:
ORMObject.tryLock
。这通过使用查询锁定数据库中的实际行:select for update nowait
。我不推荐使用这个,你最终可能会遇到一些相当难以调试的死锁错误。有关更多信息,请参阅 javadoc。
然后是Locking Framework。它实际上并没有阻止任何进程更新数据,它是 intershop 通过锁定资源来协调不同进程的一种方式,这样它们就不会互相干扰。但是你仍然可以忽略这些锁。
我通常尽量避免锁定。 KB 您可能会感兴趣,尤其是关于事务范围的部分。