Olá pessoal,
Estive procurando no fórum e pelo que vi estou fazendo corretamente.
Porém estou abrindo este tópico para verificar se realmente estou fazendo corretamente ou é um bug mesmo.
Tentei das duas formas, conforme códigos abaixo:
public List<Estatus> getListaEstatus() throws Exception {
List lista = null;
try {
SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session s = sf.openSession();
s.beginTransaction();
lista = s.createQuery("from Estatus").list();
s.beginTransaction().commit();
s.close();
} catch (Exception e) {
throw e;
}
return lista;
}
public List<Estatus> getListaEstatus() throws Exception {
List lista = null;
SessionFactory sf = null;
Session s = null;
try {
sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session s = sf.openSession();
s.beginTransaction();
lista = s.createQuery("from Estatus").list();
s.beginTransaction().commit();
} catch (Exception e) {
throw e;
} finally{
s.close();
}
return lista;
}
O que ocorre é que tenho muitas conexões como esta e a cada consulta o postgre+hibernate abre uma conexão nova com uma nova thread nos processos.
Quero saber se estou realmente fechando as conexões corretamente e porque que as conexões continuam abertas.
Fiz um teste com select count(*) from pg_stat_activity e realmente a cada consulta vai abrindo novas consultas e não fechando.
No gerenciador de taferas ficam cada vez mais processos ativos do postgre.
Quando reinicio o tomcat as conexões são todas fechadas.
Aguardo.