Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 25464|Jawab: 0

[Sumber] .net/C# TransactionScope Terdistribusi

[Salin tautan]
Diposting pada 05/05/2018 10.53.17 | | | |
Untuk mengutip panduan orang lain:
Dalam pekerjaan pengembangan aktual, jalankan peristiwa, lalu panggil antarmuka lain untuk menyisipkan data, jika ada pengecualian dalam logika pemrosesan, maka data yang disisipkan sebelumnya akan menjadi data sampah,
Yang kita inginkan adalah dapat mendefinisikan seluruh metode sebagai transaksi, dan kelas TransactionScope menyediakan metode sederhana yang memungkinkan Anda tidak perlu berinteraksi dengan transaksi itu sendiri.
untuk menandai blok kode sebagai berpartisipasi dalam transaksi. Objek TransactionScope membuat transaksi dan mengatur transaksi ke properti Current dari kelas Transaksi.

1. Keuntungan dari TransactionScope
1. Lebih nyaman digunakan. TransactionScope dapat mengimplementasikan transaksi implisit, sehingga Anda dapat menulis kode lapisan akses data tanpa mempertimbangkan transaksi, tetapi mengontrol transaksi di lapisan bisnis.
2. Transaksi terdistribusi dapat diimplementasikan, seperti cross-database atau MSMQ.

2. Kekurangan TransactionScope
1. Kinerja biaya tidak tinggi. Misalnya, Anda hanya mengontrol transaksi library di "Cakupan". Menggunakan "TransactionScope" agak boros.
2. Dalam keadaan normal, selama Anda menggunakan "TransactionScope", Anda perlu mengonfigurasi MSDTC, menginstal firewall, dan membuka port 139. Port ini tidak dapat diubah

3. Jika Anda harus menggunakan transaksi terdistribusi, Anda harus memikirkannya
1. Apakah operasi ini harus dalam transaksi? Jika langkah ini tidak selesai atau gagal, apakah layak untuk mengembalikan seluruh transaksi? Apakah tidak ada kompensasi yang elegan atau tindakan toleransi kesalahan?
2. Berapa banyak poin yang melibatkan transaksi terdistribusi? Harus memiliki serangkaian besar operasi real-time? Tidak bisakah Anda merampingkan beberapa poin melalui operasi notifikasi?
3. Setelah memulai transaksi terdistribusi, apakah Anda melakukan operasi agnostik transaksi, meskipun operasi ini tidak terkait dengan transaksi? (misalnya, membaca data, menghitung, menunggu pengguna mengembalikan pesan, menunggu panggilan kembali modul lain, dll.)
4. Anda tidak menghitung beberapa operasi membaca dalam transaksi, bukan? Ini adalah kesalahan yang mudah dilakukan ketika Anda mendaftarkan operasi pilihan dalam transaksi.
5. Beberapa langkah operasi Anda dapat dijalankan setelah semua operasi selesai. Jenis operasi ini memiliki karakteristik pemberitahuan yang jelas. Operasi pemberitahuan mengatakan, saya memberi Anda pemberitahuan, dan saya menjamin bahwa pemberitahuan tersebut akan sampai kepada Anda;
Anda harus mengambil pemberitahuan ini dan memastikan bahwa itu diproses, tetapi Anda tidak perlu menghadapinya segera setelah saya memberi tahu Anda. Operasi ini jelas dapat dilakukan dengan tugas lain.

4. Perhatikan poin-poin berikut saat menggunakan transaksi terdistribusi
1: Pastikan mesin yang berpartisipasi dalam transaksi telah mengaktifkan dukungan transaksi terdistribusi.
2: Jika mesin memiliki firewall yang diaktifkan, Anda perlu mengatur proses msdtc sebagai pengecualian.
3: Mesin yang berpartisipasi dalam transaksi tidak dapat melintasi domain (jika lintas domain, Microsoft tidak memiliki solusi yang tepat saat ini);
4: Gunakan transaksi terdistribusi hanya jika Anda memiliki beberapa database, jika itu adalah database yang sama, yang terbaik adalah menggunakan SqlTransaction.
1. Tambahkan referensi System.Transactions terlebih dahulu (Anda perlu menambahkan rakitan Net)

Kode pada panggilan C# adalah sebagai berikut:

Alamat blog yang menjelaskan kelas transaksi terdistribusi ini sangat jelas:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html

2. Atur server web dan konfigurasi lingkungan server SQL

Panel Kontrol - Sistem & Keamanan > - Alat Manajemen > - Layanan Komponen >
(Ini diperlukan untuk server WEB dan SQL)





Panel Kontrol - Sistem & Keamanan > - Alat Manajemen > - Layanan >
(Ini diperlukan untuk server WEB dan SQL)




Panel Kontrol - Sistem & Keamanan > - > Windows Firewall
(Ini diperlukan untuk server WEB dan SQL)




3. Konfigurasi MSSQL

Untuk koneksi server, klik kanan - > properti




4. Konfigurasikan Host (hanya konfigurasikan server WEB, jika tidak, konfigurasikan juga di server SQL)

C:\Windows\System32\drivers\etc
hosts, yang dibuka dengan Notepad
(Informasi server SQL perlu dikonfigurasi dalam file Hosts di server WEB)
(Jika pengujian gagal, konfigurasikan informasi server web dalam file Hosts di server SQL)






Mantan:Pranala eksternal ke posting forum Diskuz X menambahkan atribut nofollow
Depan:Fungsi yang menyimpan dua tempat desimal setelah titik desimal di C# dan cara menggunakannya
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com