12

背景: アプリケーションを mssql から npgsql v2.0.11.92 に移行しています。アプリケーションを数分または数時間実行した後、System.Exception: Timeout while gets a connection from the pool が発生します

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

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

私が使用した接続文字列は次のとおりです。SERVER=mydbserver;MINPOOLSIZE=3;MaxPoolSize=15;ConnectionLifeTime=7;DATABASE=Test DB;UID=user;PWD=pass

npgsql でリークしている postgres 接続を診断しようとしています。

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

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

4

1 に答える 1

11

私も同じ問題を抱えていました。解決策は、接続プーリングを無効にすることです。C# アプリからデータベースに接続する前に、接続文字列でこれを行います。

接続文字列で:

Pooling=false;
于 2012-04-25T06:23:59.987 に答える