gpt4 book ai didi

sql - 调用程序的锁定问题

转载 作者:行者123 更新时间:2023-12-04 14:02:38 25 4
gpt4 key购买 nike

我有 50 个程序调用的 pgmA。pgmA 在输入模式下有详细文件。50 个调用程序中的一些在更新模式下有详细文件。根据新要求,我将在 PGMA 中以 XML 格式获取详细文件记录format..that needs to be breaked and updated..parsing is fine but I am worried about update detail file in PgmA because calling programs may locks record 而且我可能会遇到被同一份工作锁定的问题!分析这些程序也有点困难,因为它们多次调用 PgmA 并且代码庞大而陈旧..任何关于如何在没有锁定的情况下更新详细文件的建议...给我任何解决方案建议..

最佳答案

简短的回答是:如果不先锁定记录,就无法更新记录。

但是你可以调整你的锁定方案来最小化锁定的影响。您可能需要在调用 pgmA 的 50 个程序中执行此操作。方法是在没有锁的情况下读取要更新的记录,进行处理,然后在更新之前再次读取它,这次是带锁的。这样,如果您的处理长时间运行(通常需要用户输入),锁定时间就会最小化。

通常更新 ID 存储在每个记录中,它只是一个序列号,以帮助检测另一个进程在记录的第一次和第二次读取之间对记录所做的更改。检测这些变化的另一种方法是将记录存储在包含第一次读取的数据结构中,然后在更新之前将初始读取与第二次读取进行比较。

因此,通过 RLA 处理,它看起来像这样:

chain(n) (key:fields) file old;
if %found(file);
// process record
chain (key:fields) file new;
if %found(file);
if new <> old;
// record changed between reads - reprocess
else;
// apply changes to new
update record new;
endif;
else;
// record deleted between reads - reprocess
endif;
endif;

关于sql - 调用程序的锁定问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69517422/

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