Beste JDBC-Datenquellen-Bean-Klasse

8

Ich sehe, dass einige Leute org.apache.commons.dbcp.BasicDataSource verwenden, während andere Konfigurationen com.mchange.v2.c3p0.ComboPooledDataSource haben.

Spring hat eine eigene Eigenschaft: org.springframework.jdbc.datasource.DriverManagerDataSource

Es gibt wahrscheinlich noch mehr. Aber welcher ist der Beste? Ich habe eine dreistufige JPA / Hibernate-Anwendung, die Verbindungspooling benötigt, aber es sieht so aus, dass alle dies unterstützen ....

    
HDave 06.06.2010, 21:53
quelle

1 Antwort

12
  

Spring hat seine eigene Adresse: org.springframework.jdbc.datasource.DriverManagerDataSource

Die Klasse org.springframework.jdbc.datasource.DriverManagerDataSource Implementiert die DataSource -Schnittstelle aber ist NICHT ein Verbindungspool, es ist nur eine praktische Klasse, die während der Entwicklung anstelle eines realen Pools verwendet werden kann (aber sie erstellt bei jedem Anruf eine neue Verbindung). Ich würde vorschlagen, seine javadoc zu lesen .

  

Ich habe eine dreistufige JPA / Hibernate-Anwendung, die Verbindungspooling benötigt, aber es sieht so aus, als ob alle dies unterstützen ....

Wenn Sie einen Anwendungsserver verwenden, bevorzugen Sie den Verbindungspool Ihres Anwendungsservers.

Wenn nicht, dann sind DBCP, C3P0 die gebräuchlichsten Lösungen. Ich würde C3P0 verwenden (das jetzt statt mit DBCP tatsächlich mit Hibernate gebündelt ist). Ich sah einige Deadlock-Probleme mit DBPC unter hoher Last, nicht mit C3P0, daher bevorzuge ich C3P0.

Es mag erwähnenswert sein, dass DBCP nach sehr langer Zeit der Inaktivität (während C3P0 inaktiv ist) erst kürzlich wiederbelebt wurde und daher besser werden könnte.

Zu den anderen Spielern gehören Proxool und BoneCP ( ein neuer Wettbewerber). Das später sieht interessant aus, aber ich habe keine praktische Erfahrung damit.

In jedem Fall sollten Sie in der Regel Robustheitstests durchführen, bevor Sie in die Produktion gehen.

Siehe auch

Pascal Thivent 06.06.2010, 22:31
quelle