Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie lösche ich den ODP.NET-Verbindungspool bei Verbindungsfehlern?

Wenn Sie odac (odp) 11g verwenden können , haben Sie für Ihren Pool die Einstellung Validate Connection. Es kann die Verbindung validieren, bevor Sie sie verwenden.

Die Verbindung validieren -Attribut validiert Verbindungen, die aus dem Pool kommen. Dieses Attribut sollte nur verwendet werden, wenn es unbedingt erforderlich ist, da es einen Roundtrip zur Datenbank bewirkt, um jede Verbindung zu validieren, unmittelbar bevor sie der Anwendung bereitgestellt wird. Wenn ungültige Verbindungen ungewöhnlich sind, können Entwickler ihren eigenen Ereignishandler erstellen, um eine neue Verbindung abzurufen und zu validieren, anstatt das Attribut Validate Connection zu verwenden. Dies bietet im Allgemeinen eine bessere Leistung.

Wenn es nicht gut genug ist, können Sie dieses Dokument von Oracle ausprobieren.

Verbindungspoolverwaltung

Die Verwaltung des ODP.NET-Verbindungspools bietet eine explizite Steuerung des Verbindungspools für ODP.NET-Anwendungen. Anwendungen können Verbindungen in einem Verbindungspool explizit löschen.

Mithilfe der Verbindungspoolverwaltung können Anwendungen Folgendes tun:

Hinweis:Diese APIs werden in einer gespeicherten .NET-Prozedur nicht unterstützt. Löschen Sie Verbindungen aus Verbindungspools mithilfe von ClearPool Methode.

Löschen Sie Verbindungen in allen Verbindungspools in einer Anwendungsdomäne mithilfe von ClearAllPools Methode.

Wenn Verbindungen aus einem Pool gelöscht werden, füllt ODP.NET den Pool erneut mit neuen Verbindungen auf, die mindestens die Anzahl der Verbindungen aufweisen, die durch Min Pool Size in der Verbindungszeichenfolge festgelegt wurde. Neue Verbindungen bedeuten nicht unbedingt, dass der Pool über gültige Verbindungen verfügt. Wenn beispielsweise der Datenbankserver heruntergefahren ist, wenn ClearPool oder ClearAllPools aufgerufen wird, erstellt ODP.NET neue Verbindungen, aber diese Verbindungen sind immer noch ungültig, da sie keine Verbindung zur Datenbank herstellen können, selbst wenn die Datenbank zu einem späteren Zeitpunkt wiederhergestellt wird.

Es wird empfohlen, ClearPool und ClearAllPools nicht aufzurufen, bis die Anwendung gültige Verbindungen zurück zur Datenbank herstellen kann. P>

Vielleicht hilft dir auch dieser Beitrag weiter.

Aktualisieren :Wie von @MPelletier gezeigt, ist der Link für Oracle 12 anders.