• 締切済み

トランスポートレベルのエラー

VB2005、SQLServer2005でWebアプリケーションを開発しています。 Web画面で、あるテーブルからデータを検索する処理をある一定の時間毎に繰り返すような画面があるのですが、時々エラーが発生してしまいます。 エラーの内容は、「トランスポートレベルのエラーが発生しました。(既存の接続はリモートホストに強制的に切断されました)」というエラー内容です。 エラーが発生しない事がほとんどなのですが、時々発生してアラートが上がってしまうため困っています。 ロジック的な問題なのか・ネットワーク的な問題なのか切り分けも出来ない状況です。 何か対応策や同じような(似たような)事例をご存知でしたら教えて下さい。 よろしくお願いします。

  • bekio
  • お礼率41% (5/12)

みんなの回答

noname#259269
noname#259269
回答No.4

コネクションプールの数は、接続文字列内で指定できます。 最大数を超えて要求すると、コネクションタイムアウトの設定時間までは待機し、その後接続エラーになります。コネクションタイムアウトも接続文字列内で指定できます。 http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlconnection.connectionstring(VS.80).aspx

bekio
質問者

お礼

最大数を越えると接続エラーになるという事は、一定時間毎にコネクションを確立する当アプリケーションの場合、時々エラーが発生するという事に結びつきそうですね。 コネクションプールのクリアを入れた形で様子を見てみようと思います。 たびたびご回答いただきありがとうございます。

noname#259269
noname#259269
回答No.3

>コネクションとSQL実行は共通クラスで行っています。 実装は公開可能でしょうか? たまに、SqlConnection.ClearAllPools してみるとか(対処法的ですが)。 SQL で言うと、昔 Oracle なんかでは、マイナーな組み込み関数を使うとエラーが出たりしていましたが。。。 --- WHERE 1=1 の件、ProKaseifu さんのご回答に補足しますと、 画面入力等によって追加の条件が発生する場合に、" AND xxx=yyy" などという文字列を連結していきますので、最初に " WHERE 1=1 " と書いておけば、" AND "句の要否考慮をしなくて良くなる訳です。

bekio
質問者

補足

実装の公開はちょっと難しいです。。。すみません。 sqlConnection.ClearAllPoolsは調査している時に、気になったメソッドの1つです。 コネクション情報はPoolされていて、それらを一度すべて空にするというメソッドらしいですね。 コネクションPoolについてあまり詳しくないのですが、Pool出来る数?には限界があるのでしょうか? もしあった場合、さらにコネクションを確立しようとした場合どのような状態になるのでしょうか?

回答No.2

where 1 = 1 は動的SQL作成するときによくやる手法ですね。

noname#259269
noname#259269
回答No.1

お力になれるかは分かりませんが、とりあえずセオリーとして、 SqlConnection, SqlCommand, SqlDataAdapter 類は Close, Dispose を確実に行っていますか?

bekio
質問者

補足

回答ありがとうございます。 Close、Disposeは見直しを以前に行い、必要な箇所には全て埋め込んでいます。 コネクションとSQL実行は共通クラスで行っています。 ちょっと調査をしていて気になった点があったので追加情報ですが、 当エラーが頻繁に発生しているSQL文に「WHERE 1 = 1」という条件が含まれているのは何か関係あるでしょうか?

