数据库'/data/data/msv_database.db'的连接池无法授予连接。连接:0有效,1空闲,0可用

时间:2014-08-29 07:14:58

标签: android android-sqlite

我遇到以下错误:在整个应用程序中使用单个数据库对象从两个不同的线程访问数据库

数据库的连接池
'/data/data/msv_database.db'无法授予与线程802的连接( 连接:0有效,1空闲,0可用。

2 个答案:

答案 0 :(得分:7)

可能您希望在以前没有结束事务的事务上使用的表上选择查询。尝试在finally块事务上执行endTransaction()

OR

您正在更新两个表,并且两个不同的事务正在等待另一个表发布。

OR

只是有太多的开放连接,而数据库或连接池只会让人感到困惑。

无论是什么,上述内容可能都是错误的。仔细检查。

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

答案 1 :(得分:0)

我希望这与你所面对的相关。我在contentProvider中保留了SQLiteOpenHelper。我正在添加我的CRUD操作db.beginTransaction,db.setTransactionSuccessful和db.endTransaction。我删除了它们,这解决了我遇到的问题,因为我从一个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