
VB2005、SQLServer2005でWebアプリケーションを開発しています。
Web画面で、あるテーブルからデータを検索する処理をある一定の時間毎に繰り返すような画面があるのですが、時々エラーが発生してしまいます。
エラーの内容は、「トランスポートレベルのエラーが発生しました。(既存の接続はリモートホストに強制的に切断されました)」というエラー内容です。
エラーが発生しない事がほとんどなのですが、時々発生してアラートが上がってしまうため困っています。
ロジック的な問題なのか・ネットワーク的な問題なのか切り分けも出来ない状況です。
何か対応策や同じような(似たような)事例をご存知でしたら教えて下さい。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
コネクションプールの数は、接続文字列内で指定できます。
最大数を超えて要求すると、コネクションタイムアウトの設定時間までは待機し、その後接続エラーになります。コネクションタイムアウトも接続文字列内で指定できます。
http://msdn.microsoft.com/ja-jp/library/system.d …
最大数を越えると接続エラーになるという事は、一定時間毎にコネクションを確立する当アプリケーションの場合、時々エラーが発生するという事に結びつきそうですね。
コネクションプールのクリアを入れた形で様子を見てみようと思います。
たびたびご回答いただきありがとうございます。
No.3
- 回答日時:
>コネクションとSQL実行は共通クラスで行っています。
実装は公開可能でしょうか?
たまに、SqlConnection.ClearAllPools してみるとか(対処法的ですが)。
SQL で言うと、昔 Oracle なんかでは、マイナーな組み込み関数を使うとエラーが出たりしていましたが。。。
---
WHERE 1=1 の件、ProKaseifu さんのご回答に補足しますと、
画面入力等によって追加の条件が発生する場合に、" AND xxx=yyy"
などという文字列を連結していきますので、最初に " WHERE 1=1 " と書いておけば、" AND "句の要否考慮をしなくて良くなる訳です。
この回答への補足
実装の公開はちょっと難しいです。。。すみません。
sqlConnection.ClearAllPoolsは調査している時に、気になったメソッドの1つです。
コネクション情報はPoolされていて、それらを一度すべて空にするというメソッドらしいですね。
コネクションPoolについてあまり詳しくないのですが、Pool出来る数?には限界があるのでしょうか?
もしあった場合、さらにコネクションを確立しようとした場合どのような状態になるのでしょうか?
No.1
- 回答日時:
お力になれるかは分かりませんが、とりあえずセオリーとして、
SqlConnection, SqlCommand, SqlDataAdapter 類は Close, Dispose を確実に行っていますか?
この回答への補足
回答ありがとうございます。
Close、Disposeは見直しを以前に行い、必要な箇所には全て埋め込んでいます。
コネクションとSQL実行は共通クラスで行っています。
ちょっと調査をしていて気になった点があったので追加情報ですが、
当エラーが頻繁に発生しているSQL文に「WHERE 1 = 1」という条件が含まれているのは何か関係あるでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
Outlook.ApplicationをCreateOb...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
【マクロ】エラー【#DIV/0!】が...
-
実行時エラー3001「引数が間違...
-
VB.netでのオートフィルタについて
-
ADODB.Streamを使用してUTF-8を...
-
デバッグ時はOK、デバッグ無し...
-
C言語 mallocのエラーに関する質問
-
実行時エラー -'-2147417848
-
EXCEL/VBAで、自分のPCだけエラ...
-
VB6+SQL サーバー 2000 で 実行...
-
実行時エラー9 インデックスが...
-
VBAでピボットテーブルの作成(...
-
VBA Sortメソッドについて
-
EOFError: EOF when reading a ...
-
なぜエラーになるのでしょうか...
-
実行時エラー48発生時のDLL特定...
-
『実行時エラー 5 プロシージャ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
【マクロ】エラー【#DIV/0!】が...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
実行時エラー48発生時のDLL特定...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー3001「引数が間違...
-
EXCEL/VBAで、自分のPCだけエラ...
-
VB6+SQL サーバー 2000 で 実行...
-
VBAのエラー発生場所をメッセー...
-
ADODB.Streamを使用してUTF-8を...
-
【Excel VBA】マクロをボタンに...
-
OLEDB.NETで接続できない
-
なぜエラーになるのでしょうか...
-
INSERT INTOステートメント構文...
-
Outlook.ApplicationをCreateOb...
おすすめ情報