Tengo problemas con la configuración de c3p0. Publiqué una pregunta la semana pasada: C3P0 Configurations! Where and How?, pero no recibí respuesta. Se agradece cualquier ayuda.Mejor configuración de c3p0
Respuesta
La mejor configuración es configurar JPA para usar el entorno contenedor para obtener DataSource.
Esto permite que el contenedor proporcione la agrupación de la conexión en lugar de configurarlo directamente en su proyecto JPA.
No indica con qué contenedor está trabajando. Casi siempre uso c3p0 con aplicaciones autónomas, como aplicaciones de servidor o escritorio Java SE. También lo uso con Spring framework.
Cuando se utiliza un contenedor como Servlet (Tomcat/Jetty) o Application Server (como Glashfish o JBoss AS), estos ya proporcionan una implementación del colector de conexión DataSource que normalmente no es c3p0 pero proporciona una función equivalente.
Nunca he intentado configurar un colector de conexiones dentro de un proyecto JPA porque esto significa editar la configuración para personalizarla para cada entorno en el que necesita ejecutarse. Esto es un dolor de cabeza así que es mejor que la parte JPA reciba el DataSource para usar durante bootstrap.
Gracias por su respuesta. Estoy usando hibernate3.0, c0p3-0.9.1 y Tomcat. ¿Tiene alguna muestra para su estrategia para configurar el grupo de conexiones? Es muy importante evitar que MySQL rompa las conexiones inactivas después de 8 horas, si tus actividades pasadas lo ayudan, será bienvenido. –
Incluso si MySQL rompe las conexiones inactivas después de 8 horas, c3p0 se puede configurar para probar siempre la conexión antes de su uso, así como para seguir probando cuando está inactiva. ¿Buscó StackOverflow para esa información? http://stackoverflow.com/questions/10526313/zombie-connections-to-mysql-using-c3p0-with-tomcat (hay muchas otras referencias, debe comenzar por decirle a Tomcat que no use C3P0 y luego al configurar el params según lo necesite para su despliegue de WAR, luego cambie su proyecto de JPA para usar la búsqueda JNDI). –
Sé que la conexión de prueba puede ser útil y tengo configuraciones c3p0, pero no estoy seguro de que estas configuraciones sean verdaderas y funcionen. Por favor, eche un vistazo a mi última pregunta stackoverflow.com/questions/12446266/c3p0-configurations-where-and-how –
Esta es una configuración que estoy usando que mantiene los recursos al mínimo. Por supuesto que querrá adaptar su aplicación para utilizar los recursos que necesita ...
Referencia: http://www.mchange.com/projects/c3p0/index.html
testConnectionOnCheckin
valida la conexión cuando se devuelve a la piscina.testConnectionOnCheckOut
, aunque aseguraría conexiones activas antes del uso, sería demasiado costoso de hacer.idleConnectionTestPeriod
establece un límite de cuánto tiempo una conexión permanecerá inactiva antes de probarla. Sin preferredTestQuery, el valor predeterminado esDatabaseMetaData.getTables()
, que es independiente de la base de datos, y aunque es una llamada relativamente cara, probablemente sea adecuada para una base de datos relativamente pequeña. Si está paranoico con el rendimiento, utilice una consulta específica para su base de datos (es decir,preferredTestQuery="SELECT 1"
)maxIdleTimeExcessConnections
devolverá el connectionCount aminPoolSize
después de un aumento en la actividad.
La configuración siguiente configura poolsize entre 3-20. Las conexiones inactivas se vuelven a probar cada 5 minutos para mantenerlas activas. Debido a idleConnectionTestPeriod
, esto solo mantendrá viva la cantidad mínima de conexiones. Si hay más de 3 conexiones en la marca de 4 minutos, se eliminan esas conexiones liberando recursos al mínimo.
El uso de maxIdleTimeExcessConnections
y idleConnectionTestPeriod
niega la necesidad de maxIdleTime
<Context docBase="myapp" path="/myapp" reloadable="true">
<Resource description="My DB Datasource" name="jdbc/mydb"
auth="Container" factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
user="myuser" password="******"
minPoolSize="3"
maxPoolSize="20"
acquireIncrement="1"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://localhost:3306/mydb"
testConnectionOnCheckin="true"
idleConnectionTestPeriod="300"
maxIdleTimeExcessConnections="240"
/>
</Context>
Gracias por su respuesta, Domenic. Redirige la referencia que señalaste y soy consciente del comportamiento de las propiedades de c3p0, pero en mi proyecto, creo, estas propiedades, la configuración en mi otra publicación no hace nada porque no están en perfecto estado. y necesitan otras propiedades o se deben establecer en otro archivo de configuración. –
@Domenic: Tengo el mismo problema, no puedo crear una nueva conexión. Aquí están mis todos los detalles. Siento que puedes resolver un problema en mi c3p0. http://stackoverflow.com/questions/38994849/unable-to-get-jdbc-connection-even-pool-shows-only-few-connections-are -used –
- 1. Configuración de resorte de C3P0 con Hibernate?
- 2. c3p0 Connection Checkin
- 3. es c3p0 obsoleto?
- 4. Hibernate 4 - configurando C3P0
- 5. El uso de c3p0.idle_test_period.
- 6. Bloqueo de pedidos en C3p0
- 7. C3P0 ¡Configuraciones! ¿Dónde y cómo?
- 8. ¿debo activar la agrupación de declaraciones c3p0?
- 9. Hibernate, C3P0, Mysql - Broken Pipe
- 10. Reproducir com.mysql.jdbc.exceptions.jdbc4.CommunicationsException con una configuración de Spring, Hibernate y C3P0
- 11. La agrupación de conexiones JDBC utilizando C3P0
- 12. c3p0 Connection Pool no cierra las conexiones
- 13. mejor configuración de php/ini clase?
- 14. cómo devolver una conexión en c3p0
- 15. java c3p0: ¿cómo puedo configurar autoreconnect = true?
- 16. ¿Cómo configurar un getConnection() timeout para c3p0?
- 17. Monitor c3p0 (con hibernación y Tomcat) con JConsole
- 18. ¿Cuál es la mejor opción para la biblioteca de agrupación de conexiones de bases de datos? (Problema c3p0)
- 19. ¿cómo desactivo el registro en java c3p0 connection pooling lib?
- 20. C3P0 aparente interbloqueo cuando los hilos están todos vacíos?
- 21. c3p0 acrónimo origen - jdbc nombre del grupo de conexiones
- 22. La mejor forma de inyectar la configuración de la aplicación
- 23. ¿Cuál es actualmente la mejor configuración de HTML/CSS/Javascript?
- 24. Mejor configuración de EC2 para el servidor redis
- 25. ¿Cuáles son los ajustes requeridos de C3P0 para hibernación para evitar interbloqueos?
- 26. Ruby On Rails con Windows Vista - ¿La mejor configuración?
- 27. Hibernate c3p0 grupo de conexiones sin tiempo de espera conexiones inactivas
- 28. cuál es la mejor práctica para agrupar las conexiones Hive JDBC
- 29. Configuración de configuración faltante en el administrador de configuración
- 30. La mejor forma de variables de configuración de almacenamiento de juegos en java
Esta fue una gran pregunta, muy útil. Me habría ahorrado mucho esfuerzo si hubiera más respuestas aquí. ¡Gracias por nada, moderadores! –
Estoy de acuerdo. esta fue una buena pregunta ... algunos moderadores rápidamente arruinaron una buena pregunta. –