484
Chương 12: Dịch vụ Web XML và Remoting
Hình 12.2 Theo dõi một phiên giao dịch không thành công
[
Vì bản chất phi trạng thái (stateless) của giao thức HTTP, nên một phương thức web chỉ có
thể góp phần làm gốc của một phiên giao dịch; nghĩa là bạn không thể đưa nhiều hơn một
phương thức web vào cùng một phiên giao dịch. Mặc dù thuộc tính
TransactionOption
chấp
nhận tất cả các giá trị
TransactionOption
chuẩn, nhưng các giá trị này không mang ý nghĩa
như mong đợi. Ví dụ,
Disabled
,
NotSupported
, và
Supported
đều có cùng tác dụng là vô hiệu
việc hỗ trợ giao dịch. Tương tự, cả
Required
và
RequiresNew
đều kích hoạt việc hỗ trợ giao
dịch và khởi chạy một phiên giao dịch mới. Bạn nên sử dụng
RequiresNew
trong các phương
thức web vì tên của nó tương xứng với hành vi thật sự (!).
Các giao dịch COM+ làm việc một cách trong suốt với hầu hết các nguồn dữ liệu
vì chúng cung cấp các bộ quản lý tài nguyên tương thích. Nhưng luôn nhớ rằng,
nếu bạn tương tác với một tài nguyên không hỗ trợ giao dịch, mã lệnh sẽ không
được roll-back. Một số hoạt động không phải là giao dịch: ghi file, đặt thông tin
vào trạng thái phiên làm việc, và truy xuất một thiết bị phần cứng (như máy in).
Mặt khác, các thao tác dữ liệu với hầu hết các hệ cơ sở dữ liệu Enterprise (bao
gồm Microsoft SQL Server và Oracle) đều là tương thích COM+.