Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pierwsze logowanie:HTTP Status 500 — przetwarzanie żądania nie powiodło się; zagnieżdżony wyjątek to org.springframework.transaction.CannotCreateTransactionException

Wygląda na to, że MySQL lub zapora sieciowa zabija nieaktywne połączenia, które wiszą w puli połączeń jdbc przez dłuższy czas:

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

Sprawdź wartość wait_timeout na MySQL.

Możesz bawić się ustawieniami DBCP np. validationQuery, testOnBorrow i testWhileIdle.

Konfiguracja typu „pas i szelki”, która prawdopodobnie rozwiąże Twój problem kosztem wydajności, to:

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

Powyższe będzie testować połączenia za każdym razem, gdy pożyczysz z puli.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zasilać zapytania mysql z bash

  2. Mysql usuwa wszystkie posty, które mają podany meta_key

  3. Grails:błąd w składni SQL przy zmianie dialektu hibernacji

  4. Nie znaleziono sterownika Jdbc

  5. MySQL 5.6.10 InnoDB nie może utworzyć tabeli, ponieważ tabela już istnieje