The error means the connection pool is out of connections. The usual cause is forgetting to close a connection after you use it, like:
var con = new MySqlConnection("Server=YourDB;Database=YourDb;...");
con.Open();
var com = con.CreateCommand();
com.CommandText = "select * from YourTable";
This code forgets to close the connection, so the pool has one less connection. You could fix this by adding:
con.CLose();
at the end. But if the query throws an exception, the Close will be skipped, and you're still down 1 connection.
A much better way is the using statement:
using (var con = new MySqlConnection("Server=YourDB;Database=YourDb;..."))
{
con.Open();
var com = con.CreateCommand();
com.CommandText = "select * from YourTable";
}
You can troubleshoot this easily by adding max pool size at the end of your connection tring, like:
Server=YourDB;Database=YourDbUid=YourUser;Pwd=YourPwd;max pool size=1;
This gives you a pool size of 1, instantly triggering an error condition if you forget to free up your one connection.
No comments:
Post a Comment