Bagikan melalui


Kemampuan Pemilih dan Bekerja dengan Properti Komponen

Bekerja dengan komponen yang dipilih secara implisit memerlukan akses ke Dokumen Komponen Cadangan dan Dokumen Metadata Penulis.

Ada dua alasan untuk ini:

  • Data komponen yang disimpan dalam Dokumen Komponen Cadangan (diwakili oleh antarmuka IVssComponent ) tidak memiliki akses ke informasi kumpulan file komponen—spesifikasi file, jalur, dan bendera rekursi. (Lihat Bekerja dengan Dokumen Komponen Cadangan.)
  • Hanya komponen yang disertakan secara eksplisit dalam Dokumen Komponen Cadangan selama pencadangan yang menyimpan informasinya secara langsung dalam Dokumen Komponen Cadangan. Pemohon dan penulis harus menggunakan informasi yang tersedia melalui antarmuka IVssComponent , bersama dengan informasi jalur logis dan Dokumen Metadata Penulis untuk mendapatkan informasi tentang, dan mengatur properti komponen yang disertakan secara implisit .

Kasus "MyWriter" yang dibahas dalam Logical Pathing of Components dapat digunakan untuk mengilustrasikan keterpilihan untuk pencadangan.

Nama Komponen Jalur logika Dapat dipilih untuk pencadangan Dapat dipilih untuk pemulihan Disertakan secara eksplisit
"Executables" "" N N Y
"ConfigFiles" "Executables" N N Y
"LicenseInfo" "" Y N Y
"Keamanan" "" Y N Y
"UserInfo" "Keamanan" N N N
"Sertifikat" "Keamanan" N N N
"writerData" "" Y Y Y
"Set1" "writerData" N Y N
"Jan" "writerData\Set1" N N N
"Des" "writerData\Set1" N N N
"Set2" "writerData" N Y N
"Jan" "writerData\Set2" N N N
"Des" "writerData\Set2" N N N
"Kueri" "writerData\QueryLogs" N N N
"Penggunaan" "writerData" Y Y N
"Jan" "writerData\Usage" N N N
"Des" "writerData\Usage" N N N

 

Komponen yang Disertakan Secara Implisit dalam Kumpulan Cadangan

Saat memeriksa Dokumen Metadata Penulis penulis (lihat IVssBackupComponents::GetWriterMetadata) selama pencadangan, pemohon harus menyimpan daftar semua komponen, jalur logisnya, dan informasi kumpulan file mereka.

Kumpulan file dan informasi file yang dikecualikan akan diperlukan untuk menentukan daftar file untuk komponen apa pun yang disertakan (secara eksplisit atau implisit).

Untuk komponen cadangan yang tidak dapat dipilih tanpa dapat dipilih untuk leluhur cadangan dan dapat dipilih untuk komponen cadangan yang tidak menentukan set komponen, hanya set file dan informasi file yang dikecualikan yang akan diperlukan untuk mengidentifikasi semua kandidat komponen untuk pencadangan, karena komponen ini tidak menentukan subkomponen.

Untuk pemilihan yang disertakan secara eksplisit untuk komponen cadangan yang menentukan set komponen, set file dan mengecualikan informasi file baik untuk komponen yang menentukan dan semua subkomponen perlu digunakan untuk memilih file untuk cadangan.

Ini berarti bahwa set cadangan untuk komponen "Executables", "ConfigFiles", dan "LicenseInfo" hanya dapat ditemukan dengan memeriksa metadata penulis hanya untuk komponen-komponen ini menggunakan instans antarmuka IVssWMComponent mereka.

Namun, jika writerData secara eksplisit disertakan dalam cadangan, Anda harus memeriksa instans antarmuka IVssWMComponent dan yang untuk "Set1", "Jan" (dengan jalur logis "writerData\Set1"), "Dec" (dengan jalur logis "writerData\Set1"), "Set2", "Jan" (dengan jalur logis "writerData\Set2"), "Dec" (dengan jalur logis "writerData\Set2"), "Query", "Usage", "Jan" (dengan jalur logis "writerData\Usage"), dan "Dec" (dengan jalur logis "writerData\Usage").

