Gostaria de esclarecer algumas dúvidas minhas em relação a esse pool:
1 - Como tenho certeza que o C3P0 e suas propriedades estão funcionando?
2 - O que caracteriza a ocupação de um espaço na pool uma chamada ao banco ou uma sessão do hibernate aberta?
Essa última dúvida, na verdade são vários pontos que ainda não ficaram bem esclarecidos para mim:
3 - Fico gravando um formulário umas 100x para travar o servidor, o servidor fica pensando… pensando… e quando chega no tempo x do timeout lança exceção que excedeu o tempo limite:
se tenho o seguinte:
30
20
Quer dizer que de 20 em 20s eu vou verificar se existem conexões inativas, se existirem eu limpo…
E se essa demorar mais que 30s eu lanço a exceção do timeout. PORÉM NUNCA VAI CHEGAR NO TIMEOUT SE EU LIMPO EM 20s?
Obs: Antes eu estava com idle_test_period como 100 e timeout como 30, e quando cliquei no formulario para salvar direto deu erro. agora deixando em 20 não está dando (por enquanto) esse baixo valor pode afetar em algo na “vida” das conexões?
Editado:
4 - O meu problema é o seguinte quando tenho no c3p0.properties um timeout declarado, quando alguma conexão falha as demais vão se juntando na fila e o tempo de timeout estoura.Se eu não utilizo tempo de timeout a conexão fica “pensando” mas não me retorna mais nenhum resultado do banco.Tenho que reiniciar o tomcat para voltar a usar qualquer chamada ao banco.
Se eu conseguisse de x em x segundos limpar essas conexões que ficam pensando já me resolveria o problema mesmo que o usuário ficasse esses x segundos “parado”, e depois conseguisse chamar o banco normalmente, só que mesmo com o idle_test_period para 100 ( = 1min 40s? ) pode passar esse tempo que a conexão continua “pensando”… posso passar o dia aqui que continua tentando achar algo…