The connection pool for database '/data/data/msv_database.db' has been unable to grant a connection. Connections: 0 active, 1 idle, 0 available

孤者浪人 提交于 2020-05-10 09:05:39

问题


I m getting following error:while accessing database from two different threads using single database object throughout the application

The connection pool for database
'/data/data/msv_database.db' has been unable to grant a connection to thread 802 ( Connections: 0 active, 1 idle, 0 available.


回答1:


Probably you want to select query on a table which is used on a transaction without ended transaction before. Try to execute endTransaction() on finally block of transaction.

OR

You are updating two tables and two different transactions are holding different tables waiting for the other to release.

OR

Simply that there are just too many open connections and the DB or connection pool just gets confused.

Whatever it is, something is probably wrong out of the above. Check carefully.

More - Connection pool has been unable to grant a connection to thread.




回答2:


I hope this is relevant to what you are facing. I am keeping a hold of SQLiteOpenHelper within a contentProvider. I was adding to my CRUD operations db.beginTransaction, db.setTransactionSuccessful, and db.endTransaction. I removed them, and that solved the issue I was having as I was calling my contentProvider from a loader and an intentService. Strange, many have mentioned that these commands are important to avoid the error.

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



来源:https://stackoverflow.com/questions/25563352/the-connection-pool-for-database-data-data-msv-database-db-has-been-unable-to

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!