2008-10-27 99 views
0

我正在使用AdoNetAppender寫入SQL Server 2005數據庫表。我將bufferSize設置爲1,以便立即寫入條目。log4net打開數據庫連接

我的DBA擔心log4net將使其數據庫連接處於打開狀態。我們今天有50個到數據庫的連接,但只有22個日誌條目。在幾種情況下,來自同一客戶端的多個連接具有不同的登錄時間。

這聽起來對我來說,連接池不起作用,或者有沒有我沒有在代碼中發佈的資源。我應該如何解決這個問題?

回答

1

SQL Server Profiler會告訴你所有這些。創建一個控制檯應用程序,記錄幾條語句,並確認連接正在打開和關閉。作爲一個說明,我建議不要將你的緩衝區大小設置爲1.對於一個相當大的應用程序(讓我們看看NHibernate),它可以輕鬆記錄100個或更多的語句,用於單個操作(取決於日誌水平)。這相當於每個請求100個獨立的數據庫連接,並且可以輕鬆地使服務器癱瘓。

緩衝區大小爲5或10會產生奇蹟。確保您有丟失一些日誌消息的風險,但在大多數情況下,它們最終會被刷新(節省掉電或硬件故障)。

相關問題