gpt4 book ai didi

objective-c - sqlite 未关闭的读取事务

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:48:25 25 4
gpt4 key购买 nike

我在 iOS 应用程序中使用 sqlite3,我多次遇到一个非常奇怪的问题次。

我正在使用 WAL,我所有的写入都发生在一个托管线程上,该线程一次只允许 1 个操作,我的读取使用不同的数据库句柄,一切正常。我看到的问题是有时我的读取句柄会进入这种无法读取已提交数据的怪异状态。就像它有一个未提交的读取事务...

我可以成功地写入数据库并将结果导出到我的计算机,在那里我可以看到新写入的结果。但是,我的读取似乎是在较早的时间点访问数据库……就像它们被卡住了一样。如果我关闭应用程序并重新打开它,它们会很好并且会读取新提交的数据,但我想知道我的应用程序是如何卡在这种状态的。

如有任何帮助,我们将不胜感激。提前致谢。

最佳答案

我遇到了完全相同的问题,但在 Debian Lenny(内核 2.6.33)w/SQLite3 3.7.7.1 上。

事实证明,在我删除并重新创建数据库文件后,我有一些进程卡在一些陈旧的数据库文件描述符上。

我通过确保在再次重新创建数据库之前终止所有使用该数据库的进程来修复它。

通过摆脱旧进程,文件句柄也被删除。

关于objective-c - sqlite 未关闭的读取事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com