【发布时间】:2015-08-05 15:50:53
【问题描述】:
我面临一个锁表溢出问题,下面是它显示给我的错误,一旦显示它就会使代码崩溃。
锁表溢出,在服务器上增加-L (915)
我检查了错误号,它说我们需要在服务器启动之前修改 -L 值,默认设置为 500。但是,除非我是公司的数据库管理员,否则我不会想象我被授予更改该值的特权。 我试图做的是用所有链接的表记录(超过 25 个表链接到每个成员记录)清除大约 11k 的成员记录,同时将每个表备份到单独的文件中。所以大致它在进入成员for循环时实现了'EXCLUSIVE-LOCK',如下所示,
for each member
EXCLUSIVE-LOCK:
/*
Then find each linked records in a order.
Extract them.
Delete them.
*/
Finally it extracts the member.
Delete member.
end.
当它达到一定数量的成员记录时,程序崩溃了。所以我不得不像批量运行它,
for each member
EXCLUSIVE-LOCK:
Increment a member count.
When count = 1k
then RETURN.
/*
Then find each linked records in a order.
Extract them.
Delete them.
*/
Finally it extracts the member.
Delete member.
end.
因此,实际上我最终运行相同的代码超过 11 次才能完成工作。我希望有人遇到过这个问题,如果你想分享一个长期的解决方案而不是我的临时解决方案,我会提供很大的帮助。
【问题讨论】:
标签: locking progress-4gl openedge