Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

CannotAcquireLockException (Spring, Hibernate, MySQL)

Đây là một bế tắc xác định tình hình. Điều này liên quan nhiều đến lỗi MySQL hơn là vấn đề Hibernate với các lớp của bạn. Trước tiên, hãy xem lại định nghĩa của bế tắc :

Xem trang này để biết thêm thông tin: http://en.wikipedia.org/wiki/Deadlock

Làm thế nào để bạn đối phó với tình huống này. Vâng, bạn cần đọc bài viết sau: Chốt lại trong InnoDB . Nó chứa hầu hết thông tin bạn cần. Bài viết này giải thích chi tiết cách theo dõi và đối phó với các bế tắc mà bạn cần phải đọc.

Về cơ bản, bạn sẽ cần thực hiện các bước sau dựa trên thông tin ở trên:

  1. Tạo MySQL Trace:Theo dõi tất cả các truy vấn đang được chạy trên máy chủ MySQL.
  2. Nhận thông tin theo dõi bế tắc
  3. Khớp dấu vết khóa chết và dấu vết MySQL với nhau để xác định nguyên nhân của khóa chết.

Bài viết trên InnoDB's cũng có một danh sách các biện pháp khắc phục vì vậy tôi sẽ không nhắc lại chúng ở đây. Chỉ cần ghi nhớ bế tắc không phải là một lỗi nghiêm trọng, bạn chỉ cần xử lý nó. Vì vậy, có thể bắt ngoại lệ và thử lại giao dịch. Ngoài ra, hãy đảm bảo rằng các truy vấn của bạn được tạo bởi Hibernate là tối ưu theo nghĩa là chúng đang sử dụng chỉ mục nơi họ có thể, v.v. Một điều khác bạn có thể thử là phân lô giao dịch trên Hibernate và thực hiện theo .

Tôi chắc chắn với hai liên kết trên, bạn sẽ có thể xử lý được vấn đề và đó sẽ là kinh nghiệm quý báu để bạn tự khắc phục vấn đề này. Nếu bạn tìm thấy bất kỳ mục cụ thể nào, bạn có vấn đề với việc thêm nó vào câu hỏi và hãy giải quyết vấn đề đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm thế nào để khôi phục cơ sở dữ liệu trong mysql?

  2. Làm thế nào để cài đặt pyodbc 64-bit?

  3. Cách hạn chế quyền truy cập cổng MySQL

  4. Id số nguyên duy nhất, không thể đoán trước, 12 chữ số,

  5. Cảnh báo:mysql_real_escape_string ():Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' (sử dụng mật khẩu:NO) ... / public_html / checklogin.php