kittu
kittu

Reputation: 265

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

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.

Upvotes: 13

Views: 12809

Answers (2)

Juan Mendez Escobar
Juan Mendez Escobar

Reputation: 2757

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

Upvotes: 0

sjain
sjain

Reputation: 23344

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.

Upvotes: 11

Related Questions