2009-11-25 22 views
5

Trong hướng dẫn Khung công tác mùa xuân, họ nêu rõ rằng đối với PROPAGATION_REQUIRES_NEW giao dịch hiện tại sẽ bị tạm ngưng.Tính năng tạm ngưng giao dịch hoạt động như thế nào trong MySQL?

"Giao dịch bị tạm ngưng" đó là gì? Bộ hẹn giờ cho thời gian chờ ngừng đếm trên giao dịch hiện tại? Ý nghĩa thực sự của việc tạm ngưng như vậy là gì?

Cảm ơn bạn,

Asaf

Trả lời

4

Nó không có ý nghĩa gì đặc biệt, một giao dịch bị đình chỉ chỉ là một giao dịch đó là tạm thời không được sử dụng cho chèn, cập nhật, cam kết hoặc rollback, bởi vì một mới giao dịch nên được tạo do các thuộc tính truyền bá được chỉ định và chỉ một giao dịch có thể hoạt động cùng một lúc.

Về cơ bản có hai mô hình giao dịch: mẫu lồng nhau và phẳng. Trong mô hình lồng nhau, nếu bạn bắt đầu một giao dịch, và bạn cần một giao dịch khác, cái đầu tiên vẫn còn hoạt động, tức là cái thứ hai sẽ được lồng vào bên trong giao dịch của nó, và cứ thế. Mặt khác, trong mô hình phẳng, giao dịch đầu tiên sẽ bị tạm ngưng, nghĩa là chúng tôi sẽ không sử dụng giao dịch đó cho đến khi giao dịch mới hoàn thành.

AFAIK mô hình phẳng được sử dụng hầu như độc quyền (kể cả thông số Spring và EJB), vì nó là dễ dàng hơn để thực hiện: chỉ có một giao dịch hoạt động tại bất kỳ thời điểm nào. làm trong trường hợp của một rollback, nói, vì một ngoại lệ. Quan trọng hơn, cơ sở dữ liệu bên dưới phải hỗ trợ nó nếu bạn cần mô hình lồng nhau, vì vậy mô hình phẳng chỉ là mẫu số chung trong trường hợp này.

Các vấn đề liên quan