Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
535 KB
Nội dung
11 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ 22 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ Thựcthicáchoạtđộngxửlýtheoquanđiểmgiaotác(Transaction) 1.Giao tác là gì? 2.Xử lý đối với Local Transaction 3.Xử lý đối với Distributed Transaction 4.Các cấp độ cô lập (Isolation Level) 33 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ 1. Giaotác là gì? • Giaotác được xem như một công việc (không thể phân chia thêm nữa) • Giaotác được xem là thành công khi tất cả các thao tácthực hiện thành công • Giaotác được xem là thất bại khi chỉ cần một thao tác thất bại • .NET Framework hỗ trợ các loại giaotác − Local Transaction − Distributed Transaction 44 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ 1. Giaotác là gì? • Các tính chất ACID của giaotác − Atomicity: tính không thể phân chia − Consistency: tính nhất quán − Isolation: tính cô lập − Durability: tính bền vững 55 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ 2. Xửlý đối với Local Transaction • B1: Mở Connection • B2: Bắt đầu một Transaction • B3: Tạo Command hoạtđộng trong Transaction • B4: Thực hiện Command • B5: Chấm dứt Transaction với Commit/Rollback 66 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ Các Transaction trong .NET • System.Data.SqlClient.SqlTransaction • System.Data.OleDbClient.OleDbTransaction • System.Data.Odbc.OdbcTransaction • System.Data.OracleClient.OracleTransaction 77 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ 3. Xửlý với Distributed Transaction • B1: Tạo đối tượng TransactionScope • B2: Mở các Connection • B3: Tạo và thực hiện các Command • B4: Nếu thực hiện thành côngcác Command thì đánh dấu Transaction là Complete • B5: Giải phóng đối tượng TransactionScope 88 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ 4. Các cấp độ cô lập • Khi tạo Transaction có thể xác định cấp độ cô lập để xác lập ảnh hưởng giữa các Transaction • Các Transaction cùng truy xuất dữ liệu giống nhau tại cùng thời điểm có thể gây ra các lỗi • Dirty read: đọc dữ liệu chưa được Commit • Non-repeatable read: đọc không nhất quán • Phantom read: đọc không bình thường 99 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ Lỗi Dirty read • Transaction thứ nhất (T1) đang cập nhật nhưng chưa Commit • T2 có thể đọc thấy dữ liệu chưa được Commit của T1 1010 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ Lỗi Non-repeatable read • T1 đang đọc dữ liệu đã được Commit • T2 có thể cập nhật dữ liệu này • T1 đọc lại và thấy có sự thay đổi [...]... HocLapTrinhWeb.COM Minh họa Isolation Level •Cấp độ ReadUnCommited http://www.facebook.com/groups/hoclaptrinhweb/ 14 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Thực hành Thực hiện các thao tác cập nhật trong cùng một giaotác http://www.facebook.com/groups/hoclaptrinhweb/ 15 ...HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Lỗi Phantom read •T1 đang đọc dữ liệu đã được Commit và dữ liệu được đọc theocác điều kiện •T2 có thể cập nhật dữ liệu liên quan đến các điều kiện •T1 đọc lại và thấy có sự thay đổi http://www.facebook.com/groups/hoclaptrinhweb/ 11 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM IsolationLevel . CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ Thực thi các hoạt động xử lý theo quan điểm giao tác (Transaction) 1 .Giao tác là gì? 2 .Xử lý đối với Local Transaction 3 .Xử lý đối với Distributed Transaction 4 .Các cấp độ cô. CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ 1. Giao tác là gì? • Giao tác được xem như một công việc (không thể phân chia thêm nữa) • Giao tác được xem là thành công khi tất cả các thao tác thực hiện thành công • Giao tác được. CAO HocLapTrinhWeb.COM http://www.facebook.com/groups/hoclaptrinhweb/ 3. Xử lý với Distributed Transaction • B1: Tạo đối tượng TransactionScope • B2: Mở các Connection • B3: Tạo và thực hiện các Command • B4: Nếu thực hiện thành công các Command thì