Bagikan melalui


Fundamental Transaksi

Transaksi mengikat banyak tugas secara bersama-sama. Misalnya, bayangkan sebuah aplikasi melakukan dua tugas. Pertama, aplikasi membuat tabel baru dalam database. Selanjutnya, aplikasi memanggil objek khusus untuk mengumpulkan, memformat, dan memasukkan 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. Mengeksekusi kedua tugas dalam lingkup satu transaksi akan memaksa koneksi di antara keduanya. Jika tugas kedua gagal, tugas pertama dikembalikan ke titik sebelum tabel baru dibuat.

Untuk memastikan perilaku yang dapat diprediksi, semua transaksi harus memiliki properti ACID dasar (atomik, konsisten, terisolasi, dan tahan lama). Properti ini memperkuat peran transaksi mission-critical sebagai proposisi all-or-none. Untuk informasi selengkapnya tentang ACID, silakan baca Properti ACID . Singkatnya, ACID menjamin bahwa sekumpulan tugas terkait berhasil atau gagal sebagai satu unit. Dalam terminologi pemrosesan transaksi, transaksi dapat diterapkan atau dibatalkan. Agar transaksi dapat diterapkan, semua peserta harus menjamin bahwa setiap perubahan data akan bersifat 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 ruang lingkup transaksi dikembalikan ke titik set tertentu.

Sebuah transaksi dapat dibatasi pada satu sumber data, seperti database atau antrean pesan. Dalam skenario ini, transaksi lokal dikelola oleh Manajer Transaksi yang disediakan oleh System.Transactions, yang menghasilkan peningkatan performa. Dikendalikan oleh sumber data, transaksi ini efisien dan mudah dikelola.

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

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

Saat Anda membuat transaksi, Anda dapat menentukan tingkat isolasi yang berlaku untuk transaksi tersebut. Tingkat isolasi, yang ditentukan oleh enum IsolationLevel, menentukan tingkat akses apa yang akan dimiliki 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 menulis aplikasi transaksi menggunakan namespace System.Transactions.

Lihat juga