Foros del Web » Programación para mayores de 30 ;) » Java »

hibernate - problema con conection pool

Estas en el tema de hibernate - problema con conection pool en el foro de Java en Foros del Web. hola, estoy usando mysql y c3p0 como pool de conexiones con hibernate para desarrollar una aplicacion web usando struts. El problema viene cuando dejo corriendo ...
  #1 (permalink)  
Antiguo 07/05/2006, 05:20
 
Fecha de Ingreso: marzo-2005
Mensajes: 58
Antigüedad: 19 años, 1 mes
Puntos: 0
hibernate - problema con conection pool

hola,
estoy usando mysql y c3p0 como pool de conexiones con hibernate para desarrollar una aplicacion web usando struts. El problema viene cuando dejo corriendo la aplicacion mucho tiempo y se cierran las conexiones que maneja el pool. Cuando intento acceder luego de eso me tira una excepcion de que no pudo ejecutar el query causada por otra que no se puede ejecutar operaciones sobre una coneccion cerrada. Cuando vuelvo a intentar acceder recien ahi se ve que crea una coneccion nueva.

Estoy configurando el pool como sigue:
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>

Que puede estar pasando? No deberia contemplar esta situacion el pool?

Desde ya muchas gracias, pablo.
  #2 (permalink)  
Antiguo 08/05/2006, 07:49
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

En tu archivo confif tienes que agregar la siguiente linea.

Cita:
<property name="connection.pool_size">1</property>
//Donde
hibernate.connection.pool_size = maximum number of pooled connections
Este lo puede checar en el capitulo tres del manual
  #3 (permalink)  
Antiguo 08/05/2006, 08:17
 
Fecha de Ingreso: marzo-2005
Mensajes: 58
Antigüedad: 19 años, 1 mes
Puntos: 0
Voy a probar pero creeria que lo estoy seteando cuando pongo:
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>

Que entiendo que es tamanio minimo y maximo del pool. Lo raro es que funciona bien, hasta que por el timeout se cierran las conexiones que maneja el pool. En cuyo caso abre otra si no que tira una excepcion como decia. Recien la vuelve a crear cuando intento acceder de vuelta.

No se si habra que setear algun otra configuracion. Pero me suena raro por me parece logico que el comportamiento por defecto sea que si la conexion que intenta utilizar esta cerrada abra otra y no que tire la excepcion.
  #4 (permalink)  
Antiguo 08/05/2006, 09:54
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
En estos casos lo habitual es que "la culpa" sea de la base de datos, que cierra las conexiones cuando hace un tiempo que no se utilizan. El "otro culpable" es el pool que para evitar esto suele tener una configuración que: o ejecuta una instrucción tonta periodicamente para mantener la conexion abierta (estilo "select sysdate from dual" en oracle) o cada cierto tiempo comprueba si las conexiones estan abiertas y si no lo estan, las crea de nuevo.

Yo cuando uso el proxool, tiene una propiedad que se llama "house-keeping-test-sql" que es la instrucción a ejecutar periodicamente. Y en pool que creamos nosotros tambien le pusimos propiedades similares. No se en el C3P0 como irá, pero algo parecido debería haber.

Googleando, googleando, parece que esto te ayudará:
http://forum.hibernate.org/viewtopic.php?t=934779
  #5 (permalink)  
Antiguo 22/03/2010, 10:40
 
Fecha de Ingreso: marzo-2010
Mensajes: 14
Antigüedad: 14 años, 1 mes
Puntos: 0
Manejo de Transacciones con Hibernate y Spring AOP

en este artículo http://periospino.blogspot.com/2010/03/manejo-de-transacciones-con-hibernate-y.html .. explico la forma de configurar el pool de conecciones y el manejo de transaciones con hibernate... Saludos espero les sirva..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:20.