2012-04-12 53 views
7

接続文字列パラメータの名前とこのブログの投稿の両方がhttp://fxjr.blogspot.co.uk/2010/04/npgsql-connection-pool-explained.html - Npgsqlが接続文字列で設定されたMaxPoolSize値を超えないと思われます。しかし、ドキュメント(http://npgsql.projects.postgresql.org/docs/manual/UserManual.html)では、「接続プールの最大サイズ。プールにこれ以上のものが含まれている場合、プールに返されたときにプールされた接続は破棄されます。デフォルト値:20 "Npgsql接続プールがMaxに達するとどうなります

これは、プールが実際にMaxPoolSizeよりも大きくなり、実際にはNpgsqlが返されるとすぐに積極的にプールから接続を削除するレベルであることを示しています。

私は答えを見つけようとしていますが、MaxPoolSizeに達したときに何が起こるかを正確に知ることができます。誰も知っている?

編集:別の依存関係がそのバージョンまでしかサポートされていないため、Npgsql 2.0.6.0を使用しています。

+0

ソースを見てみませんか? "MaxPoolSize"を検索するのに十分なはずです。 – xanadont

答えて

5

これは、minpoolsizeに関するコピー貼り付けの問題かもしれないと思います。 Npgsqlはmaxpoolsize以上の接続を作成しません。この値に達すると、新しい接続要求が空き状態になるまでキューに入れられます。

どちらの問題は2.0.6でのみ動作しますか?

+0

シスコのフランシスコに感謝します。特定の機能は2.06に依存していませんが、2.0.6に対して構築された現在アップグレード可能な商用データアクセス層があります。私はそこに最新バージョンのnpgsqlを使ってテストを実行しようとするかもしれません。 私たちが行っている変更のためにプーリングがどのように処理されるかは、現在、多くの別々のサイトが単一のサイトに統合されるようにするために重要です。いくつかの小さなアプリケーションプールを1つの大きなプールにまとめる。 – ClearCarbon

+0

OK、2.0.11.93に行ってください。これは、ユーザー・テストに従ってパフォーマンスを30%向上させる接続プーリングについていくつか改良を加えたためです。それがあなたのためにうまくいくかどうか、私に知らせてください。 –

関連する問題