Problemas constantes de "too many clients already"

Olá pessoal,

Tenho um sistema JAVA/Struts utilizando HIBERNATE com PostgreeSQL.
Constantemente ocorrem problemas de ‘too many clients’.

Porém, todos os métodos que acessam a base de dados possui o bloco Try-Finally, sendo que no bloco Finally eu fecho a sessão do Hibernate.

Em tese, o métido Close fecha a conexão com o banco de dados. Porém, o erro ‘too many clientes’ persiste.
Ex:


/**
 * Busca um registro através de um ID como parâmetro.
 *
 * @param idArea chave-básica e obrigatória para a busca da área.
 *  
 * @throws HibernateException
 * @throws SQLException
 */		
public static AreaHB buscaPorId(Integer idArea)  
		throws HibernateException, SQLException{
		
  AreaHB areaHB = new AreaHB(); // BEAN do Hibernate
  Session session = null;
		
  try {
    session = HibernateManager.getSession();
    session.load(areaHB, idArea);
    session.flush();			
  } finally {
    if (session != null) {
      session.close();
      session = null;	
    }
  }
  return (areaHB);
}

Os detalhes do erro estão abaixo.

Caused by: net.sf.hibernate.JDBCException: Cannot open connection
	at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:281)
	at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3297)
	at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3277)
	at net.sf.hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:65)
	at net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java:704)
	at net.sf.hibernate.loader.Loader.doQuery(Loader.java:185)
	at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
	at net.sf.hibernate.loader.Loader.doList(Loader.java:955)
	at net.sf.hibernate.loader.Loader.list(Loader.java:946)
	at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:834)
	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1536)
	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1513)
	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1509)
	at com.diaup.bossassistant.gestaoempresarial.dadoscadastrais.hibernate.service.AreaService.busca(AreaService.java:195)
	at com.diaup.bossassistant.gestaoempresarial.dadoscadastrais.struts.action.AreaAction.carregaLista(AreaAction.java:377)
	... 37 more
Caused by: org.postgresql.util.PSQLException: Inicialização do Núcleo (Backend) falhou: FATAL:  Sorry, too many clients already

Peço ajuda para resolver este problema.
Muito obrigado

Bruno Paz

Oi

Bruno, isso não seria no PostGres??? será que é mesno no Hibernate?

T+

Oi jeveaux

Eu setei no postgresql.conf com os seguintes valores:

  • numero maximo de conexoes como 640
  • shared_buffer com 8000

Você saberia me dizer qual deve ser o problema
Eu acredito que seja de Driver.

Obrigado