Frage

Ich bin mit dem AdoNetAppender zu einer SQL Server 2005 Datenbank-Tabelle zu schreiben. Ich habe buffer auf 1 gesetzt, so dass Einträge sofort geschrieben werden.

ist mein DBA besorgt darüber, dass log4net verlässt seine Datenbankverbindung geöffnet. Wir haben ~ 50 Verbindungen zur Datenbank heute aber nur 22 Log-Einträge. In mehreren Fällen gibt es mehrere Verbindungen vom gleichen Client mit verschiedenen Login-Zeiten.

Es klingt für mich, dass das Verbindungsspooling nicht funktioniert oder dass es eine Ressource, die ich nicht in Code Freigabe bin. Wie soll ich das beheben?

War es hilfreich?

Lösung

SQL Server Profiler zeigt Ihnen all dies. Erstellen Sie eine Konsole-Anwendung, melden Sie sich ein paar Anweisungen, und stellen Sie sicher, dass die Anschlüsse öffnen und schließen.

Als Randbemerkung, würde ich empfehlen, nicht die Puffergröße zu 1. Für eine Anwendung von signifikanter Größe einstellen (die bei NHibernate aussehen lassen) es leicht 100 oder mehr Anweisungen für einen einzelnen Betrieb anmelden kann (abhängig von der Protokollebene ). Dies entspricht 100 separaten Datenbankverbindungen pro Anfrage und kann leicht einen Server in die Knie zwingen.

Eine Puffergröße von 5 oder 10 wird Wunder wirken. Sicher, dass Sie das Risiko des Verlustes einiger Log-Meldungen haben, aber in den meisten Fällen werden sie schließlich (sparen Stromausfall oder Hardwarefehler) gespült werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top