Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Primeiro Login:Status HTTP 500 - Falha no processamento da solicitação; exceção aninhada é org.springframework.transaction.CannotCreateTransactionException


Parece que o MySQL ou um firewall está matando suas conexões inativas que estão em seu pool de conexões jdbc por longos períodos de tempo:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 
The last packet successfully received from the server was 4,665,488 milliseconds ago.

Verifique o valor de wait_timeout no MySQL.

Você pode brincar com as configurações DBCP por exemplo. validaçãoQuery, testOnBorrow e testWhileIdle.

Uma configuração que é 'cinto e suspensórios' e provavelmente resolverá seu problema às custas do desempenho é:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="${jdbc.driverClassName}"/>
  <property name="url" value="${jdbc.url}"/>
  <property name="username" value="${jdbc.username}"/>
  <property name="password" value="${jdbc.password}"/>
  <property name="validationQuery" value="SELECT 1"/>
  <property name="testOnBorrow" value="true"/>
</bean>

O acima testará as conexões toda vez que você emprestar do pool.