sql >> Databasteknik >  >> RDS >> Mysql

Första inloggning:HTTP Status 500 - Begäran misslyckades; kapslat undantag är org.springframework.transaction.CannotCreateTransactionException

Det verkar som att MySQL eller en brandvägg dödar dina inaktiva anslutningar som hänger i din jdbc-anslutningspool under långa perioder:

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

Kontrollera värdet på wait_timeout på MySQL.

Du kan leka med DBCP-inställningar t.ex. validationQuery, testOnBorrow och testWhileIdle.

En konfuguration som är "bälte och hängslen" och förmodligen kommer att lösa ditt problem på bekostnad av prestanda är:

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

Ovanstående kommer att testa anslutningar varje gång du lånar från poolen.




  1. Serverns tidszonsvärde 'CEST' är okänt

  2. SQL Server Backup Check

  3. Tillgång till en specifik tabell i HTML-taggen

  4. Transponera en uppsättning rader som kolumner i SQL Server 2000