1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Boas praticas pra fazer conexao Entity manager factory JPA

E o seguinte, no meu código atualmente eu abria y fecho meu EM e EMF toda vez q faco uma consulta ou transaction. Tentando melhorar isso parei de fechar meu EMF, assim só fecho o EM. Mais aí ficam acumulando conexão na base de dados (que e um Postgre 9) ate chegar a o limite( limites conexão ativa 50 y 30 IDLE ) e o aplicativo cai até o pool (pool do tomcat 7) fazer uma limpeza.

Então se alguém saber me dizer algumas dicas para chegar a isso ou a maneira de estruturar o código, ou seja criar o EMF quando um cliente ascese e fechá-lo só no fim da sessão dele eu agradeço.

UTILIZO: JPA, JSF 2, Hibernate, Primefaces 3, Tomcat 7 e PostgreSQL9

[EDITADO]

Minha implementacao e a siguinte:

abstract class UtilJPA implements Serializable{

    private static final long serialVersionUID = 1L;

    private EntityManagerFactory emf;

    private EntityManager em;

        public UtilJPA() {
            if(emf==null || !emf.isOpen()){
            emf = Persistence.createEntityManagerFactory(DATASOURCE);
        }
        }

        ....

}

A parte de inteires acima

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags jpa jsf hibernate tomcat connection bdd ou faça a sua própria pergunta.