Die Online -Bewertung von drei Verbindungspools lautet wie folgt:
C3P0 ist eher ressourcenverbraucher und kann in Bezug auf die Effizienz etwas geringer sein.
In der Praxis gibt es Fehler in DBCP, und in einigen Fällen können viele leere Verbindungen nicht freigegeben werden. Hibernate 3.0 hat seine Unterstützung aufgegeben.
Proxool hat weniger negative Überprüfungen und wird jetzt empfohlen. Außerdem bietet es eine sofortige Überwachung des Status des Verbindungspools, um das Leckagen von Verbindungen zu erleichtern.
Proxool -Verbindungspool
<bean id = "proxool_dataSource"> <Eigenschaft name = "Treiberklasse" value = "oracle.jdbc.driver.oracledriver"/> <Property name = "driver-url" value = "jdbc: oracle: dünn: @LocalHost: 1521/SSID". SQL-Ausführungsanweisung für Test-> <Eigenschaft name = "HousekeepingTestSQL" value = "current_date"/> <! Wenn die Leerlaufverbindung erkannt wird, wird sie sofort recycelt. Die Timeout-Zerstörung stand auf 30 Sekunden)-> <Eigentumsname = "Housekeepingsleeptime" value = "30"/> <!-Maximale Aktivitätszeit (Threads, die dieses Mal überschreiten, werden getötet, die Standardeinstellung beträgt 5 Minuten)-> <Eigenschaftsname = "MaximumActivetime" Value = "300"/> <!-Maximum Anschlusszeit (Defaugt 4 Stunden)-> <Owming-Stunde). <!-Minimale Anzahl von Verbindungen (Standard 2)-> <Eigenschaft name = "minimumConnectionCount" value = "10"/> <!-Maximale Anzahl von Verbindungen (Standard 5)-> <Eigenschaft name = "maximumConnectionCount" value = "30"/> <!-Maximum-Anzahl von Verbindungen zur gleichen Zeit-> <Property name = "actaneousousouSouSouSouSouSouSouSouSouSouSouse".
C3P0 Verbindungspool
<beanid = "dataSource" class = "com.mchange.v2.c3p0.combopooledDataSource" Destroy-method = "Close"> <propertyName = "driverClass" value = "oracle.jdbc.driver.oracledriver"/> <PropertyName = "jdbcurl" value = "JDBC: Oracle: Thin: @LocalHost: 1521/SSID"/> <PropertyName = "Benutzer" value = "user"/> <propertyName = "password" value = "password"/> < <PropertyName = "maxpoolsize" value = "100"/> </bean> <!- Die Konfigurationseigenschaften von C3P0 können durch diese Eigenschaften verschiedene effektive Steuerelemente durchgeführt werden, die an der Datenquelle durchgeführt werden können: ErfassenInkrement: Wenn die Verbindung im Verbindungspool verwendet wird, erstellt C3P0 neue Verbindungen zu einem Zeitpunkt. AcquireretryTeTemptes: Definieren Sie die Anzahl der wiederholten Versuche, nach dem Versäumnis, eine neue Verbindung aus der Datenbank zu erhalten, die Standardeinstellung beträgt 30; AcquireretryDelay: Das Intervall zwischen zwei Verbindungen, Einheits -Millisekunden, der Standardwert ist 1000; AutoCommitonclose: Wenn die Verbindung geschlossen ist, werden alle nicht verbindlichen Vorgänge standardmäßig zurückgerollt. Standard ist falsch; Automatictesttable: C3P0 erstellt eine leere Tabelle mit dem Namen Test und verwendet eine eigene Abfrageanweisung zum Testen. Wenn dieser Parameter definiert ist, wird die Eigenschaft PreferredTestQuery ignoriert. Sie können in dieser Testtabelle nichts tun, es wird für C3P0 -Tests verwendet, standardmäßig Null. BreakAfteracquireFailure: Wenn Sie die Verbindung nicht erhalten, warten alle Threads darauf, dass die Verbindung Ausnahmen abschließt. Die Datenquelle ist jedoch weiterhin gültig und versucht weiterhin, die Verbindung beim nächsten Aufruf von GetConnection () zu erhalten. Wenn die Datenquelle auf TRUE eingestellt ist, erklärt sie, dass sie nach fehlgeschlagenen Versuchen, die Verbindung zu erhalten, getrennt und dauerhaft geschlossen wurde. Standard ist falsch; CheckoutTimeout: Wenn der Verbindungspool aufgebraucht ist, ruft der Client getConnection () auf und wartet auf die Zeit, um die neue Verbindung zu erhalten. Nach der Auszeit wird SQLEXception geworfen. Wenn es auf 0 gesetzt ist, warten Sie auf unbestimmte Zeit. Einheit Millisekunden, Standard ist 0; ConnectionTesterClassName: Testverbindungen Durch Implementieren von ConnectionTester oder QueryConnectionTester muss der Klassenname auf einen vollständig qualifizierten Namen festgelegt werden. Der Standard ist com.mchange.v2.c3p0.impl.DefaultConnectionTester; IdleConnectionTestPeriod: Wie viele Sekunden dauert es, bis die Leerlaufverbindungen in allen Verbindungspools überprüft werden. Der Standardwert ist 0, um anzuzeigen, dass sie nicht überprüft wird. InitialPoolSize: Die Anzahl der während der Initialisierung erstellten Verbindungen sollte zwischen Minpoolsize und Maxpoolsize bewertet werden. Der Standard ist 3; Maxidletime: Maximale Leerlaufzeit, Verbindungen, die die Leerlaufzeit überschreiten, werden verworfen. Wenn es 0 oder negativ ist, wird es niemals verworfen. Standard ist 0; Maxpoolsize: Die maximale Anzahl der im Verbindungspool aufbewahrten Verbindungen. Der Standard ist 15; MaxStatements: Der Standardparameter von JDBC, der zur Steuerung der Anzahl der in der Datenquelle geladenen Vorbereitungsstatendien verwendet wird. Aber weil die Precache -Anweisung eher zu einer einzelnen Verbindung als zu dem gesamten Verbindungspool gehört. Das Festlegen dieses Parameters erfordert daher viele Faktoren. Wenn sowohl MaxStatements als auch MaxstatementsPerConnection 0 sind, wird der Cache geschlossen. Standard ist 0; MaxStatementSperConnection: Die maximale Anzahl zwischengespeicherter Aussagen, die eine einzelne Verbindung im Verbindungspool hat. Standard ist 0; NumhelperThreads: C3P0 wird asynchron betrieben, und langsame JDBC -Operationen werden durch den Hilfsprozess abgeschlossen. Die Erweiterung dieser Vorgänge kann die Leistung effektiv verbessern und mehrere Vorgänge werden gleichzeitig über mehrere Threads ausgeführt. Standard ist 3; PreferredTestQuery: Definiert die Testanweisung, dass alle Verbindungstests durchgeführt werden. Dieser Parameter kann die Testgeschwindigkeit bei Verwendung von Verbindungstests erheblich verbessern. Die getestete Tabelle muss zum Zeitpunkt der anfänglichen Datenquelle vorhanden sein. Standard ist null; Propertycycle: Die maximale Anzahl von Sekunden bis zum Warten, bevor der Benutzer die Systemkonfigurationsparameter modifiziert. Der Standard ist 300; TestConnectionOneCheckout: Bitte verwenden Sie es nur bei Bedarf aufgrund des hohen Leistungsverbrauchs. Wenn er auf TRUE eingestellt ist, wird seine Gültigkeit bei jeder Anschlussübermittlung überprüft. Es wird empfohlen, IdleConnectionTestPeriod oder automaticTesttable zu verwenden, um die Leistung von Verbindungstests zu verbessern. Standard ist falsch; TestConnectionOneCheckin: Wenn auf True gesetzt, wird die Gültigkeit der Verbindung beim Erhalten der Verbindung überprüft. Standard ist falsch. ->
DBCP -Verbindungspool
<beanid = "dbcp_dataSource" class = "org.apache.commons.dbcp.basicdataSource"> <propertyname = "driverClassname" value = "oracle.jdbc.driver.oracledriver"> </property> <propertyname="url"value="jdbc:oracle:thin:@localhost:1521/ssid"></property> <propertyname="username"value="user"></property> <propertyname="password"value="password"></property> <propertyname="initialSize"value="3"></property> <PropertyName = "MaxActive" value = "50"> </Property> <PropertyName = "MaxActive" value = "50"> </property> <propertyName = "maxidle" value = "20"> </property> <PropertyName = "minidle" value = "5"> </Property> </PropertyName = MAXWAID "MAXWAID" MAXWAID "MAXWAID" MAXWAID "MAXWAID. Beschreibung InitialSize: Anfangszahl der Verbindungen beim Initialisieren von Verbindungspool MaxActive: Maximaler Wert des Verbindungspool