Além das configurações no persistence.xml você pode fornecer um arquivo properties (c3p0.properties) com informações adicionais, tais como:
c3p0.preferredTestQuery=select nome from avaliador
c3p0.testConnectionOnCheckin=true
c3p0.maxIdleTimeExcessConnections=10
c3p0.acquireRetryAttempts=5
c3p0.acquireRetryDelay=3
c3p0.breakAfterAcquireFailure=false
c3p0.maxConnectionAge=0
c3p0.unreturnedConnectionTimeout=10
c3p0.debugUnreturnedConnectionStackTraces=false
É difícil falar em melhor configuração. Eu já apanhei muito com isso!
Sempre vai depender do ambiente de implantação. Digo isso pois em uma certa época eu tinha total controle sobre o ambiente onde uma determinada aplicação era implantada, inclusive sobre o timeout do banco de dados (Mysql).
Quando passei a hospedar a aplicação em um certo provedor, o timeout das conexões do banco eram muito pequeno, e eu tive vários problemas com a configuração que antes era bem estável. No final tive que trocar o C3p0 pelo DBCP, usado neste provedor.
A melhor dica é configurar, testar, e se necessário ajustar até você ter a estabilidade e desempenho esperados.
Realmente Luiz… estou apanhando bastante aqui tambem… cheguei a criar uma classe validadora de conexões utilizando o método reconect mas não deu certo…
O timeout do servidor aqui é de 5 horas… Agora vou acompanhar para ver se minha configuração não vai ocasionar algum outro problema
As duas primeiras propriedades do exemplo que lhe passei fazem a validação das conexões pra você. Informe uma consulta válida (e rápida) para que o c3p0 possa validar as conexões quando você for pegá-las do pool.
a propriedade c3p0.maxIdleTimeExcessConnections é interessante pois faz com que sejam recolhidos do pool as conexões em excesso que estão “de bobeira”.
bom dia pessoal, estou com essa mesma duvida de qual a melhor configuraçao,
mas para isso preciso entender o que significa todas as linha na configuração e pra que serve,
alguem poderia me indicar um lugar onde descreve todos os tipo de configuração e pra que serve
cada um?