Dasar-Dasar Transaksi

Transaksi mengikat beberapa tugas bersama-sama. Misalnya, bayangkan bahwa aplikasi melakukan dua tugas. Pertama, ini membuat tabel baru dalam database. Selanjutnya, ini memanggil objek khusus untuk mengumpulkan, memformat, dan menyisipkan data ke dalam tabel baru. Kedua tugas ini terkait dan bahkan saling bergantung, sehingga Anda ingin menghindari pembuatan tabel baru kecuali Anda dapat mengisinya dengan data. Menjalankan kedua tugas dalam cakupan satu transaksi memberlakukan koneksi di antara mereka. Jika tugas kedua gagal, tugas pertama digulung balik ke titik sebelum tabel baru dibuat.

Untuk memastikan perilaku yang dapat diprediksi, semua transaksi harus memiliki properti ACID dasar (atom, konsisten, terisolasi, dan tahan lama). Properti-properti ini memperkuat peran transaksi krusial misi sebagai proposisi semua atau tidak ada. Untuk informasi selengkapnya tentang ACID, silakan lihat Properti ACID. Singkatnya, ACID menjamin bahwa sekumpulan tugas terkait berhasil atau gagal sebagai unit. Dalam terminologi pemrosesan transaksi, transaksi mengonfirmasi atau membatalkan. Agar transaksi berhasil, semua peserta harus menjamin bahwa setiap perubahan pada data akan permanen. Perubahan harus tetap ada meskipun terjadi crash pada sistem atau terjadi peristiwa tak terduga lainnya. Jika bahkan satu peserta gagal membuat jaminan ini, seluruh transaksi gagal. Semua perubahan pada data dalam cakupan transaksi digulung balik ke titik yang ditetapkan tertentu.

Transaksi dapat terbatas pada satu sumber daya data, seperti database atau antrean pesan. Dalam skenario ini, transaksi lokal dikelola oleh Manajer Transaksi yang disediakan oleh System.Transactions , yang menghasilkan perolehan performa. Dikontrol oleh sumber daya data, transaksi ini efisien dan mudah dikelola.

Transaksi juga dapat mencakup beberapa sumber daya data. Transaksi terdistribusi memberi Anda kemampuan untuk menggabungkan beberapa operasi berbeda yang terjadi pada sistem yang berbeda ke dalam satu tindakan lulus atau gagal. Dalam skenario ini, transaksi dikoordinasikan oleh Koordinator Transaksi Terdistribusi Microsoft (MSDTC) yang berada di setiap sistem.

Ketika Anda mengembangkan aplikasi transaksional menggunakan kelas yang disediakan oleh System.Transactions, Anda tidak perlu khawatir tentang jenis transaksi apa yang Anda butuhkan, atau manajer transaksi yang terlibat. Infrastruktur System.Transactions secara otomatis mengelolanya untuk Anda.

Saat membuat transaksi, Anda dapat menentukan tingkat isolasi yang berlaku untuk transaksi. Tingkat isolasi, yang didefinisikan oleh IsolationLevel enum, menentukan tingkat akses yang akan dimiliki oleh transaksi lain ke data yang terpengaruh oleh transaksi Anda.

Anda dapat membuat transaksi menggunakan ADO.NET, System.EnterpriseServices, atau model pemrograman transaksional yang disediakan oleh namespace System.Transactions. Topik Fitur yang Disediakan oleh System.Transactions membahas fitur yang dapat Anda gunakan untuk membuat aplikasi transaksional menggunakan System.Transactions namespace.

Lihat juga