問題タブ [connection-pooling]
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.
c# - ADO.NET 接続プールと AutoClose = True の影響
設定:
C# で .NET WinForms アプリケーションを作成して、テクニカル サポート担当者が製品の SQL Server 2005 データベースに対して一般的なタスクを簡単に実行できるようにしています。アプリケーションは ADO.NET ( SqlConnection
) を使用してデータベースに接続しています。このアプリケーションを開発する際の懸念の 1 つは、タスク (クエリ) が開始されるたびにデータベースに接続/再接続するオーバーヘッドを最小限に抑えることでした。私の理解では、このオーバーヘッドの主な理由は、データベースにAutoCloseがあるためです。プロパティを「True」に設定します。これを変更したいのですが、残念ながら私の管理下にはありません。また、データベース接続の作成には何らかのオーバーヘッドが伴うことも認識しています。私は、アプリケーションのライフサイクルを通じて単一の接続を維持するアプリケーションの実用的な実装を持っていました (以前に閉じられていない限り)。その後、ADO.NET での接続プールに関する MSDN の記事を偶然見つけました。
記事 (およびその他の質問/回答here、here、およびhere ) を読んだ後、アプリケーションがそのSqlConnection
オブジェクトを適切に破棄した場合でも、ADO.NET 接続プールはデータベースへの接続を維持するようです。接続はプールに保持され、一定期間アイドル状態になるか、切断されるまで再利用できます。SqlConnection
したがって、アプリケーションで単一の接続を維持するという私の作業は不必要であり、必要になるたびに単純に を作成/破棄するよりも確実に危険に思えます。
質問:
"AutoClose" が "true" に設定された SQL Server データベースで ADO.NET 接続プールを使用すると、どのような影響がありますか?
接続プーリングが舞台裏でどのように機能すると信じているかを説明すると、単純化しすぎている可能性があることは承知していますが、それはさておき、私の理解は正確ですか? そうでない場合、どこを修正する必要がありますか?
java - oracle10g休止状態の問題
アプリを起動すると、以下のようなエラーが発生しますが、見逃したことを誰かが詳しく説明できますか?mysqlを使用するとアプリは正常に実行されます。config.xmlファイルの余分なパラメーターを見逃していませんか?
私の設定は次のようになります
sql - SQL Server 2005 インスタンスで接続プールを 100 に設定する方法
SQL Server 2005 インスタンスで接続プールを 100 に設定する方法
mysql - mysql とデータベース プーリングを使用して tomcat をセットアップする方法に関する適切なチュートリアルは何ですか?
Mysql 5 に接続する Tomcat 6 で接続プールを利用する方法について、いくつかの適切な手順を探していましたが、完全なリファレンスはないようです。明確な全体像を得るために、さまざまなチュートリアルをつなぎ合わせるのに苦労しています。
私はTomcatとその構成を扱う初心者です。
tomcat - Apache(Webサーバー)での接続プーリング
Web アプリケーションに接続プールを実装したいと考えています。実装方法を教えてください。
vb.net - VB.net: データベース接続を取得するための Shared メソッドの使用に問題はありますか?
私はデータベース接続を作成して返すユーティリティクラスを持っています:
同時呼び出しが同じ接続を返すリスクはありますか? 接続文字列はプーリングを有効にします。
database - システム設計の問題: 負荷分散された n 層での DB 接続管理
負荷分散された n 層システム用の DB 接続マネージャーを設計するための最良のアプローチについて疑問に思っています。
従来の n 層は次のようになります。
私が見ている負荷分散ソリューションは、次のようになります。
図のように、ビジネス サーバー コンポーネントは複数のインスタンスを介して負荷分散されており、ハードウェア ゲートウェイがそれらの間で負荷を分散しています。
セッション サーバーは、重複してはならない状態を管理するため、おそらく負荷分散アレイの外に配置する必要があります。
これまでの設計に重大なエラーがなければ、DB 接続管理を実装する最良の方法は何ですか?
私はいくつかのオプションを考え出しましたが、私が気付いていない他のオプションがあるかもしれません:
DBServer と他のコンポーネントの間に新しい Broker コンポーネントを導入し、DB 接続を処理させます。
- 利点は、すべての接続を 1 つのポイントから管理できることです。これは非常に便利です。
- 欠点は、システムに「単一障害点」が追加されることです。他のコンポーネントは、何らかの方法で DB に関係するすべての要求に対してそれを通過する必要があり、これもボトルネックになります。
DB 接続管理を BusinessServer および SessionServer コンポーネントに移動し、それぞれが独自の DB 接続を処理できるようにします。
- 利点は、追加の「単一障害点」またはボトルネック コンポーネントがないことです。
- 欠点は、DBServer 自体が提供できるもの以外に、競合やデッドロックの可能性を制御できないことです。
他に何ができますか?
FWIW: テクノロジは .NET ですが、ベンダー固有のスタックは使用されていません (たとえば、WCF、MSMQ などはありません)。