2011-10-05 39 views
7

Làm cách nào để đóng gói các hành động phi cơ sở dữ liệu vào giao dịch? Ví dụ: giả sử tôi có một số phương thức/hàm được gọi theo thứ tự, một số cập nhật cơ sở dữ liệu, một số tệp cập nhật trên hệ thống tệp, một số thông số cập nhật trong HttpSession, một số cập nhật bộ nhớ cache, v.v. những cái sau không thành công, như cập nhật phiên làm việc, làm cách nào tôi có thể cuộn lại tất cả các thay đổi khác trên hệ thống tệp, trong DB, v.v ...?Giao dịch ứng dụng phi cơ sở dữ liệu

Môi trường là một container Java Servlet như Tomcat với một cái gì đó giống như struts2, bất kỳ RDBMS, một lớp bền bỉ như Hibernate hoặc iBATIS vv

Trả lời

2

Tất cả những sẽ phải là nguồn giao dịch, có khả năng tham gia vào một 2 -hoặc giao thức cam kết, để thực hiện những gì bạn muốn.

Trừ khi bạn có lỗi trong mã của mình, bản cập nhật cho phiên sẽ không bao giờ bị lỗi. Do đó bạn có thể làm điều đó sau khi các cập nhật khác thành công. Hệ thống tập tin chỉ nên tránh nếu bạn cần một cái gì đó giao dịch. Cách thay thế có thể là bắt đầu bằng cách lưu vào hệ thống tệp, sau đó thực hiện cập nhật cơ sở dữ liệu và chấp nhận có các tệp vô ích trong hệ thống tệp nếu cập nhật DB không thành công.

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