intershop - Intershop 7 - 控制事务锁定类型的属性
问题描述
通过阅读 Intershop 文档,我遇到了悲观和乐观锁定机制(其中乐观是通过数据库表中的 OCA 属性实现的)。
我想知道如何控制在整个数据库中使用哪种类型的锁定以及在哪里阅读有关这些锁定类型的更多信息。
解决方案
据我所知,对象级别只有乐观锁定,不能禁用。因此,intershop 中的每个表都有一个 OCA 列。但是,您确实有其他锁定方式
例如:
ORMObject.tryLock
. 这通过使用查询锁定数据库中的实际行:select for update nowait
。我不推荐使用这个,你最终可能会遇到一些很难调试的死锁错误。有关更多信息,请参阅 javadoc。
然后是Locking Framework。它实际上并没有阻止任何进程更新数据,它是 intershop 通过让它们锁定资源来协调不同进程的一种方式,这样它们就不会相互干扰。但是你仍然可以忽略这些锁。
我通常尽量避免锁定。这个KB可能对您来说很有趣,尤其是关于事务范围的部分。
推荐阅读
- wordpress - 自定义帖子类型页面的自动子页面
- r - R 闪亮的大窗户
- python - 我所有的@client.events 都有效,但我的@client.command 无效,但如果它只是命令和on_ready 事件,@client.command 有效
- r - 为什么循环计算更快?
- jquery - 自动完成 jQuery UI 源中元素数量的最大限制
- java - 线程安全的最终一致计数器
- python - 发疯:如何在 CentOS 7 上安装 python 3.7.6
- python - 为什么 os.environ ["SDL_VIDEO_CENTERD"] = "1" 与 IDLE 一起使用而不是 sublime 文本
- r - tsfknn:: 将自动绘图预测提取到表格中
- python - 使用python从postgres中检索varchar