gpt4 book ai didi

java - 我可以锁定 DB2 的行以供读取吗?

转载 作者:行者123 更新时间:2023-11-30 03:42:11 26 4
gpt4 key购买 nike

我有几个在同一行上执行的预定进程。实际上这一行是需要发送的短信。第一个进程是 @Asynchronious 进程,当我按下发送按钮时调用,第二个进程是 @Scheduled 进程,每分钟调用一次。在我将 SMS 写入数据库后,它的状态为 0。在我成功或不成功发送它后,它的状态将相应地为 2 或 3。问题是,当我从 DB2 读取 SMS 但在实际发送它之前,第二个进程也可以读取并发送它。那么,我的问题是如何预防呢?我可以锁定特定行进行读取吗?另一种方法是添加额外的状态“处理”并在读取特定行时更改此状态,但我怀疑是否可以同时读取和写入?我也有关于全局标志,它表明该进程无法运行,但我不仅在寻找解决方案,我还在寻找最正确的解决方案。非常感谢!

对我的英国人感到抱歉,如果有人愿意编辑它,我将不胜感激。

最佳答案

您无法可靠地阻止其他应用程序读取由一个应用程序锁定的行。使用未提交读隔离级别运行的查询甚至能够访问独占锁定的行。使用当前提交的语义以游标稳定性隔离级别运行的查询将访问独占锁定行的先前版本。

我认为最好的选择是在状态列中使用特殊值(例如“正在处理”),以防止其他 session 处理同一行。

关于java - 我可以锁定 DB2 的行以供读取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26583927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com