Ich hatte den Verdacht, dass eine Datenbankverbindung in einer unserer Anwendungen nicht immer geschlossen ist. Ich ging, um den Code zu sehen, und ich habe eine Klasse DataProvider
gefunden, die SqlConnection
Objekt hat. Die Verbindung wird im Konstruktor dieser Klasse geöffnet und in ihrer Dispose
Methode geschlossen (beurteile das nicht, ich weiß, dass das Behalten einer offenen Verbindung böse ist, es ist einfach nicht mein Code und es ist sowieso nicht der Punkt der Frage). Die Dispose
Verfahren werden wie folgt durchgeführt:Schließen einer Datenbankverbindung in Dispose-Methode ist richtig?
protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
if (_conn != null)
_conn.Close();
}
_disposed = true;
}
}
Die Frage ist:
Ist es garantiert immer, dass die Verbindung geschlossen ist?
Ist dieser Code richtig?
Ich denke, es sollte genannt werden - bin ich richtig und könnte es sich auswirken, die Verbindung nicht zu schließen (wahrscheinlich nicht)?
Wenn Sie einen Verdacht haben, bestätigen Sie mit Hilfe der Leistungsindikatoren. – RichardOD
Ein zu überprüfender Schlüsselwert ist NumberOfPooledConnections. – RichardOD