2009-08-19 21 views
1

私のアプリケーションは古典的なaspで開発されていますが、asp.netを使用しています。私は.NETでアプリケーションを移行しています。 SQLサーバーをデータベースとして使用し、Windowsサーバー2003でホストしています。SQLサーバーのタイムアウト

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

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

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

おかげで、非常に少なくとも

答えて

1

適切にクリーンアップしていない管理されていないリソースがあるようです。そのリソースが何であるかを正確に知るための十分な情報がないため、私たちができるのは推測だけです。

私の最初の本能はデータベース接続ですが、再起動するSQL Serverを再起動すると、それが修正されるはずです。次のリストにはファイルハンドルとスレッドがありますので、何かマルチスレッドの作業や見たいものになる余分なファイルioを実行する場合には、 ASP.Netでは、usingステートメント(ディレクティブではない)があなたの友人であることを覚えておいてください。

2

は、あなたは、データベースへの接続を閉じていますか?また、接続文字列はどのように見えますか?接続プールを使用していますか?

編集:あなたのコメントを見ました。保留中のトランザクションがコミットされていますか?

0

まず、あなたがあなたのDBAに話をする必要があります...彼らはオープン接続の数、テーブルロック、実行速度の遅いクエリを確認することができ、など

私の腸の反応はあなたを閉じていないことですまたは接続プールが低すぎます。

0

定期的にデータベースのメンテナンスを行っていますか?索引の再構築/最適化、統計の再計算(これを自動的に行うように設定されていない場合)トランザクションログなどのサイズを確認してください。

関連する問題