PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie verwalte ich DB-Verbindungen auf dem Server?

Aufrechterhaltung einer Connection Für immer öffnen ist eine sehr schlechte Idee. Es hat keine endlose Lebensdauer, Ihre Anwendung kann abstürzen, wenn die DB die Verbindung abbricht und sie schließt. Best Practice ist der Erwerb von und Connection schließen , Statement und ResultSet in der kürzesten möglicher Spielraum, um Ressourcenlecks und potenzielle Anwendungsabstürze zu vermeiden, die durch Lecks und Zeitüberschreitungen verursacht werden.

Da das Verbinden der DB eine kostspielige Aufgabe ist, sollten Sie die Verwendung eines Verbindungspools in Betracht ziehen, um die Verbindungsleistung zu verbessern. Ein anständiger Anwendungsserver/Servletcontainer bietet normalerweise bereits eine Verbindungspoolfunktion in Form einer JNDI-DataSource . Einzelheiten zur Erstellung finden Sie in der Dokumentation. Im Fall von beispielsweise Tomcat finden Sie es hier.

Selbst wenn Sie einen Verbindungspool verwenden, müssen Sie immer noch den richtigen JDBC-Code schreiben:erwerben Sie and Schließen Sie alle Ressourcen in kürzester Zeit. Der Verbindungspool kümmert sich seinerseits darum, die Verbindung tatsächlich zu schließen oder sie einfach für die weitere Wiederverwendung an den Pool zurückzugeben.

Möglicherweise erhalten Sie weitere Einblicke in diesen Artikel, wie Sie die JDBC-Grundlagen richtig ausführen. Als ganz andere Alternative lernen Sie EJB und JPA kennen. Es wird alle JDBC-Boilerplates für Sie in Einzeiler abstrahieren.

Hoffe das hilft.

Siehe auch:

  • Ist es sicher, eine statische java.sql.Connection-Instanz in einem Multithread-System zu verwenden?
  • Verwende ich JDBC Connection Pooling?
  • Wie soll ich eine Verbindung zur JDBC-Datenbank/Datenquelle in einer Servlet-basierten Anwendung herstellen?
  • Wann ist es notwendig oder zweckmäßig, Spring oder EJB3 oder alle zusammen zu verwenden?