Python 有时可以';t使用Django删除Oracle数据库行

Python 有时可以';t使用Django删除Oracle数据库行,python,django,oracle,Python,Django,Oracle,我有一个单元测试,它包含以下代码行 Site.objects.get(name="UnitTest").delete() 到目前为止,这一切都很顺利。然而,这一声明目前仍悬而未决。它将永远坐在那里试图执行删除。如果我只是说 print Site.objects.get(name="UnitTest") 然后它工作了,所以我知道它可以检索站点。没有其他程序连接到Oracle,所以这不像是有两个开发人员以某种方式互相攻击。我假设某种表锁还没有被释放 除了关闭Oracle数据库并将其恢复,我如何释

我有一个单元测试,它包含以下代码行

Site.objects.get(name="UnitTest").delete()
到目前为止,这一切都很顺利。然而,这一声明目前仍悬而未决。它将永远坐在那里试图执行删除。如果我只是说

print Site.objects.get(name="UnitTest")
然后它工作了,所以我知道它可以检索站点。没有其他程序连接到Oracle,所以这不像是有两个开发人员以某种方式互相攻击。我假设某种表锁还没有被释放

除了关闭Oracle数据库并将其恢复,我如何释放该锁或任何阻止我的东西?我不想求助于数据库关闭,因为在将来,这可能会破坏其他一些开发人员

编辑:贾斯汀建议我看看
DBA_拦截器
DBA_WAITERS
表。不幸的是,我根本不懂这些表格,我也不知道我在找什么。以下是与我相关的信息:

DBA_WAITERS
表有182个锁类型为“DML”的条目。
DBA_BLOCKERS
表有14个条目,它们的会话ID都对应于我们的应用程序代码使用的用户名

由于这需要得到解决,我将重新启动web服务器,但是如果这个问题再次出现,我仍然希望您能给我一些建议。说到Oracle管理,我是一个真正的新手,在过去我主要使用MySQL,所以我完全不熟悉这个元素


编辑#2:事实证明,不管我怎么想,另一个程序员确实在和我同时访问数据库。那么,未来检测这种情况的最佳方法是什么?也许我应该关闭我的程序,然后查询
DBA_-WAITERS
DBA_-BLOCKERS
表以确保它们是空的。

从单独的会话中,您可以查询DBA_-BLOCKERS和DBA_-WAITERS数据字典表并发布结果吗?这将告诉您您的会话是否被其他会话持有的锁阻止,以及其他哪个会话持有该锁。

您能否从单独的会话中查询DBA_BLOCKERS和DBA_WAITERS数据字典表并发布结果?这将告诉您您的会话是否被其他会话持有的锁阻止,以及其他哪个会话持有该锁。

我们没有锁。我们有一个webapp,在同一台机器上运行自己的专用Oracle服务器。我们团队中没有人真正了解Oracle,但我们必须使用它,我们没有。我们有一个webapp,在同一台机器上运行自己的专用Oracle服务器。我们团队中没有人真正了解Oracle,但我们必须使用它。