Я отправляю запрос к базе данных (54 машины) в параллельном цикле foreach, но получаю следующую ошибку:
"Истекло время ожидания. Время ожидания истекло до получения соединения из пулаВозможно, это произошло из-за того, что все пулы подключений использовались и был достигнут максимальный размер пула. "
Я пытался увеличить максимальный размер пула, но это не сработало.
Вот мой кодблок:
Parallel.ForEach(_machines, (machine, state) =>
{
var lastSavedShifts =
NervousDataAdapter.GetLastShifts(machine.MachineName,
machine.MachineType.ToString(), lastShiftTimes.Min(),
lastShiftTimes.Max());
}
public List<DateTime> GetLastShifts(string machineName, string machineType,
DateTime startDateTime, DateTime endDateTime)
{
try
{
var resultTable = ExecuteQuery(String.Format("A select query"));
//do something with response
}
}
protected DataTable ExecuteQuery(string query)
{
var sqlConnection = new SqlConnection(ConnectionString);
var sqlDataAdapter = new SqlDataAdapter(query, sqlConnection);
var dataSet = new DataSet();
try
{
sqlDataAdapter.Fill(dataSet);
return dataSet.Tables[0];
}
finally
{
if (sqlConnection.State == ConnectionState.Open)
{
sqlConnection.Close();
}
}
}