exceção de conexões abertas

1 resposta
L

Bom dia a todos,

Estou tendo um problema onde conforme vou utilizando a aplicação estou recebendo esta exceção.

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection,  message from server: "Too many connections"

De cara já percebo que tenho muitas conexões abertas e provavelmente estou estourando o limite do MYSQL, só que toda transação que está vendo na minha aplicação estou fechando. Segue as duas formas que abre e estou fechando a conexão.

public String gravar(){
		String messageCadastro = "Gerência "+gerencia.getNomeGerencia()+" cadastrada com sucesso.";
		String messageAlterar = "Gerência "+gerencia.getNomeGerencia()+" alterada com sucesso.";
		FacesContext context = FacesContext.getCurrentInstance();
		
		DAO<Gerencia> dao = new DAO<Gerencia>(Gerencia.class);

		if (gerencia.getId_gerencia() == null) {
			dao.adiciona(gerencia);
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, messageCadastro, ""));	
		} else {
			dao.atualiza(gerencia);
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, messageAlterar, ""));			
		}
		gerencias = new DAO<Gerencia>(Gerencia.class).listaTodos();
		this.gerencia = new Gerencia();
		return "gerencia.xhtml?faces-redirect=true";
	}
public List<PerfilUsuario> getPerfilUsuarios() throws ParseException{
		
		EntityManager em = new JPAUtil().getEntityManager();    
		em.getTransaction().begin();    
		
		String jpql = "select p from PerfilUsuario p where p.tipoUsuario <>'Administrador'";
		
		Query query = em.createQuery(jpql);  
		
		em.close();    
		return query.getResultList();
	}

Desde já, obrigado.

1 Resposta

fbl.lucas

Você não esta fechando as conexões em caso de erro, pode ser isso.
Da uma olhada aqui: How to close a JPA EntityManger in web applications

Criado 15 de agosto de 2012
Ultima resposta 15 de ago. de 2012
Respostas 1
Participantes 2