Bạn có thể gặp phải lỗi này trong MySQL Connector / NET .
Điều gì gây ra lỗi này:
- Lệnh gọi mã để thực hiện truy vấn A
- Giao dịch 1 cho truy vấn A được bắt đầu
- Truy vấn A được thực thi và gây ra lỗi trong MySQL
- Giao dịch 1 KHÔNG được khôi phục lại
- Lệnh gọi mã để thực hiện truy vấn B
- Giao dịch 2 cho truy vấn B được bắt đầu
- Trình kết nối MySQL / NET ném ngoại lệ
Lỗi ở điểm 4:giao dịch 1 vẫn mở sau khi xảy ra lỗi (hoặc ít nhất là trình kết nối vẫn bị thuyết phục rằng nó vẫn đang mở). Do gộp kết nối, mã gọi cho truy vấn A và truy vấn B có thể hoàn toàn không liên quan đến nhau. Ngoài ra, nếu thời gian từ điểm 4 đến điểm 5 đủ dài, giao dịch là quay trở lại, do đó tính hiếm và ngẫu nhiên.
Thật không may, vẫn chưa có bản sửa lỗi nào của MySQL. Cách giải quyết duy nhất mà tôi biết là tải xuống mã nguồn của Connector / NET và tự sửa / xây dựng nó.