Untuk melakukan ini, pemohon harus terlebih dahulu mengidentifikasi bahwa komponen "writerData" (jalur logis "") dapat dipilih. Kemudian harus memindai semua komponen lain yang dikelola oleh penulis untuk menentukan apakah elemen pertama dalam jalur logis mereka adalah "writerData". Komponen-komponen yang memiliki "writerData" sebagai anggota terkemuka dari jalur logis mereka diidentifikasi sebagai subkomponen "writerData" dan secara implisit dipilih ketika dipilih secara eksplisit.

Bahkan, pemindaian serupa perlu dilakukan untuk menentukan bahwa tidak ada komponen yang memiliki "LicenseInfo" sebagai anggota utama jalur logisnya, dan dengan demikian "LicenseInfo" tidak memiliki subkomponen.

Karena kompleksitas mekanisme ini di VSS, banyak penulis pemohon mungkin merasa berguna untuk membuat struktur mereka sendiri untuk menyimpan komponen dan informasi set cadangan untuk komponen yang ditambahkan secara eksplisit dan implisit.

Properti Komponen yang Disertakan Secara Implisit

Selama operasi pemulihan dan pencadangan, instans antarmuka IVssComponent dan IVssBackupComponents digunakan baik untuk mengambil informasi tentang komponen, dan untuk mengatur atau mengubah properti komponen. Namun, hanya komponen yang secara eksplisit disertakan yang akan memiliki instans antarmuka IVssComponent atau dapat diakses oleh antarmuka IVssBackupComponents .

Beberapa properti adalah komponen-set-wide dalam cakupan. Properti ini mencakup hal-hal berikut:

  • Status pencadangan dan pemulihan:

IVssBackupComponents::SetBackupSucceeded
IVssComponent::GetBackupSucceeded
IVssBackupComponents::SetFileRestoreStatus
IVssComponent::GetFileRestoreStatus

  • Opsi pencadangan dan pemulihan:

IVssBackupComponents::SetBackupOptions
IVssComponent::GetBackupOptions
IVssBackupComponents::SetRestoreOptions
IVssComponent::GetRestoreOptions

  • Pesan kegagalan:

IVssComponent::SetPostRestoreFailureMsg
IVssComponent::SetPreRestoreFailureMsg
IVssComponent::SetPostRestoreFailureMsg
IVssComponent::SetPreRestoreFailureMsg

  • Pulihkan target:

IVssComponent::SetRestoreTarget
IVssComponent::GetRestoreTarget

  • Stempel cadangan:

IVssComponent::SetBackupStamp
IVssComponent::GetBackupStamp

  • Metadata tambahan:

IVssComponent::SetRestoreMetadata
IVssComponent::GetRestoreMetadata
IVssComponent::SetBackupMetadata
IVssComponent::GetBackupMetadata

Oleh karena itu, Anda menggunakan instans antarmuka IVssComponent dari anggota yang menentukan set komponen atau menggunakan nama, jenis, dan jalur logis anggota yang menentukan dengan metode IVssBackupComponents untuk mengatur atau mengambil properti untuk semua anggota set komponen.

Untuk alasan ini, set komponen diperlakukan sebagai unit. Misalnya, pencadangan set komponen berhasil hanya jika cadangan semua set file dari semua komponennya berhasil.

Dalam contoh sebelumnya, misalkan satu file dalam komponen "Jan" (dengan jalur logis "writerData\Set2") adalah anggota set komponen yang ditentukan oleh "writerData". Jika salah satu file "Jan"gagal dicadangkan, pemohon akan menggunakan informasi "writerData"(namanya "writerData", jalurnya "", dan jenis komponennya) sebagai argumen saat mengatur IVssBackupComponents::SetBackupSucceeded dengan false untuk menunjukkan kegagalan set komponen.

Demikian pula, status yang dikembalikan oleh IVssComponent::GetBackupSucceeded untuk instans "writerData"dari antarmuka IVssComponent tidak hanya berlaku untuk "writerData" tetapi juga untuk semua subkomponennya.

