La evaluación en línea de tres grupos de conexión es la siguiente:
C3P0 es más consumidor de recursos y puede ser un poco más bajo en términos de eficiencia.
Hay errores en DBCP en la práctica, y en algunos casos, no se pueden liberar muchas conexiones vacías. Hibernate 3.0 ha renunciado a su apoyo.
Proxool tiene menos revisiones negativas y se recomienda ahora, y también proporciona un monitoreo instantáneo del estado del grupo de conexión para facilitar la fuga de conexión.
Grupo de conexión proxol
<bean id = "proxool_dataSource"> <propiedad name = "controlador-class" value = "oracle.jdbc.driver.oracledriver"/> <propiedad name-"controlador-url" valor = "jdbc: oracle: delgado: @LocalHost: 1521/ssid"/> <name de propiedad = "user" user = "user"/> <name de propiedad = "contraseña" contraseña "" Declaración de ejecución de SQL para Test-> <Property Name = "HousekeepingTestSql" value = "Seleccione Current_Date"/> <!-El número mínimo de conexiones inactivas mantenidas (predeterminadas 2)-> <propiedad de propiedad = "PrototyPeCount" valor = "2"/> <!-Proxool detecta automáticamente el intervalo de tiempo (milisecondrados) de cada estado de conexión. Si se detecta la conexión inactiva, se reciclará inmediatamente. La destrucción del tiempo de espera predeterminada a 30 segundos)-> <Property name = "HousePingeStime" value = "30"/> <!-Tiempo de actividad máxima (los subprocesos que exceden este tiempo se matarán, el valor predeterminado es 5 minutos)-> <Property name = "MaximumActiveTime" Valor = "300"/> <!-Tiempo de conexión (predeterminado 4 horas)-> <Nombre de propiedad = "Máximo de la propiedad. <
Grupo de conexión C3P0
<beanId = "dataSource" class = "com.mchange.v2.c3p0.comBopooledDataSource" destruye-method = "Close"> <Propertyname = "DriverClass" valor = "Oracle.jdbc.driver.oracledRiver"/> <PropertyNyname = "JDBURL" Valor = "JDBC: oracle: Thin: Thin: Thin: Thin: Thin: Fin: @LocalHOST: 151/Ssid"/ssid "/ssid" <Propertyname = "user" value = "user"/> <propertyyame = "contraseña" value = "contraseña"/> <propertyname = "inicialPoolSize" value = "10"/> <Propertyname = "minpoolSize" value = "10"/> <PropertyName = "maxpoolSize" value = "100"/> </ behor> <!- C3p0 de configuración Propiedades, Propiedades, las propiedades efectivas, pueden ser efectuadas, pueden ser efectuadas. En la fuente de datos: adquirircrement: cuando se usa la conexión en el grupo de conexión, C3P0 crea nuevas conexiones a la vez; AdquireretryAttempts: Defina el número de intentos repetidos de obtener después de la falta de obtención de una nueva conexión de la base de datos, el valor predeterminado es 30; adquirectrydelay: el intervalo entre dos conexiones, unitaria milisegundos, el valor predeterminado es 1000; AutocommitOnclose: cuando la conexión está cerrada, todas las operaciones no comprometidas se retiran de forma predeterminada. El valor predeterminado es falso; AutomatictStTable: C3P0 creará una tabla vacía llamada Prueba y usará su propia declaración de consulta para la prueba. Si se define este parámetro, la propiedad preferedTestQuery se ignorará. No puede hacer nada en esta tabla de pruebas, se utilizará para las pruebas C3P0, predeterminadas a NULL; BreakferacquireFailure: la falla para obtener la conexión hará que todos los subprocesos esperen para que la conexión arroje excepciones. Sin embargo, la fuente de datos aún es válida y continúa intentando obtener la conexión la próxima vez que llame a getConnection (). Si se establece en True, la fuente de datos declarará que se ha desconectado y cerrado permanentemente después de los intentos fallidos de obtener la conexión. El valor predeterminado es falso; CheckOutTimeOut: cuando se usa el grupo de conexión, el cliente llama a getConnection () y espera el tiempo para obtener la nueva conexión. Después del tiempo de espera, se lanzará SQLException. Si se establece en 0, esperará indefinidamente. Unidad MilliseConds, el valor predeterminado es 0; ConnectionTestClassName: Conexiones de prueba mediante la implementación de ConnectionTester o QueryConnectionTester, el nombre de la clase debe establecerse en un nombre totalmente calificado. El valor predeterminado es com.mchange.v2.c3p0.impl.defaultConnectionTester; IdleconnectionTestperiod: ¿Cuántos segundos se necesitan para verificar las conexiones inactivas en todos los grupos de conexión, el valor predeterminado es 0 para indicar que no está marcado; InitialPoolSize: el número de conexiones creadas durante la inicialización debe valorarse entre MinpoolSize y MaxpoolSize. El valor predeterminado es 3; Maxidletime: tiempo de inactividad máximo, las conexiones que exceden el tiempo de inactividad se descartarán. Si es 0 o negativo, nunca se descartará. El valor predeterminado es 0; MaxpoolSize: el número máximo de conexiones retenidas en el grupo de conexión. El valor predeterminado es 15; Maxstatements: el parámetro estándar de JDBC, utilizado para controlar el número de estacaciones preparadas cargadas en la fuente de datos. Pero porque la declaración Precache pertenece a una sola conexión en lugar de todo el grupo de conexión. Por lo tanto, establecer este parámetro requiere considerar muchos factores. Si tanto MaxStatements como MaxStatementsPerConnection son 0, el caché se cerrará. El valor predeterminado es 0; MaxStatementsPerConnection: el número máximo de declaraciones almacenadas en caché que tiene una sola conexión en el grupo de conexión. El valor predeterminado es 0; NumhelperThreads: C3P0 se opera asincrónicamente, y las operaciones JDBC lentas se completan a través del proceso de ayuda. Extender estas operaciones puede mejorar efectivamente el rendimiento y múltiples operaciones se ejecutan simultáneamente a través de múltiples hilos. El valor predeterminado es 3; PreferedTestQuery: define la declaración de prueba de que todas las pruebas de conexión se ejecutan. Este parámetro puede mejorar significativamente la velocidad de prueba al usar pruebas de conexión. La tabla probada debe existir en el momento de la fuente de datos inicial. El valor predeterminado es nulo; PropertyCycle: el número máximo de segundos para esperar antes de que el usuario modifique los parámetros de configuración del sistema. El valor predeterminado es 300; TestConnectionSenCheckout: solo úselo cuando sea necesario debido al consumo de alto rendimiento. Si se establece en True, su validez se verificará en cada envío de conexión. Se recomienda utilizar idleconnectionTestperiod o AutomatictStTable para mejorar el rendimiento de las pruebas de conexión. El valor predeterminado es falso; testConnectionSoncheckin: si se establece en verdadero, la validez de la conexión se verificará al obtener la conexión. El valor predeterminado es falso. ->
Grupo de conexión DBCP
<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> <pertheryname = "contraseña" valor = "contraseña"> </propiedad> <propiedad de property = "inicial" valor = "3"> </propiedad> <Propertyname = "maxactive" value = "50"> </propiety> <propertyName = "maxactive" value = "50"> </propiety> <propertyname = "maxidle" value = "20"> </propial> <proppertaryame = "minidle" value = "5"> </propity> <Propertyname = "maxwait" value = "10"> </propiedad> </nauble> Atributo Descripción InitialSize: Número inicial de conexiones Al inicializar el grupo de conexión Maxactive: Valor máximo del grupo de conexión Maxidle: Valor de inactividad máximo Minidle: Valor de inactividad mínimo MaxWait: Conexión máxima Tiempo de espera de establecimiento ->