Tema: Duda JPA
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/06/2009, 02:14
roscar
 
Fecha de Ingreso: noviembre-2007
Mensajes: 121
Antigüedad: 17 años, 4 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