Selain itu, jika penulis memilih untuk mengubah target pemulihan menggunakan IVssComponent::SetRestoreTarget dari instans IVssComponent "writerData", yang akan mengubah target pemulihan untuk semua set file dari semua subkomponen "writerData".

Properti berikut ini tidak berlaku di seluruh komponen, tetapi untuk file atau set file tertentu:

  • Pemetaan lokasi alternatif:

IVssBackupComponents::AddAlternativeLocationMapping
IVssComponent::GetAlternateLocationMapping
IVssComponent::GetAlternateLocationMappingCount

  • File yang berbeda:

IVssComponent::AddDifferencedFilesByLastModifyTime
IVssComponent::GetDifferencedFile
IVssComponent::GetDifferencedFilesCount

  • File parsial:

IVssComponent::AddPartialFile
IVssComponent::GetPartialFile
IVssComponent::GetPartialFileCount

  • Target yang diarahkan:

IVssComponent::AddDirectedTarget
IVssComponent::GetDirectedTarget
IVssComponent::GetDirectedTargetCount

  • Target baru:

IVssBackupComponents::AddNewTarget
IVssComponent::GetNewTarget
IVssComponent::GetNewTargetCount

Ketika pemohon mengakses fitur-fitur ini untuk subkomponen menggunakan antarmuka IVssBackupComponents , pemohon menggunakan informasi komponen untuk komponen yang menentukan set komponen, tetapi file atau informasi set file untuk subkomponen.

Demikian juga, jika properti dapat diakses melalui antarmuka IVssComponent, instans yang sesuai dengan subkomponen yang menentukan digunakan, tetapi argumen file atau set file diambil dari subkomponen.

Misalnya, subkomponen "Jan" (dengan jalur logis "writerData\Set2") memiliki set file dengan jalur "c:\fred", spesifikasi file "*.dat", dan bendera rekursif true mungkin harus dipulihkan ke lokasi alternatif.

Jika demikian, pemohon akan memanggil IVssBackupComponents::AddAlternativeLocationMapping, menggunakan informasi "writerData"(jenis komponen, nama komponen "writeData", dan jalur logis "") bersama dengan informasi set file "Jan"(jalur "c:\fred", spesifikasi file "*.dat", dan rekursi sama dengan true).

Perhatikan bahwa dalam hal ini informasi set file harus sama persis dengan informasi set file yang digunakan oleh IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles, atau IVssCreateWriterMetadata::AddDatabaseLogFiles untuk menambahkan file ke Jan.

Demikian pula, jika penulis ingin menambahkan target yang diarahkan ke file dengan jalur "c:\ethel" dan nama "lucy.dat" yang dikelola oleh "Jan" (dengan jalur logis "writerData\Set2"), ia akan menggunakan instans IVssComponent yang sesuai dengan "writerData", tetapi informasi file "Jan".

Komponen yang Disertakan Secara Implisit dalam Kumpulan Pemulihan

Komponen yang secara implisit disertakan dalam cadangan dapat secara eksplisit disertakan dalam pemulihan jika dapat dipilih untuk pemulihan. Seperti yang disebutkan dalam Bekerja dengan Keterpilihan untuk Pemulihan dan Subkomponen, komponen tersebut ditambahkan ke Dokumen Komponen Cadangan menggunakan metode IVssBackupComponents::AddRestoreSubcomponent .

Namun, ini tidak membuat instans baru antarmuka IVssComponent , juga bukan komponen yang dapat diakses langsung melalui antarmuka IVssBackupComponents .

Sebaliknya, komponen yang secara eksplisit disertakan untuk pemulihan, tetapi secara implisit disertakan untuk pencadangan, harus diakses melalui instans antarmuka IVssComponent yang sesuai dengan komponen yang menentukan kumpulan komponen yang merupakan anggotanya saat pencadangan.

Misalnya, untuk secara eksplisit menyertakan untuk memulihkan "Set1", subkomponen yang dapat dipilih untuk komponen cadangan "writerData", Anda akan mendapatkan informasi tentang hal itu dengan memanggil metode IVssComponent::GetRestoreSubcomponent dari instans "writerData"dari antarmuka IVssComponent .