Manajer Transaksi

Manajer transaksi (TM) adalah instans log. Di KTM, objek TM menentukan log dan beberapa fungsionalitas TM. Biasanya ada banyak objek TM pada simpul tertentu. Resource manager (RM) harus dikaitkan dengan TM tertentu. Ada tiga jenis TM:

  • TM volatil, yang tidak memiliki log.
  • TM reguler, yang memiliki log dan digunakan untuk mengoordinasikan transaksi satu atau beberapa RM.
  • Manajer transaksi yang unggul.

Manajer Transaksi Volatil

TM volatil adalah TM untuk RM baca-saja atau volatil. Ini tidak memiliki log dan tidak mempertahankan status transaksi di seluruh sistem dimulai ulang.

Manajer Transaksi

TM memiliki log, satu atau beberapa RM yang tahan lama atau volatil, atau keduanya. TM akan mempertahankan status transaksi di seluruh sistem dimulai ulang hingga transaksi selesai. Model yang diduga dibatalkan digunakan, sehingga transaksi yang aktif tetapi tidak disiapkan ketika objek TM dimatikan digulung balik. Ketika Anda membuka TM untuk pertama kalinya, Anda harus memulihkan TM dengan memanggil fungsiRecoverTransactionManager.

Manajer Transaksi Superior

TM yang unggul adalah TM untuk TM lainnya. Ini mengoordinasikan transaksi. Ini juga mengeluarkan pemberitahuan TRANSACTION_NOTIFY_PREPARE ke Kernel Transaction Manager (KTM). Contoh TM yang unggul adalah Koordinator Transaksi Terdistribusi Microsoft (DTC). Kemampuan ini dilengkapi dengan tanggung jawab waktu pemulihan tambahan. Selama pemulihan, RM harus terlebih dahulu memanggil fungsiOpenEnlistmentuntuk membuka kembali pendaftaran. Ini juga harus mengirimkan (atau mengirimkan kembali) hasil transaksi jika transaksi dilakukan; gratis untuk memberikan hasil dengan memanggil fungsiCommitTransactionatau fungsiRollbackTransaction. Kewajiban ini tidak berakhir sampai menerima peristiwa pemberitahuan TRANSACTION_NOTIFY_COMMIT_COMPLETE atau TRANSACTION_NOTIFY_ROLLBACK_COMPLETE terkait. Jika TM yang unggul gagal melakukan operasi ini pada waktu pemulihan, KTM akan membersihkan transaksi apa pun yang belum menerima hasil pada akhir fase pemulihan. Namun, ini dapat mengakibatkan hasil transaksi yang tidak konsisten.

Fungsi Manajer Transaksi

Fungsi berikut digunakan dengan manajer transaksi.

Fungsi Deskripsi
CreateTransactionManager Membuat objek manajer transaksi (TM) baru dan mengembalikan handel dengan akses yang ditentukan.
GetCurrentClockTransactionManager Mendapatkan nilai jam virtual dari manajer transaksi.
GetTransactionManagerId Mendapatkan pengidentifikasi untuk manajer transaksi yang ditentukan.
OpenTransactionManager Membuka manajer transaksi yang ada.
RecoverTransactionManager Memulihkan status manajer transaksi dari file lognya.
RollforwardTransactionManager Memulihkan status manajer transaksi dari file lognya ke nilai jam virtual yang ditentukan.