O C3P0 possui um parâmetro de configuração chamado maxConnectionAge, que talvez seja útil para resolver seu problema. No pacote de distribuição binária da biblioteca, abra o arquivo \doc\index.html e procure o termo “Managing Pool Size and Connection Age”:
O título está um pouco estranho.
Mas estou tendo problemas no tipo que, eventualmente, uma instabilidade faz com que o Hibernate na aplicação perca conexão com o banco de dados. Na verdade, o pool que o HB usa (C3P0).
Estive procurando na documentação do HB se existe uma forma de ele perceber que a conexão é inválida e obter uma nova, porque uma vez que perde a conexão, a aplicação não funciona novamente até eu refazer a SessionFactory (que ocorre só quando eu inicializo o contexto).
Se não houver configuração, vou ter que armar uma estratégia de testar a sessão que a SessionFactory me entrega antes de retornar para meu DAO.
Na verdade tanto faz cara. O que não quero é ter que reiniciar a aplicação quando cair a conexão.
Será que não tem uma forma de ele perceber isso antes de fornecer a conexão?