Olá,
estou enfrentando o seguinte problema: temos em produção uma aplicação que acessa um banco de dados MySQL.
Tudo funciona a mil maravilhas, mas quando o tempo de espera por conexões do servidor supera o tempo máximo, e o MySQL fecha a conexão, a aplicação simplesmente não consegue restabelecê-la.
Toda a configuração de conexão é feita a partir do nosso arquivo de configuração do Spring, que anexo abaixo:
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
<prop key="hibernate.connection.url">jdbc:mysql://servidor/banco</prop>
<prop key="hibernate.connection.username">login</prop>
<prop key="hibernate.connection.password">senha</prop>
<prop key="hibernate.connection.autoReconnect">true</prop>
<!-- Configurações do pool -->
<prop key="c3p0.acquire_increment">1</prop>
<prop key="c3p0.idle_test_period">60</prop> <!-- seconds -->
<prop key="c3p0.max_size">50</prop>
<prop key="c3p0.max_statements">100</prop>
<prop key="c3p0.min_size">5</prop>
<prop key="c3p0.timeout">60</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
</props>
</property>
Sendo assim, pergunto: há alguma coisa de errado com as minhas configurações de conexão? Como configuro o Hibernate para restabelecer a conexão caso a mesma seja fechada pelo sevidor? É possível?