Bagikan melalui


Bekerja Dengan Transaksi

Penulis aplikasi dapat membuat perubahan kode sumber kecil untuk menambahkan file yang ditransaksikan dan operasi registri menggunakan Kernel Transaction Manager (KTM). Biasanya, ini akan melibatkan pembuatan transaksi dan meneruskan handel ke fungsi lain yang disediakan oleh sumber daya transaksional seperti Transactional NTFS dan Transacted Registry.

KTM menyediakan mekanisme bagi aplikasi Anda untuk berpartisipasi dalam transaksi serta menulis manajer sumber daya transaksi anda sendiri. Ada fungsi yang memungkinkan Anda membuat, mengelola, dan bekerja dengan empat kelas objek kernel: transaksi, manajer transaksi, manajer sumber daya, dan pendaftaran. Jika Anda hanya menggunakan transaksi, Anda hanya perlu bekerja dengan objek transaksi dan menggunakan fungsi-fungsi ini:

Jangan pernah menganggap transaksi aktif. Transaksi dapat digulung balik karena berbagai alasan dan kapan saja.

Windows mengekspos antarmuka berbasis handel ke sumber daya sistem. Untuk bekerja dengan objek sistem operasi, aplikasi pertama-tama meminta handel ke objek , lalu menggunakan handel ini dalam panggilan fungsi berikutnya untuk mengakses atau memodifikasi objek. Handel biasanya dapat dibuka dalam mode yang berbeda; mode yang ditentukan mempengaruhi semantik panggilan fungsi berikutnya. Misalnya, handel file yang dibuka oleh panggilan ke CreateFile dengan bendera dwDesiredAccess diatur ke GENERIC_READ tidak dapat digunakan dalam panggilan yang mengubah file.

Anda dapat berkoordinasi dengan sumber daya mode pengguna Koordinator Transaksi Terdistribusi seperti SQL atau MSMQ, dan dengan sumber daya mode kernel yang menggunakan KTM. Pertama, buat transaksi DTC, atau objek System.Transactions , lalu panggil objek IKernelTransaction , tempat Anda dapat memperoleh handel KTM. Objek IKernelTransaction membuat transaksi KTM yang merupakan subordinat transaksi DTC. Dengan handel ini, Anda dapat membuat objek yang ditransaksikan, tetapi memberi sinyal hasil transaksi menggunakan DTC atau System.Transactions.