SqlCommand.ComandTimeout не влияет - PullRequest
       26

SqlCommand.ComandTimeout не влияет

0 голосов
/ 12 сентября 2018

Я столкнулся с проблемой со свойством CommandTimeout моего SqlCommand, которое я использую для выполнения хранимой процедуры.

    using (SqlCommand command = new SqlCommand("_UpdateWorldeaseIDs", SqlC_SSuite))
    {
        command.CommandType = CommandType.StoredProcedure;
        command.CommandTimeout = 600;
        int rowsAffected = command.ExecuteNonQuery();
        logger.log($": Rows affected = {rowsAffected}.", Log4NetExtension.Level.Info);
    }

Код довольно прост. Код, используемый для не указания CommandTimeout, поэтому он будет использовать значение по умолчанию 30 секунд. Похоже, что эта процедура (не всегда) может занять больше 30 секунд, поэтому мы значительно увеличили ее до 600 секунд, предполагая, что не было бы способа, который не был бы достаточно длинным.

Странно, что этим утром мы получили еще одно электронное письмо с сообщением о сбое, которое сообщило

"Истекло время ожидания. Время ожидания истекло до завершения операция или сервер не отвечает. "

Я проверил наш журнал, чтобы узнать, сколько времени прошло между журналами «Начало процедуры» и «Ошибка процедуры», и в основном это 30 секунд. На рисунке ниже показано, что примерно через 30 секунд после начала выполнения команды произошел сбой.

Timeout image

Если у кого-нибудь есть какие-либо советы относительно того, что может происходить, я был бы очень признателен. Я пытался прочитать большинство подобных SO вопросов и форумов MSDN, но пока безрезультатно.

Заранее спасибо.

...