2009-02-03 21 views
12

Có cách nào để xác định chính xác lý do tại sao một System.Transaction TrasactionScope đang được chuyển đến DTC không? Chúng tôi đang va chạm với một trong các thành phần của chúng tôi dường như làm tăng giao dịch trong khi tất cả các thành phần khác (có vẻ tương tự như deceptively) không leo thang.Theo dõi lý do giao dịch được chuyển đến DTC

Có bất kỳ thông tin nào có sẵn về lý do leo thang và cách chúng có thể được tìm thấy và quan sát không? SQL Profiler? Tệp nhật ký? Hay tôi không may mắn về điều này?

UPDATE: Tôi đang chạy với SQL Server 2005 để biết

+0

Giả sử cơ sở dữ liệu là SQL 2005 hoặc SQL 2008? – Kev

Trả lời

7

Bạn có thể thử tắt dịch vụ Bộ phân phối giao dịch phân tán và đặt loại khởi động thành vô hiệu hóa. Điều này sẽ gây ra một ngoại lệ khi giao dịch được quảng cáo sẽ có mã sự cố trong ngăn xếp cuộc gọi.

Tất nhiên điều này sẽ không hữu ích nếu bạn có các mục khác đang chạy trên máy yêu cầu dịch vụ này, nhưng có thể thực hiện trên máy gỡ lỗi.

+0

Đánh dấu câu trả lời được chấp nhận này vì nó thực sự đã giúp tôi theo dõi vấn đề (được gây ra bởi một kết nối thứ hai được mở ra, giống như Anton đề cập trong http://stackoverflow.com/questions/506733/trace-why-a-transaction-is-escalated-to-dtc/506753#506753) –

9

Khi sử dụng TransactionScope một giao dịch được leo thang bất cứ khi nào ứng dụng mở một kết nối thứ hai (thậm chí đến cơ sở dữ liệu tương tự) trong Phạm vi giao dịch trong câu hỏi.

+0

Thông tin khác: http://stackoverflow.com/questions/1690892/transactionscope-automatically-escalating-to-msdtc-on-some-machines –

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