0

AdoNetAppenderを使用してSQLServer2005データベーステーブルに書き込みます。エントリがすぐに書き込まれるように、bufferSizeを1に設定しています。

私のDBAは、log4netがデータベース接続を開いたままにしていることを懸念しています。現在、データベースへの接続は最大50ですが、ログエントリは22のみです。場合によっては、ログイン時間が異なる同じクライアントからの複数の接続があります。

接続プールが機能していないか、コードでリリースしていないリソースがあるように思われます。これをどのようにトラブルシューティングする必要がありますか?

4

1 に答える 1

1

SQL Server Profiler は、これらすべてを表示します。コンソール アプリを作成し、いくつかのステートメントをログに記録して、接続が開いたり閉じたりしていることを確認します。

余談ですが、バッファ サイズを 1 に設定しないことをお勧めします。かなりのサイズのアプリ (NHibernate を見てみましょう) の場合、1 回の操作で 100 以上のステートメントを簡単にログに記録できます (ログ レベルによって異なります)。これは、リクエストごとに 100 の個別のデータベース接続に相当し、サーバーを簡単にひざまずかせることができます。

バッファ サイズを 5 または 10 にすると、驚くほど機能します。確かに、いくつかのログ メッセージを失うリスクがありますが、ほとんどの場合、それらは最終的にフラッシュされます (電力損失またはハードウェア障害を保存します)。

于 2008-10-27T18:05:56.373 に答える