Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/01/2016, 13:24
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 4 meses
Puntos: 182
Respuesta: PostrgreSQL no cierra conexiones en JavaEE

Buenas,

Yo creo que es correcto, pero hay que tener en cuenta que la creacion de la factoria es bastante costosa, por lo que lo mejor seria abrir un factory, despues hacer todas las consultas que tengas que hacer usando entitymanagers y cerrar al final el factory antes de devolver la informacion al usuario.

Si lo quieres mejorar, la mejor manera de hacerlo en un Tomcat seria usar un listener que controle la creacion y cierre del factory como indican aqui, por ejemplo: http://stackoverflow.com/questions/7...managerfactory

Código Java:
Ver original
  1. @WebListener
  2. public class EMF implements ServletContextListener {
  3.  
  4.     private static EntityManagerFactory emf;
  5.  
  6.     @Override
  7.     public void contextInitialized(ServletContextEvent event) {
  8.         emf = Persistence.createEntityManagerFactory("PersistenceUnit");
  9.     }
  10.  
  11.     @Override
  12.     public void contextDestroyed(ServletContextEvent event) {
  13.         emf.close();
  14.     }
  15.  
  16.     public static EntityManager createEntityManager() {
  17.         if (emf == null) {
  18.             throw new IllegalStateException("Context is not initialized yet.");
  19.         }
  20.  
  21.         return emf.createEntityManager();
  22.     }
  23.  
  24. }

Y despues siempre que necesites hacer una consulta:

Código Java:
Ver original
  1. EntityManager em = EMF.createEntityManager();
  2. // ...

Un saludo
__________________
If to err is human, then programmers are the most human of us