sql >> Base de Datos >  >> RDS >> Mysql

Primer inicio de sesión:estado HTTP 500:error en el procesamiento de la solicitud; la excepción anidada es org.springframework.transaction.CannotCreateTransactionException

Parece que MySQL o un cortafuegos están acabando con las conexiones inactivas que permanecen en su grupo de conexiones jdbc durante largos períodos de tiempo:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 
The last packet successfully received from the server was 4,665,488 milliseconds ago.

Compruebe el valor de wait_timeout en MySQL.

Puede jugar con configuración de DBCP p.ej. validaciónQuery, testOnBorrow y testWhileIdle.

Una configuración que es 'cinturón y tirantes', y que probablemente resolverá su problema a expensas del rendimiento es:

<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>

Lo anterior probará las conexiones cada vez que tome prestado del grupo.