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