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

CannotAcquireLockException (wiosna, hibernacja, MySQL)

To zdecydowany impas sytuacja. Jest to bardziej związane z błędem MySQL niż problemem hibernacji z twoimi klasami. Najpierw przejrzyjmy definicję impasu :

Zobacz tę stronę, aby uzyskać więcej informacji:http://en.wikipedia.org/wiki/Deadlock

Jak radzisz sobie z tą sytuacją. Cóż, musisz przeczytać następujący artykuł:Zakleszczenia w InnoDB . Zawiera większość potrzebnych informacji. Ten artykuł wyjaśnia szczegółowo, jak śledzić i radzić sobie z zakleszczeniami, które należy przeczytać.

Zasadniczo musisz wykonać następujące kroki w oparciu o powyższe informacje:

  1. Utwórz ślad MySQL:Śledź wszystkie zapytania uruchamiane na serwerze MySQL.
  2. Uzyskaj informacje o zakleszczeniu
  3. Połącz ze sobą ślad zakleszczenia i ślad MySQL, aby określić przyczynę zakleszczenia.

Artykuł na temat InnoDB zawiera również listę środków zaradczych, więc nie zamierzam ich tutaj powtarzać. Pamiętaj tylko o zakleszczeniu nie jest błędem krytycznym, wystarczy sobie z nim poradzić. Więc może złap wyjątek i ponów transakcję. Upewnij się również, że zapytania generowane przez Hibernate są optymalne w tym sensie, że używają indeksów gdzie mogą itp. Inną rzeczą, którą możesz spróbować, jest grupowanie transakcja w hibernacji i wykonywana wsadowo .

Jestem pewien, że dzięki dwóm powyższym linkom będziesz w stanie poradzić sobie z problemem i będzie to cenne doświadczenie, aby samodzielnie rozwiązać ten problem. Jeśli znajdziesz jakiś konkretny element, z którym masz problemy, dodaj go do pytania i zajmijmy się tym.



  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 pobrać dane JSON z MySQL?

  2. Baza danych uśpiona i powodująca wyjątek

  3. Wstaw dane formularza do dwóch różnych tabel w bazie danych za pośrednictwem strony jsp

  4. Jak przekonwertować wartość daty i godziny MySQL na datę i godzinę w api wykresu Google?

  5. Wybierz wiersze z maksymalną wartością kolumny według innej kolumny