L'évaluation en ligne de trois pools de connexion est la suivante:
C3P0 est plus consommateur de ressources et peut être un peu plus faible en termes d'efficacité.
Il y a des bogues dans DBCP dans la pratique, et dans certains cas, de nombreuses connexions vides ne peuvent pas être libérées. Hibernate 3.0 a abandonné son soutien.
Proxool a moins d'examens négatifs et est recommandé maintenant, et il fournit également une surveillance instantanée de l'état du pool de connexions pour faciliter les fuites de connexion.
Pool de connexion Proxool
<bean id = "proxool_datasource"> <propriété name = "driver-class" value = "oracle.jdbc.driver.oracledriver" /> <propriété name = "Driver-Url" value = "jdbc: oracle: mince: @localhost: 1521 / ssid" /> <propriété name = "user" value = "user" /> <propwed = "waysways =" user = "user =" user "/> <wawewn-nom =" Paysways = "Value =" Value = "user =" user "/>> <prewayed =" Value = "Password =" Value = "user =" user "/>> <woftway-name =" Value = "Value =" Value = "user =" User "/> <woftayed =" Value = "Value =" User " <! - Instruction d'exécution SQL pour le test -> <propriété name = "HousekeepingTestSQL" value = "select current_date" /> <! - Le nombre minimum de connexions inactifs maintenue (par défaut 2) -> <propriété name = "prototypeCount" value = "2" /> <! - Proxool détecte automatiquement l'intervalle de temps (milliseconse) de chaque état de connexion. Si la connexion inactive est détectée, elle sera recyclée immédiatement. La destruction du délai d'expiration est par défaut à 30 secondes) -> <propriété name = "HousekeeingSleEptime" value = "30" /> <! - Temps d'activité maximum (les threads dépassant cette fois seront tués, la valeur par défaut est de 5 minutes) -> <propriété Name = "MaximumActiveTime" Value = "300" /> <! - Temps de connexion maximum (30 heures) -> <propriété Nom = " <! - Nombre minimum de connexions (par défaut 2) -> <propriété name = "minimumConnectionCount" value = "10" /> <! - Nombre maximum de connexions (par défaut 5) -> <propriété name = "maximumConnectionCount" Value = "30" /> <! - Nombre maximum de connexions en même temps -> </ beenfy> "SimultanBuildThrotle"
Pool de connexion C3P0
<anceid = "dataSource" class = "com.mchange.v2.c3p0.combopooleddatasource" destrement-méthod = "close"> <propriétéName = "driverclass" value = "oracle.jdbc.driver.oracledriver" /> <propriétéName = "jdbcurl" value = "jdbc: oracle: mince: @localhost: 1521 / ssid" /> <propriétéName = "user" value = "user" /> <propriétéName = "passway" value = "passway" /> <propriéténame = "initialPoolSize" <propriétéName = "maxpoolSize" value = "100" /> </ank> <! - Propriétés de configuration de C3P0, via ces propriétés, divers contrôles efficaces peuvent être effectués sur la source de données: AcquireIncrement: Lorsque la connexion dans le pool de connexions est utilisée, C3P0 crée de nouvelles connexions à la fois; acquérirAtryTATempts: Définissez le nombre de tentatives répétées à obtenir après l'incapacité à obtenir une nouvelle connexion à partir de la base de données, la valeur par défaut est de 30; acquireetetrydelay: l'intervalle entre deux connexions, unité de millisecondes, la valeur par défaut est de 1000; AutoComMitOnClose: Lorsque la connexion est fermée, toutes les opérations non engagées sont annulées par défaut. La valeur par défaut est fausse; AutomaticTestTable: C3P0 créera un tableau vide nommé Test et utilisera sa propre instruction de requête pour les tests. Si ce paramètre est défini, la propriété PreferredTestQuery sera ignorée. Vous ne pouvez rien faire sur ce tableau de test, il sera utilisé pour les tests C3P0, par défaut NULL; BreakAfterAcQuireFailure: Le fait de ne pas obtenir la connexion provoquera tous les threads en attente pour obtenir la connexion pour lancer des exceptions. Cependant, la source de données est toujours valide et continue d'essayer d'obtenir la connexion la prochaine fois que vous appelez getConnection (). Si elle est définie sur true, la source de données déclarera qu'elle a été déconnectée et clôturée en permanence après les tentatives infructueuses pour obtenir la connexion. La valeur par défaut est fausse; CheckoutTimeout: lorsque le pool de connexions est utilisé, le client appelle GetConnection () et attend le temps d'obtenir la nouvelle connexion. Après le temps mort, Sqlexception sera lancé. S'il est réglé sur 0, il attendra indéfiniment. Unité de millisecondes, la valeur par défaut est 0; ConnectionTesterSclassName: Test Connections en implémentant ConnectionTester ou QueryConnectionTter, le nom de classe doit être défini sur un nom entièrement qualifié. La valeur par défaut est com.mchange.v2.c3p0.impl.defaultConnectionTter; IdLeConnectionTestPeriod: combien de secondes faut-il pour vérifier les connexions inactives dans tous les pools de connexion, la valeur par défaut est 0 pour indiquer qu'elle n'est pas vérifiée; InitialPoolSize: Le nombre de connexions créées lors de l'initialisation doit être évaluée entre MinpoolSize et MaxPoolSize. La valeur par défaut est 3; MaxidleTime: Temps inactive maximum, les connexions qui dépassent le temps d'inactivité seront rejetées. S'il est 0 ou négatif, il ne sera jamais jeté. La valeur par défaut est 0; MaxPoolSize: le nombre maximum de connexions conservées dans le pool de connexions. La valeur par défaut est 15; MAXSTATS: Le paramètre standard de JDBC, utilisé pour contrôler le nombre de stades préparés chargés dans la source de données. Mais parce que l'instruction précache appartient à une seule connexion plutôt qu'à l'ensemble du pool de connexion. Par conséquent, la définition de ce paramètre nécessite de considérer de nombreux facteurs. Si les maxstations maxstades et les maxstatementsPerConnection sont 0, le cache sera fermé. La valeur par défaut est 0; MaxStatementsPerConnection: le nombre maximum d'instructions mises en cache d'une seule connexion dans le pool de connexion. La valeur par défaut est 0; NumHelperThreads: C3P0 est utilisé de manière asynchrone et les opérations de JDBC lentes sont terminées via le processus d'aide. L'extension de ces opérations peut efficacement améliorer les performances et plusieurs opérations sont exécutées simultanément via plusieurs threads. La valeur par défaut est 3; PreferredTestQuery: définit l'instruction de test selon laquelle tous les tests de connexion sont exécutés. Ce paramètre peut améliorer considérablement la vitesse de test lors de l'utilisation de tests de connexion. Le tableau testé doit exister au moment de la source de données initiale. La valeur par défaut est nul; PropertyCycle: le nombre maximum de secondes à attendre avant que l'utilisateur ne modifie les paramètres de configuration du système. La valeur par défaut est 300; TestConnectionOnCheckout: Veuillez l'utiliser uniquement en cas de besoin en raison d'une consommation élevée de performances. Si elle est définie sur true, sa validité sera vérifiée à chaque soumission de connexion. Il est recommandé d'utiliser IdleConnectionTestPeriod ou AutomaticTestable pour améliorer les performances des tests de connexion. La valeur par défaut est fausse; TestConnectionOnCheckin: Si défini sur true, la validité de la connexion sera vérifiée lors de l'obtention de la connexion. La valeur par défaut est fausse. ->
Pool de connexion DBCP
<anceid = "dbcp_datasource" class = "org.apache.commons.dbcp.basicdatasource"> <propriéténame = "driverclassname" value = "oracle.jdbc.driver.oracledriver"> </ property> <propriétéName = "url" value = "jdbc: oracle: mince: @localhost: 1521 / ssid"> </ propriété> <propriétéName = "username" value = "user"> </ propriété> <propriéténame = "mot de passe" value = "mot de passe"> </ propriété> <propriéténame = "initialSize" value = "3"> </prewet> <propriétéName = "maxactive" value = "50"> </ propriété> <propriéténame = "maxactive" value = "50"> </ propriété> <propriéténame = "maxidle" value = "20"> </ propriété> <propriéténame = "MINIDLE" value = "5"> </ propriété> <preperName = "MAXWAIT" Value = "10"> </ Property> InitialSize: Nombre initial de connexions lors de l'initialisation du pool de connexions Maxactive: Valeur maximale du pool de connexions Maxidle: valeur inactive maximale Minidle: valeur inactive minimum Maxwait: Connexion maximale Temps d'attente ->>