2012-04-05 30 views
11

背景:アプリケーションをmssqlからnpgsql v2.0.11.92に移動しています。 アプリケーションを実行して数分または数時間後に、私はを取得します。System.Exception:プールから接続を取得中にタイムアウトしますNpgsql:プールから接続を取得中にタイムアウトする

x64プラットフォームのx86環境でlibバージョン2.0.11.92を使用しています。すべての接続は閉じられ、遅くとも最終ブロックに配置されますが、しばらくするとエラーが発生します。したがって、Npgsqlライブラリーの問題になるはずです。

私のアプリケーションでは、数秒ごとにバックグラウンドで多くのクエリが発生しますが、ほとんどの場合、パラレルではなく順番に実行されています。

マイ使用する接続文字列は次のとおりです。 SERVER = mydbserver; MINPOOLSIZE = 3; MaxPoolSize = 15; ConnectionLifeTime = 7; DATABASE =テストDB; UID =ユーザー; PWD =私は漏れを診断しようとしている

を渡しますnpgsqlのpostgres接続。

FYI:Npgsqlライブラリにはすでに最新のバージョン2.0.11.92で修正されたリークの問題がありました。しかし、まだいくつかの問題があると思います。

誰もが現在のライブラリバージョン(npgsql v2.0.11.92)で同様の問題を経験していますか?

+0

この問題がまだ存在しますか?バージョン2.0.14.3を使用していますが、このエラーもあります。 – IvanP

+0

私は同じ問題を抱えています:私のケースでは、私はすべてのコードパスで接続を閉じていないことが判明しました。 – docesam

答えて

10

私は同じ問題を抱えていました。ソリューションは、接続プーリングをオフにすることです。あなたは、接続文字列では、あなたのC#のアプリ

からデータベースに接続する前に、接続文字列に次の操作を行います。

Pooling=false; 
+6

接続プーリングをオフにすることは、正確には解決できません。回避策と呼ぶことにしましょう。 – IvanP

+0

これをオフにしても動作させるには、接続プーリングが機能しない理由を把握する必要があります。 – Cody

+0

なぜソリューションは機能しましたか? –

関連する問題