Когда использовать SqlConnection.ClearAllPools () в c #

Я заметил, что мой код содержит ошибкиsqlWrite.ExecuteNonQuery(); после выполнения 200 запросов на вставку за пару секунд. Я всегда думал, чтоusing обеспечит правильное повторное использование ресурсов и не будет необходимости ничего делать. Это первый раз, когда я получаю эту ошибку, и я почти три года имею дело с sql / c #, делая разные вещи.

<code>using (SqlConnection varConnection = Locale.sqlConnectOneTime(Locale.sqlDataConnectionDetails)) 
{
    using (var sqlWrite = new SqlCommand(preparedCommand, varConnection)) 
    {
        sqlWrite.Parameters.AddWithValue("@var_agr_fname", var_agr_fname == "" ? (object) DBNull.Value : var_agr_fname);
        sqlWrite.ExecuteNonQuery();
    }
}


public static SqlConnection sqlConnectOneTime(string varSqlConnectionDetails)
{
    var sqlConnection = new SqlConnection(varSqlConnectionDetails);
    try
    {
        sqlConnection.Open();
    }
    catch
    {
        DialogResult result = MessageBox.Show(new Form {TopMost = true},
                                              "Błąd połączenia z bazą danych. Czy chcesz spróbować nawiązac połączenie ponownie?",
                                              "Błąd połączenia (000001)",
                                              MessageBoxButtons.YesNo,
                                              MessageBoxIcon.Stop);
        if (result == DialogResult.No)
        {
            if (Application.MessageLoop)
            {
                Application.Exit(); // Use this since we are a WinForms app
            }
            else
            {
                Environment.Exit(1); // Use this since we are a console app
            }
        }
        else
        {
            sqlConnection = sqlConnectOneTime(varSqlConnectionDetails);
        }
    }
    return sqlConnection;
}
</code>

Сообщение об ошибке:A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)

Учитывая совет дляэта ошибка Я должен использоватьSqlConnection.ClearAllPools(); чтобы убедиться, что соединения сброшены или отброшены правильно. Таким образом, я могу использовать это, но вопрос в том, где это использовать и когда? Как узнать, будет ли предел превышен? Где предел? на 50/150/200? или я должен использовать это каждый раз в цикле?

Ответы на вопрос(3)

Ваш ответ на вопрос