Übersicht über die Bereinigung und Beendigung der Wiederherstellung
Nach einer Wiederherstellung überprüfen Writer den Status des Vorgangs, damit sie die wiederhergestellten Daten verwenden und Fehler behandeln können. Der Anfordernde muss auf den Abschluss dieser Aktivität warten. Weitere Informationen finden Sie unter Übersicht über die Verarbeitung einer Wiederherstellung unter VSS.
Die folgende Tabelle zeigt die Abfolge der Aktionen und Ereignisse, die nach einem Wiederherstellungsvorgang erforderlich sind.
| Aktion des Anfordernden | Ereignis | Writer-Aktion |
|---|---|---|
| Der Anfordernde gibt das Ende der Wiederherstellung an (siehe IVssBackupComponents::P ostRestore). | PostRestore | Der Writer führt eine Bereinigung nach der Wiederherstellung durch und behandelt Wiederherstellungsfehler und Dateien, die an nicht standardmäßigen Speicherorten wiederhergestellt wurden (siehe CVssWriter::OnPostRestore, IVssComponent). |
| Der Anfordernde wartet auf Writer, um das PostRestore-Ereignis mit IVssAsync zu behandeln. Außerdem sollte der Writerstatus überprüft werden (siehe IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatus). | Keine | Keine |
| Der Anfordernde gibt die IVssBackupComponents-Schnittstelle frei. | Keine | Keine |
An anfordernde Aktionen während der Bereinigung und Beendigung
An diesem Punkt gibt ein Anfordernder das Ende seiner Dateiwiederherstellungsaktivitäten an, indem er ein PostRestore-Ereignis generiert, indem er IVssBackupComponents::P ostRestore aufruft.
Die Aktionen des Anfordernden sind auf das Warten auf die Writer beschränkt, die möglicherweise einige abschließende Bereinigungs- und Wiederherstellungsfehler ausführen und die IVssBackupComponents-Schnittstelle freigeben müssen, nachdem alle Writer von der Behandlung des PostRestore-Ereignisses zurückgegeben wurden.
Writeraktionen während der Bereinigung und Beendigung
Das PostRestore-Ereignis wird von der virtuellen Methode CVssWriter::OnPostRestore behandelt. Die Standardimplementierung gibt einfach TRUE zurück, ohne eine Aktion zu ergreifen. Wenn ein Writer mehr Kontrolle über die Situation nach der Wiederherstellung haben muss, kann er diese Methode überschreiben.
Zusätzlich zu allen normalen Bereinigungen (z. B. entfernen temporäre Dateien), die ein Writer in CVssWriter::OnPostRestoreausführen kann, kann er den Erfolg oder Fehler von Wiederherstellungsvorgängen behandeln.
Wie Wiederherstellungsfehler, Dateien, die an einem anderen Speicherort wiederhergestellt werden, und die Notwendigkeit zukünftiger Wiederherstellungen behandelt werden, liegt vollständig im Ermessen des Schreibers. Typische Aktionen können das Vergleichen von Dateien an alternativen oder neuen Speicherorten mit dateien sein, die derzeit verwendet werden, das Zusammenführen von Daten aus mehreren Dateien oder das Starten neuer Sitzungen, die mit den neuen Datendateien verbunden sind. VSS bietet die folgenden Mechanismen, um dies komponentenbasierte Unterstützung zu bieten:
- Erfolg oder Fehler beim Wiederherstellen einer Komponente finden Sie unter IVssComponent::GetFileRestoreStatus.
- Die Verwendung alternativer Speicherortzuordnungen beim Wiederherstellen von Dateien wird durch IVssComponent::GetAlternateLocationMapping angegeben.
- Die Ermittlung, ob eine Wiederherstellung inkrementell ist und weitere Wiederherstellungen erfordert, erfolgt durch Aufrufen von IVssComponent::GetAdditionalRestores. Writer, die eine vollständige Wiederherstellung ihrer Daten benötigen, sollten erst neu gestartet werden, wenn diese Methode FALSE zurückgibt.
- Writer können mithilfe von IVssComponent::GetNewTargetCount und IVssComponent::GetNewTarget ermitteln, ob der An anfordernde Benutzer Dateien an einem zuvor nicht angegebenen Speicherort wiederherstellen muss.
(Weitere Informationen zum Wiederherstellen von Dateien an nicht standardmäßigen Speicherorten finden Sie unter Nicht standardmäßige Sicherungs- und Wiederherstellungsspeicherorte.)
Wie bei jeder IVssComponent-Methode gelten die von einer bestimmten Instanz zurückgegebenen Informationen für die Komponenten, die explizit für die Sicherung enthalten sind, und für alle implizit für Sicherungsunterkomponenten enthaltenen Komponenten, einschließlich der Unterkomponenten, die explizit für die Wiederherstellung durch den Anfordernden mithilfe von IVssBackupComponents enthalten sind::AddRestoreSubcomponent (weitere Informationen finden Sie unter Working with Selectability For Restore and Subcomponents (Arbeiten mit Auswahlbarkeit für Wiederherstellung und Unterkomponenten).
Da die Writer Zugriff auf das Sicherungskomponentendokument benötigen, ist es wichtig, dass der Anfordernde die IVssBackupComponents-Schnittstelle erst frei gibt, wenn writer die Verarbeitung abgeschlossen haben.