Tengo una aplicación java cargada con hirbernate. Y solía usar como grupo de conexiones DBCP, pero tenía problemas con las conexiones de lossing. Luego cambié a c3p0. Pero ahora a veces se bloquea el hilo y no sé por qué. Como aquí:¿Cuál es la mejor opción para la biblioteca de agrupación de conexiones de bases de datos? (Problema c3p0)
"[email protected]" prio=10 tid=0x00007fa6b0940000 nid=0x4e12 runnable [0x00007fa6f8f1c000]
java.lang.Thread.State: RUNNABLE
at com.mchange.v2.resourcepool.BasicResourcePool.doCheckinManaged(BasicResourcePool.java:1258)
at com.mchange.v2.resourcepool.BasicResourcePool.checkinResource(BasicResourcePool.java:647)
- locked <0x00007fa7286d9728> (a com.mchange.v2.resourcepool.BasicResourcePool)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$ConnectionEventListenerImpl.doCheckinResource(C3P0PooledConnectionPool.java:636)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$ConnectionEventListenerImpl.connectionClosed(C3P0PooledConnectionPool.java:630)
at com.mchange.v2.c3p0.util.ConnectionEventSupport.fireConnectionClosed(ConnectionEventSupport.java:55)
at com.mchange.v2.c3p0.impl.NewPooledConnection.fireConnectionClosed(NewPooledConnection.java:510)
at com.mchange.v2.c3p0.impl.NewPooledConnection.markClosedProxyConnection(NewPooledConnection.java:381)
at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:1246)
- locked <0x00007fa794ccf020> (a com.mchange.v2.c3p0.impl.NewProxyConnection)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.closeConnection(LocalDataSourceConnectionProvider.java:96)
at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:474)
at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:408)
at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:347)
at org.hibernate.impl.SessionImpl.close(SessionImpl.java:325)
at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSession(SessionFactoryUtils.java:791)
at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSessionOrRegisterDeferredClose(SessionFactoryUtils.java:777)
at org.springframework.orm.hibernate3.SessionFactoryUtils.releaseSession(SessionFactoryUtils.java:755)
' Mi volcado StackTrace mostró que este hilo bloqueado todos mis otros hilos, con cerradura < 0x00007fa7286d9728>, por lo que en un servidor mientras estaba completamente bloqueado. No estoy seguro de cuánto tiempo se ejecuta este hilo, si un hilo estuvo bloqueando el resto de los hilos durante mucho tiempo, o si el tiempo consumido por este hilo fue extremadamente largo, pero el resultado fue que mi sistema fue completamente bloqueado y extremadamente ralentizado. Busqué mucho en Google, pero no sé cómo resolver este problema. Necesito piscina para cerrar la conexión y terminar la banda de rodadura lo antes posible. ¿Debo usar algún otro grupo de conexión? Para mí, es absolutamente necesario que esta biblioteca de grupo sea 100% segura, sin interbloqueos, líneas muertas, inanición, incluso que sea un poco más lenta que otras bibliotecas.
gracias por cualquier ayuda
Perdón por dar con un hilo viejo, pero hace algún tiempo hice algunas pequeñas investigaciones sobre el tema: http://stackoverflow.com/questions/5640146/java-jdbc-connection-pool-library-choice-in- 2011 –