Gostaria de saber se alguém já passou pelo mesmo problema. A autenticação no banco de dados na minha aplicação é feita logo no início da execução. O usuário loga e a conexão com o banco é estabelecida. O problema é que, depois de um tempo, se o banco cair e voltar durante a execução do meu programa, ocorre um problema de autenticação no hibernate. Gostaria de saber se há alguma configuração ou solução para este problema (queda e volta do banco).
pela descrição do cenário o problema pode estar na sua forma de iniciar a conexão e construção de uma tolerancia a falha.
Veja se entendi o que você está fazendo:
inicia sua aplicação
conecta-se ao banco de dados
sua aplicacao continua aberta
reconectar banco de dados
erro lançado
Enquanto isto o banco de dados cai e retoma.
Se for isto, sua aplicação deve estar com uma conexão aberta e você deve estar tentando abrir uma noxa conexão, sendo que por esta ser singleton e não ter percebido a queda do SGBD, tentará estabelecer a mesma conexão, causando a falha (já ocorreu isto com um integrante da minha equipe).
Isto ocorre pq o SGBD não avisa nada de queba a Aplicação, é necessário você verificar (inclusive, se o período de tempo seja bem curto, fazendo reestabelecer a conexão antes de operar novamente).
Se entendi errado envia o erro e explica melhor para poder ajudá-lo.
Nos livros que eu li não vi nada sobre reconexão automatica. O que você pode fazer é utilizar um controle por timeout quando o problema no servidor não é critico. Não lembro agora quais as variaveis de conf. do hibernate para isto mas existe.
No nosso caso, utilizavamos um proxy que sempre ao buscar uma sessão verificava se existia conexão e caso não houvesse reconectavamos por exceção.
Talvez não pareça uma solução muito elegante e até acredito que exista outras maneiras pois o Glassfish, Spring e Hibernate são muito poderosos. Mas é dificil encontrar uma boa literatura e as vezes quando encontramos ja estamos em apuros e fica mais dificil ler. É um erro, eu sei, mas é a realidade também.
Vou ver se dou uma lida melhor e se você não encontrar nada eu posto aqui a solução mais elegante.
Estou com o mesmo problema descrito. Alguém conseguiu resolver? Já fiz várias tentativas e até agora nada! Vi muita gente dizendo que com o C3P0 resolvia, mas configurei aqui e nada.