2009-08-20 20 views
0

可能性の重複は:
SQL server timeoutSQLサーバーのタイムアウトの問題

こんにちは、私のアプリケーションは、従来のASPで開発が、私はネット上のアプリケーションを移行していてもasp.netを使用しています。 SQLサーバーをデータベースとして使用し、Windowsサーバー2003でホストしています。

問題は、アプリケーションが長時間にわたって完全に正常に動作し続けていて、しばらくしてからSQL Serverがタイムアウトエラーを発生し、リクエストが行われました。 SQLサーバーやIISを再起動しても問題は解決されません。最終的に問題が解決されるたびにサーバーを再起動する必要があります。

何が原因で問題が発生している可能性がありますか?大まかなアイデアを出すために、このサイトはピーク時に約300人が利用しています。

何が原因で問題が発生している可能性がありますか?大まかなアイデアを出すために、このサイトはピーク時に約300人が利用しています。私は確かにどこでも接続を閉じている、各ページの私の終了コードは、接続を閉じます。終了ページの前にエラーが発生すると、expectionハンドラは接続を閉じます。だから私は接続を閉じることは問題ではないと確信しています。そして、私はSQLログを参照している場合、開いている接続はありません。私たちのサーバーには、SQL Server、IIS、iMail(メールサーバー)が1つしかありません。 SQL Serverを再起動した後、問題は解決しませんでした。 Windows Serverを再起動するだけで成功しました。 perfomから、IOの使用率はかなり高いです。提案はありますか?

おかげで、wildanjel

+1

正確な複製:http://stackoverflow.com/questions/1301148/sql-server-timeout –

+0

サーバの再起動からタイムアウトが始まるまでの時間はどれくらいですか? – DmitryK

答えて

0

あなたはSQL 2000/2005/2008を使用していますか?

.NETコードを追加した後にこの問題が発生しましたか?

ASP.NETとSQL Serverで作業を開始したときに私を投げ捨てたことの1つは、使用していたデータレディアを閉じて処分することでした。

0

主なことは、ADO.NETで接続を閉じて破棄することです。あなたの問題の1つの可能性は、それらを使用した後の接続を二分していないことかもしれません。 Classic ASPとは異なり、できるだけ早く接続を開いて、できるだけ早く閉じてください。これを行う最善の方法は、Using C#の構文を使用することです。例:

using (SqlConnection conn = new SqlConnection(Settings.ConnectionString)) 
{ 
    using (SqlCommand cmd = new SqlCommand("dbo.UpdateHits", conn)) 
    { 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.Add(new SqlParameter("@PageID", SqlDbType.Int)).Value = 1; 

     conn.Open(); 
     cmd.ExecuteNonQuery(); 

    } 
} 

[使用]コマンドを使用すると、例外がスローされても確実に接続が閉じられて破棄されます。コマンドオブジェクトと同じです。

0

接続文字列に接続プールを使用していますか?

あなたがそうでない場合はanswerを参照してください。接続を閉じてもポートはまだ4分間使用されているため、ピーク時にポートを使用している可能性があるため、接続プーリングを使用する必要があります。

エラーがトランスポートレベルのエラーである場合です。

関連する問題