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

Ist Verbindungspooling ein Muss in ODP.NET?

Der einzige Grund für das Pooling ist die Leistung. Wenn also Ihr nächtlicher Job innerhalb seines Zeitfensters ausgeführt wird, ist nichts falsch an dem, was Sie tun, zumal es Ihre Implementierung einfach hält, da Sie sich keine Gedanken über tote Verbindungen machen müssen.

Das heißt, ich würde dies nicht zur Standardpraxis machen. Ich schreibe selten Code, um veraltete Verbindungen zu handhaben, und selbst dann ist es eine einfache Fabrik. Die Frage beginnt damit, warum Sie überhaupt veraltete Verbindungen haben? In der Regel bezieht sich dies entweder auf eine Firewall oder einen DBA-Job, der Leerlaufverbindungen beendet, die beide für ein Anwendungskonto geändert oder gelockert werden sollten. Auch in diesem Fall können Sie Folgendes tun:

  • Geben Sie Min Pool Size=0 in Ihrer Verbindungszeichenfolge an. Dadurch kann ODP.net selbst die letzte Verbindung Ihrer App bereinigen, sodass Ihre App vollständig getrennt werden kann, wenn sie lange genug inaktiv ist.
  • Geben Sie in Ihrer Verbindungszeichenfolge eine höhere Decr-Pool-Größe an. Dadurch können mehr inaktive Verbindungen alle 3 Minuten von ODP.net geschlossen werden.
  • Sie könnten versuchen, Validate Connection =true zu setzen - ich vermute, dass es weniger Overhead gibt, die Verbindung zu validieren, als wenn Sie eine öffnen.

Weitere Informationen finden Sie hier:http:// docs.oracle.com/cd/E15296_01/doc.111/e15167/featConnecting.htm#i1006228