Я использую Npgsqlconnection
внутри Parallel.ForEach
, перебирая встроенные запросы в список.Parallel.ForEach с помощью NpgsqlConnection
Когда я достигаю число вокруг 1400+ я получаю исключение, говоря
'FATAL: 53300: остальные слоты подключения зарезервированы для подключения суперпользователя без репликации.
Я использую
Pooling=true;MinPoolSize=1;MaxPoolSize=1024;ConnectionLifeTime=1
в моем app.config
и con.Close()
, con.ClearPool()
, con.Dispose()
в моем коде.
Parallel.ForEach (запросы, запрос => { использованием (NpgsqlConnection CON = новый NpgsqlConnection (ConfigurationManager.ConnectionStrings [ "PSQL"] ConnectionString)) { con.ClearPool();. ( con.Open);
//int count = 0;
int queryCount = queries.Count;
using (NpgsqlCommand cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.Text;
//cmd.CommandTimeout = 0;
cmd.CommandText = query;
cmd.ExecuteNonQuery();
count += 1;
this.label1.Invoke(new MethodInvoker(delegate { this.label1.Text = String.Format("Processing...\n{0} of {1}.\n{2}% completed.", count, queryCount, Math.Round(Decimal.Divide(count, queryCount) * 100, 2)); }));
}
con.Close();
//con.Dispose();
//con.ClearPool();
}
});
Не могли бы вы отправить код, вызывающий проблему? Без этого вам трудно помочь. – svick