関連するQ&A

  • ネットワークタイムエラーが頻繁に出る。パソコンが終了できない。

    ネットワークタイムエラー 日付&時刻コントロールパネルはOpen transportを開けません。コンピュータまたはシステムソフトウェアに付属のCDからOpen transportソフトウェアを再インストールして下さい。 というアラートが頻繁に出ます。 ネットワークタイムサーバーは使っていません。 チェックをつけたり外したりしましたが症状は変わりません またこのアラートが出るようになってから、 システムを終了しようとすると 1つのアプリケーションが動作中なので終了できませんとでます。 画面上アプリケーションは何にも動いてないです。 eMac OSは9.22を使ってます。 対処法お解りの方、教えて下さい おねがいしますm(_ _)m

    • ベストアンサー
    • Mac
  • 【リモートデスクトップの切断】エラーメッセージ

    【リモートデスクトップの切断】エラーメッセージ 【リモートデスクトップの切断】エラーメッセージ リモートアクセスをしようとすると以下のようなエラーメッセージが表示され,タイムアウトにされてしまいます。 リモートデスクトップの切断 このコンピュータはリモートコンピュータに接続できません。 これらは2台のコンピュータは、割り当てえられた時間内に接続できませんでした。接続を再試行してください。問題が解決しない場合は、ネットワーク管理者またはテクニカルサポートに問い合わせてください。 というメッセージが表れてしまいました。 原因は何だと思いますか? また、対処法は何をしたらよろしいですか? 教えてください。宜しくお願い致します。

  • 2ちゃんねるで・・・意味がわからないです

    書き込みのエラーで ■変なホスト規制中! 変なホストです。 が出た場合の対処法として 「このメッセージが表示される場合、あなたの利用しているリモートホストは、 他のサービスと共用していると考えられます。WEBブラウジングに専用のホストを使うか、 あるいは他のサービス用のリモートホスト名称をつけないようにしてください」 がありますがリモートホストってなんでしょうか? あとWEBブラウジングってなんでしょうか?

  • SQLServer2000へのリモート接続ができない。

    aspで作成したWEBアプリから、他マシンのSQLServerへ接続を行なっています。あるSQLServerへは接続できるのですが、異なるマシンのSQLServerへは接続できない等、現状、マシン毎のSQLServer接続可否が異なっています。 接続できない場合、下記エラーを表示します。 Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server への接続を開けませんでした) このエラー内容を元に、WEB上で検索を行い、 http://www.microsoft.com/japan/sql/ssj/tips/01.mspx 、また、プログラム側の接続部分を DataSource=データソース → DataSource= tcp: データソース 等、試してみましたが、問題は解決しませんでした。 解決方法をご存知の方、ご教授宜しくお願い致します。 また、こうしたらどうなの?っていうようなご意見も お待ちしています。 ・・・そういえば、udlファイルによる対象データベース接続へのは 成功しています。

  • Explorerのランタイムエラーにつて

    インターネットでWebページの移動中時々ランタイムエラーが発生します表示に従い「はい」「はい」で進むのですが、途中で分からなくなるので処理を中止しそのままにしているのですが問題はないのでしょうか

  • ODBC 一般ネットワークエラー

    OS:WindowsXP SQLServerOS:WindowsNTServer4.0 SQLServer6.5 お世話になります。 今まで自PCからODBC接続でSQLServerのデータを見ていたのですが、 ある日気付いたら下記エラーが発生し、まったくつながらなく なっていました。 (エラー内容) 接続できませんでした SQL State:’08001’ SQL Server エラー : 11 [Microsoft][ODBCSQL Server Drivers][DBMSSOCN]一般ネットワークエラーです。 ネットワークのマニュアルを調べてください。 接続できませんでした SQL State:’01000’ SQL Server エラー : 10061 ConnectionOpen(connect()) 現在SQLServerは3台あるのですが、全てつなぐことができません。 他PCからはつながるので、自PCに問題があると思われるのですが、 原因がわかりません。 何かヒントでもいいので、どなたかご教授願います。 よろしくお願いします。

  • ファイルのダウンドードでエラー

    ファイルのダウンドードでエラー あるサイトを参考にファイルをダウンドードするプログラムを組んだのですが、 「リモート サーバーがエラーを返しました: (401) 許可されていません 」 のエラーが出てしまいます。 調べてはいますが、どう直せばいいのか分からない状況です。 どなたか教えてください。 以下ソース(C#です) ------------------------------------------------------------------ System.Net.WebClient wc = new System.Net.WebClient(); string uri = "http://192.168.0.xx/TestService/Excel/pick.xls"; string file = "pick.xls"; wc.DownloadFile(uri,file); wc.Dispose(); ------------------------------------------------------------------ エラー内容 ------------------------------------------------------------------ リモート サーバーがエラーを返しました: (401) 許可されていません 説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。 例外の詳細: System.Net.WebException: リモート サーバーがエラーを返しました: (401) 許可されていません ------------------------------------------------------------------

  • ネットワークエラーについて

    Eメールの送受信を行うと、「ネットワークエラーが発生しました」という画面になってしまいます。 今までは、2,3回繰り返せば直ったのですが、今回は何度やっても直りません。 試しに、ソフトウェアの更新を行ったところ、こっちも「ソフトウェア更新に失敗しました 通信が切断されました」という画面になってしまいます。 どうすればよいですか??

  • SQLServer認証とWIndows認証

    お世話になります。 現在リモートのSQLServerにVB.NETのアプリからADO.NETで接続しようとしていますが、Windows認証の接続ができなく困っております。 sqlcmdコマンド使いSQLServer認証で確認すると以下の方法であっさりできました。 sqlcmd -S DBのホスト名 -U ユーザID -P パスワード -d DB名 しかし、Windows認証は「sqlcmd -S Bのホスト名 -E」を実行するとGuestユーザではログインできるのですが、他ユーザではログインできません。シクライアントPCとDBサーバ間の信頼関係ができていないのが原因のように思われますが、クライアント及びDBサーバのWindowsのログインユーザ名/パスワードは同じ、ワークグループも同じです。 また、SQLServerのManagement Studioを用いてユーザは作成してあります。 エラーは以下となります。 ----------------------------------------------------------- サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server への接続を開けませんでした) ----------------------------------------------------------- お手数お掛けしますが、宜しくお願いします。

  • dreamweaver CS3 FTPエラー

         winVISTAでDreamweaverCS3の体験版をDLしたのですが FTPサーバの設定でエラーが出てしまいます。サーバはlolipopです。 エラーメッセージ 「ホストに接続出来ません」「リモートホストが見つかりません」 lolipopで「DreamweaverMX」の設定方法があったのですが解決出来ませんでした。 http://www.lolipop.jp/?mode=manual&state=hp&state2=w_dw 上記のページ、中段にある 「FTP接続設定」→「リモートホストに接続ボタンをクリックします」 ここで先に述べたエラーメッセージが出てしまいます。 /現在の設定 webサーバのホスト名またはFTPアドレスを指定して下さい ・「ftp○○○.lolipop.jp」 FTPログイン名を指定して下さい ・「lolipop.jp-○○●●●●●」 FTPパスワードを指定して下さい ・「○○○○○」 上記の様に設定しており、元々使用しているGOLIVEcsでの設定と変わりありません。 試してみた事は webサーバのホスト名またはFTPアドレスを指定して下さい ・「ftp○○○.lolipop.jp」 この部分を「ftp://ftp○○○.lolipop.jp/」に変更したぐらいです。 どなたか原因はおわかりになりますでしょうか? 宜しくお願い致します。