問題タブ [sqlconnection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - SqlCommand.Dispose は接続を閉じますか?
このアプローチを効率的に使用できますか?
私の懸念は: SqlCommand の Dispose メソッド (using ブロックを終了するときに呼び出される) は、基になる SqlConnection オブジェクトを閉じるかどうかです。
.net - コア .NET ランタイムのブレークポイント?
SqlConnection クラスを内部で構築して使用するサードパーティ ライブラリがあります。クラスから継承することはできますが、大量のオーバーロードがあり、これまでのところ正しいものを見つけることができませんでした。私が望むのは、使用されている接続文字列にパラメーターを追加することです。
.NET ライブラリ コア自体にブレークポイントを設定する方法はありますか? 具体的には、SqlConnection クラスのコンストラクターで、スタック トレースを見て、実際に構築されている場所を確認できますか?
それを除けば、これを行うことができる他の方法はありますか?
具体的には、接続を確認するときにサーバー上でアプリケーションをより簡単に識別できるように、アプリケーション名パラメーターを追加する必要があります。
編集:まあ、もっと助けが必要なようです。シンボル サーバー サポートに関連するすべてを有効にしたと思いますが、構成したディレクトリが .pdb ファイルを含むディレクトリでいっぱいになっていることに気付きました。それでも、SqlConnection クラスの実際のソースを取得して利用可能にすることはできません。
これを成功させるための明確なガイドはありますか?
.net - Windows サービスで開いている SQL 接続の数を確認するにはどうすればよいですか?
「接続リーク」を示すいくつかのエラーが表示されます。つまり、接続が適切に閉じられておらず、プールが不足しています。では、これをインストルメント化して、特定の時間に開いている正確な数を確認するにはどうすればよいでしょうか?
c# - 例外がスローされたときに SQL 接続が確実に閉じられるようにする適切な方法は何ですか?
私はよくこのようなパターンを使用します。これでいいのか、それともここで適用していないベストプラクティスがあるのか 疑問に思っています.
具体的には、私は疑問に思っています。例外がスローされた場合、finally ブロックにあるコードは、接続が適切に閉じられるようにするのに十分ですか?
.net - データベースを開かずにSqlServer接続をテストする方法
タイトルはほとんどそれをすべて言います。SqlConnectionを作成してから、データベースを開かずにその接続を確認したいのですが、その時点では、どこに接続するのかまだわかりません。それは可能ですか?SqlConnectionクラスには、Databaseプロパティで設定したデータベースを開こうとする「Open」メンバーがあります。設定しなかった場合、SqlServerはマスターデータベースで試行します。接続しようとしているユーザー(MACHINE \ ASPNET)は、マスターデータベースではなく、一部のデータベース(まだわかりません)にアクセスできます。
よろしく、セバ
php - .Net は PHP のように巧妙な接続管理を行いますか?
ASP.NET ページの読み込み中に、ページに含まれる複数のコントロール内で複数の System.Data.SqlClient.SqlConnections を開いたり閉じたりしています。代わりに、接続の「プール」を作成し、接続チェックを開くときに、接続文字列がプール内の開いている接続の文字列と一致するかどうかを確認し、その接続を返すことをお勧めします。ページの読み込み時間に違いがあることを期待していましたが、変化は見られませんでした。PHP では、そのページ要求で既に使用されている接続文字列を使用して新しい接続を開こうとすると、新しい接続を開こうとせず、代わりに既存の開いている接続を返すことを知っています。これは .NET にも当てはまりますか?
.net - .net SqlCommand.ExecuteReaderは接続を閉じますか?
この文では:
例外が発生した場合、接続を閉じますか?
.net-3.5 - とにかく SqlClient.SqlDataReader Close() メソッドを呼び出すのはなぜですか?
SqlClient.SqlDataReader は .NET 管理オブジェクトですか? Close() メソッドを明示的に呼び出して開いている接続を閉じる必要があるのはなぜですか? そのようなオブジェクトのスコープを使い果たした場合、これは自動的に閉じられるべきではありませんか? とにかくガベージコレクターはそれを片付けるべきではありませんか?
ここでのベストプラクティスは何かを理解するのを手伝ってください。
ここで関連する質問を見ましたが、Web アプリケーションで発生した問題をさらに説明しています。問題は、接続が不足していたことです。詳細なエラーは次のとおりです。
これを修正するには、すべての SQLDataReader オブジェクトを明示的に閉じる必要がありました。
.NET Framework 3.5 を使用しています
c# - using {}内であっても.net SqlConnectionが閉じられない
助けてください!
背景情報
SQL Server 2005 データベースにアクセスする WPF アプリケーションがあります。データベースは、アプリケーションが実行されているマシン上でローカルに実行されています。
Linq DataContext を使用するあらゆる場所で using { } ステートメントを使用し、DataContext コンストラクターに戻る前に、開かれ、それを使用して SqlCommand が実行された SqlConnection オブジェクトを返す関数の結果を渡します。
getConnection は次のようになります (読みやすくするために関数から「綿毛」を取り除きましたが、不足している追加機能はありません)。
アプリケーションが WPF であることが、私が抱えている問題に関係しているとは思いません。
私が抱えている問題
Sql Server Management studio で SqlConnection が DataContext と共に破棄されているにもかかわらず、次のように開いている接続の負荷をまだ見ることができます。
最終的に接続プールが使い果たされ、アプリケーションは続行できなくなります。
したがって、どういうわけか SQLCommand を実行して Context_Info を設定することは、DataContext が破棄されたときに接続が破棄されないことを意味しているとしか言えません。
接続が使用されている DataContext が破棄されたときに、接続が閉じられて破棄されるのを止める明らかなことを誰でも見つけることができますか?
sql - 閉じていない接続を見つける方法は? タイムアウトになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません
以前にこの問題が発生したことがありますが、基本的に接続が十分に速く閉じられていないことがわかりました (接続を開いたままにしてガベージコレクションを待つことは、実際にはベストプラクティスではありません)。
今、私は再びそれを取得していますが、接続を開いたままにしている場所を見つけることができないようです. その時までに、データベースが古い接続をクリアしたというエラーが表示されるため、最後のコマンドでロックされたすべての接続が表示されません (前回この問題が発生したときに非常に役立ちました)。
問題のあるコードを見つけることができるように、何が起こっているのかを追跡するためにコードまたはデータベースをどのように計測できるか考えていますか?