Tôi có một chương trình java cập nhật một bảng trong MS SQL. Bảng này cũng được truy cập bởi người dùng web thông qua một trang web được tạo ra trong ColdFusionGiao dịch (ID tiến trình) đã bị khóa trên khóa | tài nguyên đệm giao tiếp với một quy trình khác và đã được chọn làm nạn nhân bế tắc
Gần đây tôi đã nhận được lỗi này khi dòng:
sql_stmt.executeUpdate("update random_selection "
+ "set forecasted = 1 where "
+ " randnum = " + ora_rs.getString("RANDNUM")
+ " and quarter = " + quarter
+ " and ozip3 = " + ora_rs.getString("OZIP3"));
Truy vấn CF được erroring là:
<cfquery name="submit_forecast" datasource="ttmsdropper" username="#request.db_username#" password="#request.db_password#">
INSERT INTO forecast_entry
VALUES (<cfqueryparam value="#currentRecord[8]#">)
</cfquery>
Điều gì gây ra lỗi này và làm cách nào để khắc phục lỗi này?
Để làm rõ cho bất kỳ ai có thể gặp phải bài đăng này, bế tắc không thể xảy ra với một điểm tranh chấp duy nhất. Nó chỉ có thể xảy ra khi có (ít nhất) hai điểm tranh chấp và một quy trình khóa một điểm đầu tiên và sau đó tiến trình kia và các quy trình khác sẽ khóa chúng theo thứ tự ngược lại. Xem định nghĩa của [deadlock] (https://en.wikipedia.org/wiki/Deadlock). – James
Awesome James - cảm ơn bạn! –