Transaksi
Transaksi adalah objek yang mendefinisikan unit kerja logis. Transaksi masih hidup selama ada handel yang merujuk pada transaksi dan dianggap aktif jika transaksi belum dilakukan atau digulung balik. Jika transaksi dibuat dan semua handel ke transaksi telah ditutup sebelum penerapan atau pembatalan terjadi, transaksi akan digulung balik.
Pertimbangkan kasus klien transaksional mode pengguna yang membuat transaksi untuk mencakup operasinya, lalu melakukan pembaruan pada satu atau beberapa manajer sumber daya. Berikut ini terjadi:
Klien memanggil fungsi CreateTransaction untuk membuat transaksi dan menerima handel untuk transaksi tersebut sebagai nilai pengembalian.
Transaksi dapat dibuka atau diwarisi oleh sejumlah proses; setiap proses dengan demikian terlibat dalam transaksi. Kegagalan salah satu proses ini akan menyebabkan transaksi dibatalkan.
Transaksi ini mungkin belum persisten. Hanya transaksi yang telah mencapai status yang disiapkan yang harus dipulihkan di seluruh kegagalan sistem jika transaksi menggunakan pengelogan yang diduga dibatalkan.
Klien harus meneruskan transaksi ke manajer sumber daya secara eksplisit.
Klien melakukan semua operasi transaksi dengan satu atau beberapa RM, seperti sistem file yang ditransaksikan.
Klien memanggil fungsi CommitTransaction .
Manajer sumber daya menerima pemberitahuan dari KTM untuk menyiapkan dan menerapkan datanya.
Transaksi tidak sama dengan utas. Beberapa utas atau proses dapat menjadi bagian dari satu transaksi. Sebaliknya, utas dapat menjadi bagian dari beberapa transaksi yang berbeda pada waktu yang berbeda.
Fungsi berikut digunakan dengan transaksi.
Fungsi | Deskripsi |
---|---|
CommitTransaction | Meminta agar transaksi yang ditentukan dilakukan. |
CommitTransactionAsync | Meminta agar transaksi yang ditentukan dilakukan. |
CreateTransaction | Membuat objek transaksi baru. |
GetTransactionInformation | Mengembalikan informasi yang diminta tentang transaksi yang ditentukan. |
OpenTransaction | Membuka transaksi yang ada. |
RollbackTransaction | Meminta agar transaksi yang ditentukan digulung balik. |
RollbackTransactionAsync | Meminta agar transaksi yang ditentukan digulung balik. Fungsi ini mengembalikan secara asinkron. |
SetTransactionInformation | Mengatur informasi transaksi untuk transaksi yang ditentukan. |