0

ストアド プロシージャの実行に使用している SqlCommand の CommandTimeout プロパティで問題が発生しています。

    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 秒以上かかることがあるようです。

不思議なことに、今朝、別の失敗メールが自動的に届きました。

「タイムアウトが発生しました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。」

ログをチェックして、「手順の開始」ログと「手順の失敗」ログの間の経過時間を確認しましたが、基本的には 30 秒です。以下の画像は、コマンド実行開始から約30秒後に失敗したことを示しています。

タイムアウト画像

ここで何が起きてるの?私はほとんどの同様の SO の質問と MSDN フォーラムを読み込もうとしましたが、これまでのところ役に立ちませんでした。

4

0 に答える 0