2012-08-03 9 views
6

Estoy trabajando para solucionar los problemas de tiempo de espera de conexión para un proyecto en el que estoy trabajando. usamos c3p0 para administrar el grupo de conexiones e hibernar como la herramienta orm. también usamos la primavera.depuración de pérdida de conexiones usando 'debugUnreturnedConnectionStackTraces'

Para encontrar si hay conexiones no devueltas, he configurado debugUnreturnedConnectionStackTraces en true en mi configuración de c3p0 (NO en las propiedades de c3p0).

¿Hay algo más que deba hacer? ¿Debo agregar algo a mis lod4j.properties también o es suficiente para establecer debugUnreturnedConnectionStackTraces en true?

Además, ¿debo establecer debugUnreturnedConnectionStackTraces en true en las propiedades c3p0?

Gracias por la ayuda

Respuesta

3

Personalmente normalmente añadir tanto de las 2 líneas siguientes a mi hibernate.cfg.xml

<property name="hibernate.c3p0.unreturnedConnectionTimeout">60</property> 
<property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property> 

creo que el valor predeterminado en el tiempo de espera es 0 y estoy no estoy seguro de cómo se supone que funciona.

+0

gracias scott. Pero, ¿es suficiente si configuramos 'debugUnreturnedConnectionStackTraces' como verdadero o también debo realizar cambios en mi log4j.properties? y donde 'depurarUnreturnedConnectionStackTraces' registra los rastreos de la pila. ¿Se registrará en los registros del servidor de aplicaciones? – Npa

+0

No uso log4j, pero esperaría que necesitara activar el nivel de registro para depurar. Y sí, debería terminar en el registro del servidor de aplicaciones. –

10

Ampliando un poco en la respuesta de Corey:

Si unreturnedConnectionTimeout es positivo y debugUnreturnedConnectionStackTraces se establece en verdadero, entonces los seguimientos de pila que generan excepciones no devueltos serán registrados a nivel INFO por el registrador "com.mchange.v2. resourcepool.BasicResourcePool ".

A menudo las personas registran todo lo que esté por encima del nivel INFO de todos los registradores, por lo que estos rastreos de pila solo aparecen en los registros. Pero si no los ve, verifique su configuración de registro para asegurarse de que los mensajes en INFO de ese registrador no se filtran.

Tenga en cuenta que debugUnreturnedConnectionStackTraces no hará NADA si unreturnedConnectionTimeout no está configurado también.

Ver

http://www.mchange.com/projects/c3p0/#unreturnedConnectionTimeout

http://www.mchange.com/projects/c3p0/#debugUnreturnedConnectionStackTraces

espero que esto ayude!

p.s. no importa cómo establezca estas propiedades, siempre que estén configuradas correctamente. c3p0 vuelca las configuraciones de grupo en INFO al inicio del grupo; revisa tus registros para asegurarte de que, sin embargo, si intentas establecer parámetros, tienes la configuración que esperas. Alternativamente, puede usar JMX para inspeccionar los parámetros.

Cuestiones relacionadas