タグ付けされた質問 「connection-pooling」

16
JDBCの接続プールオプション:DBCPとC3P0
Java / JDBCで利用できる最適な接続プールライブラリは何ですか? 私は2つの主要な候補者を検討しています(無料/オープンソース): Apache DBCP- http: //commons.apache.org/dbcp/ C3P0- http: //sourceforge.net/projects/c3p0 私はブログや他のフォーラムでそれらについて多くを読みましたが、決定に達することができませんでした。 これら2つに関連する代替手段はありますか?

12
Node.js WebアプリケーションでMongoDB接続を管理するにはどうすればよいですか?
私は、MongoDBでnode-mongodb-nativeドライバーを使用してWebサイトを作成しています。 接続を管理する方法についていくつか質問があります。 すべてのリクエストに対して1つのMongoDB接続を使用するだけで十分ですか?パフォーマンスの問題はありますか?そうでない場合、アプリケーション全体で使用するグローバル接続をセットアップできますか? そうでない場合、リクエストが到着したときに新しい接続を開き、リクエストを処理したときにそれを閉じるとよいですか?接続を開いたり閉じたりするには費用がかかりますか? グローバル接続プールを使用する必要がありますか?ドライバーにネイティブ接続プールがあると聞きました。それは良い選択ですか? 接続プールを使用する場合、いくつの接続を使用する必要がありますか? 他に気をつけるべきことはありますか?

4
エンティティフレームワークと接続プーリング
最近、.NET 4.0アプリケーションでEntity Framework 4.0の使用を開始しましたが、プールに関連するいくつかのことに興味があります。 私が知っている接続プーリングはADO.NETデータプロバイダーによって管理されています。私の場合は、MS SQLサーバーの場合です。これは、新しいエンティティコンテキスト(ObjectContext)をインスタンス化するときに適用されますnew MyDatabaseModelEntities()か? a)アプリケーションのグローバルエンティティコンテキストを作成する(つまり、1つの静的インスタンス)、またはb)usingブロックを使用して、特定の操作/メソッドごとにエンティティコンテキストを作成および公開することの長所と短所は何ですか。 私が知っておくべき他の推奨事項、ベストプラクティス、または特定のシナリオの一般的なアプローチはありますか?

13
すべて(またはほとんど)のデータベースで機能する効率的なSQLテストクエリまたは検証クエリ
多くのデータベース接続プールライブラリには、SQL接続のアイドル状態をテストする機能があります。たとえば、JDBCプーリングライブラリc3p0にはと呼ばれるプロパティpreferredTestQueryがあり、接続で設定された間隔で実行されます。同様に、Apache Commons DBCPにはがありvalidationQueryます。 私が見たクエリの例の 多くはMySQL 用であり、テストクエリの値として使用することをお勧めします。ただし、このクエリは一部のデータベース(たとえば、HSQLDB、句を必要とする)では機能しません。SELECT 1;SELECT 1FROM 同等に効率的ですが、すべてのSQLデータベースで機能するデータベースに依存しないクエリはありますか? 編集: ない場合(そうであるようです)、さまざまなデータベースプロバイダーで機能する一連のSQLクエリを誰かが提案できますか?私の目的は、データベースプロバイダーの構成に基づいて、使用できるステートメントをプログラムで決定することです。


13
JDBCで接続プールを確立する方法は?
誰かがJDBC接続プールを確立する方法の例やリンクを提供できますか? グーグルを検索すると、これを実行するさまざまな方法がわかります。 最終的にはjava.sql.Connectionオブジェクトを返すコードが必要ですが、開始に問題があります。 更新:プールされた接続の実装 がない、javax.sqlまたはjava.sqlありませんか?これらを使用するのが最善ではないのはなぜですか?

3
プール内のJDBC接続を閉じる
JDBCを使用するための標準コードセクションは... Connection conn = getConnection(...); Statement stmt = conn.conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rset = stmt.executeQuery (sqlQuery); // do stuff with rset rset.close(); stmt.close(); conn.close(); 質問1:接続プールを使用する場合、最後に接続を閉じる必要がありますか?もしそうなら、プールの目的は失われていませんか?そうでない場合、Connectionの特定のインスタンスが解放され、再利用できるようになると、DataSourceはどのようにして知るのでしょうか。私はこれについて少し混乱しています、どんなポインタでも感謝します。 質問2:次の方法は標準に近いものですか?プールから接続を取得する試みのように見え、DataSourceを確立できない場合は、古い形式のDriverManagerを使用します。実行時にどの部分が実行されるのかさえわかりません。上記の質問を繰り返しますが、そのようなメソッドから出てくる接続を閉じる必要がありますか? ありがとう、MS。 synchronized public Connection getConnection (boolean pooledConnection) throws SQLException { if (pooledConnection) { if (ds == null) { try { Context envCtx = (Context) …

3
DBCP-さまざまなデータベースのvalidationQuery
DBCPプールを使用しており、testOnBorrowとtestOnReturnを使用して、接続がまだ有効かどうかをテストしたいと思います。 残念ながら、プロパティvalidationQueryを設定して機能させる必要があります。 質問:validationQueryにはどのような値が必要ですか? 私は知っています:validationQueryは少なくとも1つの行を返すSQLSELECTステートメントでなければなりません。 問題は、さまざまなデータベース(DB2、Oracle、hsqldb)を使用していることです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.