我们有一个Oracle数据库,客户帐户表有大约一百万行.多年来,我们已经构建了四个不同的UI(两个在Oracle Forms中,两个在.Net中),所有这些UI都在使用中.我们还有许多后台任务(持久性和预定性).
某些东西偶尔会在帐户表中的一行上持有一个长锁(例如,超过30秒),这会导致其中一个持久性后台任务失败.一旦更新超时,有问题的后台任务就会重新启动.我们在它发生几分钟后发现它,但到那时锁已被释放.
我们有理由相信它可能是一个行为不端的用户界面,但却未能找到"吸烟枪".
我发现了一些列出块的查询,但是当你有两个工作争夺一行时就是这样.我想知道当没有第二个作业试图锁定时哪些行有锁.
我们是11g,但自8i以来一直遇到这个问题.