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

Duda JPA

Estas en el tema de Duda JPA en el foro de Java en Foros del Web. Hola a todos, tengo el siguiente problema: Estoy desarrollando una aplicación Web con java (J2SE no J2EE), y uso JPA para la persistencia en la ...
  #1 (permalink)  
Antiguo 12/06/2009, 02:14
 
Fecha de Ingreso: noviembre-2007
Mensajes: 121
Antigüedad: 16 años, 5 meses
Puntos: 0
Duda JPA

Hola a todos, tengo el siguiente problema:

Estoy desarrollando una aplicación Web con java (J2SE no J2EE), y uso JPA para la persistencia en la base de datos. Yo tengo creadas todas las clases necesarias (las clases entidad, los dao para acceder a las clases, etc). Utilizo una clase estática para la factoria de entidades de JPA.

En una clase Dao tengo metodos para insertar, buscar, eliminar, modificar , etc. Y en cada método hago lo siguiente:

public void metodo() {
EntityManager em=ManUtil.getEntityManagerFactory().createEntityM anager();
try {
em.getTransaction().begin();
..........

}catch (PersistenceException Pe){
em.getTransaction().rollback();
throw Pe;
}
finally{
em.close();
}
}

El problema que tengo es que cuando abro en el naved¡gador una sesión de mi aplicación y hago varias peticiones a a base de datos (llamando a diferentes metodos con la estructura mostrada arriba), me salta una excepción, ya que al intentar hacer em.getTransaction().begin();, me salta una excepción sql y al ir al tratamiento de excepciones y hacer roollback me da error por transición no activa.

Imagino que el problema es porque no estoy cerrando bien las transaciones o algo y pero cierto el entity manager, con lo cual deberian cerrarse. Pensé que era porque no estaba usando un pool de conexiones, y añadi c3p0 a mi aplicación, pero sigo teniendo el mismo problema, solo que el error que me da esta vez es WARN com.mchange.v2.resourcepool.BasicResourcePool:1841 - com.mchange.v2.resourcepool.BasicResourcePool$Acqu ireTask@f660a7 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
localhost:1521:XE

No entiendo que me falta por cerrar en los métodos.

Muchas gracias por adelantado por la ayuda
  #2 (permalink)  
Antiguo 15/06/2009, 05:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 121
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Duda JPA

Bueno el tema de la excepción ya lo he podido resolver haciendo lo siguiente alter system set processes=150 scope=spfile. Lo probé quitando el pool c3p0 y usando el que vine por defecto con hibernate y funcione perfectamente.

El problema me viene ahora al meter el pool de conexiones c3p0, ya que cuando llega al máximo número de conexiones configuradas (parametro hibernate.c3p0.max_size), se me queda colgado. La configuración que tengo en el persistence.xml para el pool es la siguiente:

<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProv ider"/>
<property name="hibernate.c3p0.min_size" value="5"/>
<property name="hibernate.c3p0.max_size" value="25"/>
<property name="hibernate.c3p0.timeout" value="300"/>
<property name="hibernate.c3p0.max_statements" value="50"/>
<property name="hibernate.c3p0.idle_test_period" value="3000"/>

¿Alguien puede decirme si tengo algo mal configurado o cual puede ser el problema?
Saludos
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 06:29.