org.postgresql.util.PSQLException: FATAL: connection limit exceeded for non-superusers
Minha aplicação usa spring e hibernate e meu usuário do banco não pode ser um superuser (limitação do servidor, que é compartilhado).
Isso aconteceu enquanto eu testava o sistema e havia outras 2 pessoas testando ele junto.
Alguma idéia do que pode estar causando isso e como solucionar?
tens que dar permissão no usuario para poder abrir mais conexões na base de dados em simultaneo, se fosse no mysql ou oracle eu podia ser mais especifico …
Mas essa não é uma solução muito legal… senão o dia em que eu tiver 1 milhão de usuários vou ter q permitir que sejam criadas 1 milhão de conexões :shock:
Eu tenho palpites:
1 - O spring não deve estar fechando as conexões como deveria.
2 - Se a aplicação tenta abrir uma conexão e não consegue, ela deveria esperar um tempo e tentar de novo até conseguir.
Pode estar acontecendo 1 dos problemas ou até mesmo os 2 simultâneamente.
Eu usei spring esperando n ter dor de cabeça com essas coisas e me ferrei pelo visto.
Estou precisando muito de ajuda, esse problema é a única coisa que me impede de colocar o sistema em produção
Já tentei de tudo e nada funciona, já to ficando desesperado hahaha
Além de configurar o BD no persistence.xml, eu também criei um dataSource no applicationContext.xml com as mesmas configurações. Eu não sei porque, mas funcionou. Se eu tiro as configs de um dos arquivos o problema volta.
A má notícia é que eu queria configurar o c3p0 para gerenciar um pool de conexões e não consegui fazer isso do jeito que as coisas estão, mas pelo menos ele parou de largar conexões abertas.
Acho que vc pode tentar fazer o mesmo, mas o ideal seria que alguém aí ajudasse a gente a encontrar uma solução realmente definitiva.
Beleza, vou tentar isso na segunda feira e dou um retorno… até lá se alguém puder, como ele disse, nos ajudar a encontrar uma solução mais definida, por favor, nos ajude…
Porém qnd carrego um link em específico ele sempre mostra
Caused by: org.postgresql.util.PSQLException: FATAL: connection limit exceeded for non-superusers
Mas ainda consigo fazer a consulta, se for pra outro lugar e depois tentar consultar novamente, ele acusa:
“Cannot get a connection, pool error Timeout waiting for idle object”
“Timeout waiting for idle object”