CVssWriter::Metode OnFreeze (vswriter.h)

Metode OnFreeze dipanggil oleh penulis pada penerimaan peristiwa Freeze di awal pembekuan salinan bayangan. Penulis menggunakan metode ini untuk melakukan operasi yang diperlukan untuk berpartisipasi dalam pembekuan atau veto pembeku.

OnFreeze adalah metode virtual murni. Ini tidak diimplementasikan oleh kelas dasar CVssWriter , dan harus diimplementasikan oleh kelas turunan.

Sintaks

bool OnFreeze();

Mengembalikan nilai

Implementasi metode ini harus mengembalikan true kecuali dalam kasus kesalahan fatal. Jika terjadi kesalahan fatal, metode harus memanggil metode CVssWriter::SetWriterFailure untuk memberikan deskripsi kegagalan sebelum mengembalikan false. Jika terjadi kesalahan nonfatal, metode harus tetap memanggil SetWriterFailure tetapi mengembalikan true. Jika kesalahan disebabkan oleh masalah sementara, metode harus menentukan VSS_E_WRITERERROR_RETRYABLE dalam panggilan ke SetWriterFailure.

Dalam semua kasus ketika kegagalan terjadi, metode harus menulis peristiwa ke log peristiwa untuk melaporkan alasan pasti kegagalan tersebut.

Keterangan

Dalam metode ini, aplikasi penulis harus menempatkan dirinya ke dalam keadaan yang terdefinisi dengan baik yang kompatibel dengan operasi VSS.

Dalam metode ini, penulis harus menyelesaikan persiapan akhir untuk mendukung pembuatan salinan bayangan. Setelah salinan bayangan dibuat, penulis akan menerima peristiwa Thaw dan dapat melanjutkan operasi normal.

Secara default, jendela waktu habis antara peristiwa Freeze dan Thaw adalah 60 detik. Artinya, jika peristiwa Thaw tidak diterima dengan jendela waktu habis, peristiwa Batalkan akan dihasilkan. Penulis dapat mengubah jendela waktu habis pada waktu inisialisasi dengan mengatur argumen dwTimeoutFreeze ke CVssWriter::Initialize.

Bagaimana penulis mempersiapkan salinan bayangan sangat tergantung pada aplikasi yang menghostingnya. Beberapa aplikasi mampu menyimpan semua tulisan dan menyimpan data dalam keadaan absolut yang konsisten untuk periode ini. Aplikasi lain, seperti banyak database, tidak dapat berhenti bekerja selama periode ini tetapi dapat mengambil tindakan, seperti titik pemeriksaan statusnya, yang dapat mengurangi waktu pemulihan untuk salinan bayangan yang dibuat selama jendela ini.

Jika penulis tidak dapat menempatkan dirinya ke dalam keadaan yang terdefinisi dengan baik untuk Freeze, hal berikut terjadi:

  1. OnFreeze harus mengembalikan false, mem-veto salinan bayangan.
  2. Penulis memanggil CVssWriter::SetWriterFailure untuk memberikan deskripsi kegagalan.
  3. Peristiwa Pembatalan akan dihasilkan setelah OnFreeze mengembalikan false
Penulis tidak boleh melempar pengecualian dari metode ini atau CVssWriter (Ex): : Pada metode panggilan balikXxx .

Jendela waktu habis untuk menangani peristiwa Freeze biasanya relatif singkat dibandingkan dengan itu untuk menangani peristiwa PrepareForSnapshot . Oleh karena itu, pengembang harus menghindari operasi yang panjang dalam metode ini. Penggunaan umum mungkin untuk menangguhkan pengelogan oleh penulis.

Disarankan agar semua operasi yang memakan waktu ditangani oleh CVssWriter::OnPrepareSnapshot.

CVssWriter::OnThaw atau CVssWriter::OnAbort akan dipanggil setelah metode ini.

Jika metode ini memanggil metode CVssWriterEx2::GetSessionId, CVssWriter::SetWriterFailure, atau CVssWriterEx2::SetWriterFailureEx , metode harus melakukannya dalam utas yang sama yang memanggil metode ini. Untuk informasi selengkapnya, lihat Penanganan Peristiwa Penulis.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header vswriter.h (termasuk Vss.h, VsWriter.h)
Pustaka VssApi.lib

Lihat juga

CVssWriter

CVssWriter::OnAbort

CVssWriter::OnPreRestore

CVssWriter::OnPrepareBackup

CVssWriter::OnPrepareSnapshot

CVssWriter::OnThaw

CVssWriter::SetWriterFailure