我们在 oracle 11g 数据库上遇到了关于表锁定的问题。
我们有一个通过 sql*plus 执行的过程,它截断一个表,比如说 table1。我们有时会收到 ORA-00054: resource busy and acquire with NOWAIT error during the procedure at the part of the part of the table is to be truncated. 我们有时会收到 ORA-00054: resource busy and acquire with NOWAIT error during the procedure at the part of the part of the table is to betruncated. 我们有一个位于 tomcat 服务器中的 webapp,当重新启动时(从 tomcat 终止与数据库的会话),该过程可以重新成功执行。在webapp的源代码中没有使用table1,甚至在select中也没有使用,但是table1的很多父表都是。
那么是否有可能对其父表之一的未提交更新导致锁定?如果是这样,关于如何测试它的任何建议?在我们遇到问题时,我已经与 DBA 进行了核对,但他无法获得阻塞过程的会话和导致锁定的语句。