Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Giao dịch ngoại lệ ném ngoại lệ nền tảng này không hỗ trợ các giao dịch phân tán trong khi mở đối tượng kết nối

.NET Core không hỗ trợ Giao dịch phân tán vì nó sẽ yêu cầu một trình quản lý giao dịch khác nhau trên mỗi nền tảng. Nó có thể xuất hiện trong tương lai (đây là sự cố đang diễn ra), nhưng hiện tại, bất kỳ Giao dịch nào yêu cầu hai trình quản lý tài nguyên khác nhau sẽ đưa ra ngoại lệ này.

Thay vào đó, bạn có thể điều phối các giao dịch riêng biệt. Yêu cầu hai giao dịch riêng biệt hoàn thành công việc của họ, và sau đó cam kết cả hai. Có một khả năng rằng cam kết đầu tiên thành công và cam kết thứ hai không thành công, nhưng đối với SQL Server, đó sẽ là một điều rất hiếm khi xảy ra. Một cái gì đó như:

            _db1UOW.Begin(); //creating sql transaction
            await _db1UOW.IDenialDetailsRepositorydb1.InsertDenialDetails(denialsDetails);
            await _db1UOW.IRuleDetailsRepositorydb1.InsertRulesDetails(rulesDetails);

            _db2UOW.Begin(); //creating sql transaction 
            await _db2UOW.IRuleDetailsRepository.GetRulesDetails();
            await _db2UOW.IDenialDetailsRepository.InsertDenialDetails(denialsDetails);
            var data = await _db2UOW.IRuleDetailsRepository.InsertRulesDetails(rulesDetails);

            _db1UOW.Commit(); //commitng sql transaction
            try
            {
               _db2UOW.Commit(); //commitng sql transaction
            }
            catch (Exception ex)
            {
               LogError("Second transaction failed to commit after first one committed.  Administrators may need to fix stuff");
               throw;
            }

Hoặc nếu hai cơ sở dữ liệu nằm trên cùng một máy chủ, bạn có thể sử dụng các truy vấn cơ sở dữ liệu chéo với một SqlConnection duy nhất để tranh thủ các thay đổi trong một giao dịch SQL Server.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhật ký giao dịch cho cơ sở dữ liệu đã đầy

  2. Thứ tự có điều kiện T-SQL theo

  3. Gửi email có tệp đính kèm trong SQL Server (T-SQL)

  4. Khái niệm cơ bản về tham gia bên trong máy chủ SQL với các ví dụ

  5. Cách cài đặt SQL Server trên Windows