Rumah > pembangunan bahagian belakang > C++ > Mengapa TransactionScope Meningkat kepada MSDTC pada Beberapa Mesin tetapi Bukan Lain?

Mengapa TransactionScope Meningkat kepada MSDTC pada Beberapa Mesin tetapi Bukan Lain?

Linda Hamilton
Lepaskan: 2025-01-26 18:16:12
asal
333 orang telah melayarinya

Why Does TransactionScope Escalate to MSDTC on Some Machines but Not Others?

Transactionscope dan MSDTC: tingkah laku tidak konsisten merentasi mesin

Isu:

A .NET Application menggunakan

mempamerkan tingkah laku yang tidak konsisten mengenai peningkatan MSDTC. Pada sesetengah mesin pemaju, urus niaga secara automatik meningkat kepada Microsoft Distributed Transaksi Penyelaras (MSDTC), yang memerlukan MSDTC diaktifkan. Pada yang lain, kod yang sama berfungsi dengan betul tanpa MSDTC. TransactionScope

Konteks:

  • Menguruskan akses data dalam urus niaga. TransactionScope
  • pengaktifan MSDTC diperlukan pada mesin tertentu untuk mengelakkan kesilapan.
  • Masalah timbul apabila menggunakan dua sambungan pangkalan data dalam satu
  • tunggal. Percubaan sambungan kedua mencetuskan peningkatan MSDTC pada sistem yang terjejas. TransactionScope

Penyiasatan:

Andaian awal mengenai percanggahan versi SQL Server (2005 vs 2008) terbukti salah. Sebab akar terletak pada batasan SQL Server 2005: ia tidak menyokong pelbagai sambungan dalam satu

, tanpa mengira urutan pembukaan mereka. Mencuba peningkatan kuasa kedua. SQL Server 2008, sebaliknya, membenarkan pelbagai sambungan dalam TransactionScope, dengan syarat mereka tidak dibuka secara serentak. Penutupan dan pembukaan semula sambungan pramatang, berpotensi melalui lapisan penyatuan dan lapisan akses data (seperti TransactionScope), juga boleh mencetuskan peningkatan dalam SQL Server 2005. SqlTableAdapter

Resolusi:

Untuk SQL Server 2005, mengekalkan sambungan terbuka tunggal, global, terbuka sepanjang transaksi menghalang peningkatan MSDTC. Walau bagaimanapun, ini menyimpang dari amalan terbaik yang menganjurkan pengurusan sambungan yang cekap (pembukaan dan penutupan seperti yang diperlukan). Menaik taraf ke SQL Server 2008 atau lebih baru adalah penyelesaian yang disyorkan untuk mengelakkan batasan ini dan mengekalkan amalan terbaik.

Atas ialah kandungan terperinci Mengapa TransactionScope Meningkat kepada MSDTC pada Beberapa Mesin tetapi Bukan Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan