数据库 '/data/data/msv_database.db' 的连接池无法提供连接。活动连接数为0,空闲连接数为1,可用连接数为0。

13
我遇到了以下错误:在整个应用程序中只使用一个数据库对象,但从两个不同的线程访问数据库时出现了问题。
数据库连接池'/data/data/msv_database.db'无法向802线程授予连接(当前连接:0个活动的、1个闲置的、0个可用的)。

可能是连接池无法向线程授予连接的重复问题。 - petey
2个回答

11

可能你想在一个正在使用事务的表上执行查询,而这个事务没有结束。尝试在事务的finally块中执行endTransaction()

或者

你正在更新两个表格,而两个不同的事务正在等待另一个释放不同的表格。

或者

可能只是有太多的开放连接,导致数据库或连接池混乱。

无论是以上哪种情况,都可能出现问题。请仔细检查。

更多信息- Connection pool has been unable to grant a connection to thread


0

我希望这与你所面临的问题相关。我在contentProvider中保存了SQLiteOpenHelper。我添加了db.beginTransaction、db.setTransactionSuccessful和db.endTransaction到我的CRUD操作中。但当我从一个loader和一个intentService中调用我的contentProvider时,将它们删除后问题得到解决。很奇怪,许多人提到这些命令对于避免错误很重要。

https://github.com/juanmendez/jm_android_dev/blob/master/12.alarms/06.magazineAppWithAlarm/app/src/main/java/info/juanmendez/android/intentservice/service/provider/crud/MagazineCrud.java


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接