What happens to a database transaction if an error occurs during its execution in a web application?
4 phương ánCó giải thích
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "It is automatically rolled back". Giao dịch mang tính nguyên tử: gặp lỗi thì mọi thay đổi chưa commit bị trả về trạng thái trước đó, dù do mã bắt ngoại lệ rồi gọi rollback, hay do kết nối bị đóng và hết thời gian chờ khiến giao dịch đang mở bị huỷ. Vì vậy một chuỗi lệnh ghi trong web phải đặt setAutoCommit(false), commit ở cuối và rollback trong khối catch. Lựa chọn "It continues with the next statement" mô tả cảnh mỗi lệnh tự commit riêng, lúc đó không còn giao dịch chung để nói tới. Lựa chọn "It is committed regardless of the error" phá tính nguyên tử: lưu lại phần đã làm sẽ để dữ liệu nửa vời, ví dụ trừ tiền mà chưa cộng. Lựa chọn "It waits for user intervention" không có trong cơ chế này: không ai giữ giao dịch treo chờ người dùng quyết định, giữ lâu chỉ khoá dữ liệu rồi cuối cùng vẫn bị huỷ.
Cùng phần 3
Xuất hiện trong 2 bộ đề
Đi tiếp từ đây