SQlite3锁定窗口

时间:2012-01-24 20:12:56

标签: python sqlite database-locking

我在使用SQLite 3.7 for python应用程序时注意到锁定(OperationalError)。我正在使用SQLalchemy进行ORM。这个问题发生在Windows上。我在与应用程序相同的机器上使用DB。

它似乎在ubuntu上工作正常。想知道可能是什么问题?一些旧版本的sqlite有没有修复这个问题?

一些想法:

- 针对SQLlite的Windows NFS存在锁定问题,但由于我使用本地文件系统,因此这种可能性被丢弃。

  • 计算机上运行的防病毒软件是否会导致锁定,因为它会在更新时读取文件。 永远不会释放数据库上的锁(我等了5分钟,同时通过命令行访问数据库)。这让我想到一些悬挂过程是否持续锁定或过程被杀死。但似乎并非如此,因为访问数据库的唯一进程(python bottle服务器)正在运行。它在单个进程Apache下运行。

1 个答案:

答案 0 :(得分:1)

http://www.sqlite.org/lockingv3.html记录了SQLite发生锁定的方式 - 阅读它。在Windows上,您可以使用Sysinternal的进程监视器来监视谁正在访问文件,这将使罪魁祸首归零。