首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sqlite未关闭的读事务

sqlite未关闭的读事务
EN

Stack Overflow用户
提问于 2012-09-29 06:00:55
回答 1查看 170关注 0票数 2

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

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

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

任何帮助都将不胜感激。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-11-20 08:11:44

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

事实证明,在我删除并重新创建数据库文件后,一些进程挂起了一些过时的DB文件描述符。

我修复了它,确保所有使用数据库的进程在重新创建数据库之前都被杀死了。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12647936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档