Bestimmen des Writerstatus
Ein Anfordernde muss über ein klar definiertes Verständnis des Status des Writers verfügen, der während der Erstellung von Schattenkopien und während Sicherungs- und Wiederherstellungsvorgängen daran beteiligt ist. Dazu wird Empfohlen:
Anfordernde verwenden IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatusCountund IVssBackupComponents::GetWriterStatus.
Wie unter Übersicht über die Verarbeitung einer Sicherung unter VSS und Übersicht über die Verarbeitung einer Wiederherstellung unter VSS beschrieben, sind diese Methoden am nützlichsten, wenn sie in einer klar definierten Sicherungs- oder Wiederherstellungssequenz aufgerufen werden. In der Regel bedeutet dies, dass die Writer abgefragt werden sollten, nachdem ein Anfrager eine seiner Aufgaben abgeschlossen und ein VSS-Ereignis generiert hat.
Bei der Verarbeitung einer Sicherung sollte ein Anfrager nach Abschluss der folgenden Methoden einen Writer abfragen. Anfordernde müssen GatherWriterStatus nach dem Aufruf von BackupComplete aufrufen, damit die Writersitzung in einen abgeschlossenen Zustand gesetzt wird.
Hinweis
Dies ist nur auf Windows Server 2008 mit Service Pack 2 (SP2) und früher erforderlich.
IVssBackupComponents::P repareForBackup
Bei Wiederherstellungsvorgängen sollte ein Anfrager nach Abschluss dieser Methoden einen Writer abfragen:
- Aufrufe von IVssBackupComponents::GatherWriterStatus, die nicht Teil einer klar definierten Sicherungs- oder Wiederherstellungssequenz sind, bieten kein zuverlässiges Bild des Writerstatus, da sie möglicherweise Bedingungen widerspiegeln, die nicht auf einen Fehler im aktuellen Vorgang hinweisen, z. B.:
- Fehler beim Erstellen einer vorherigen Schattenkopie
- Fehler bei einem frühen Sicherungs- oder Wiederherstellungsvorgang
- Ein nicht reagierender Writer, der derzeit ein Ereignis verarbeitet
Daher sollten Entwickler sich nicht auf den Writerstatus verlassen, der von anderen Prozessen als dem Anfordernden zurückgegeben wird, oder versuchen, den Fortschritt einer Instanz der IVssBackupComponents-Schnittstelle mit einer anderen (möglicherweise in einem separaten Thread) zu überwachen.
Beachten Sie, dass bei Sicherungsvorgängen, bei denen die Writer-Metadatendokumente von Writern untersucht werden müssen, kein Aufruf von IVssBackupComponents::GatherWriterStatus und IVssBackupComponents::GetWriterStatus erforderlich ist, nachdem das durch IVssBackupComponents::GatherWriterMetdataverursachte Identify-Ereignis erstellt und behoben wurde.
IVssBackupComponents::GetWriterStatus meldet nur den Status der Writer, deren Metadaten von den Identify-Ereignishandlern von Writern an VSS bereitgestellt wurden: CVssWriter::OnIdentify (und von IVssBackupComponents::GetWriterMetadataCount und IVssBackupComponents::GetWriterMetadataan den Anfordernden zurückgegeben).
Wenn bei der Implementierung von CVssWriter::OnIdentify durch einen Writer ein Fehler auftritt, sind die Metadaten dieses Writers nicht Teil der Liste der Writer-Metadatendokumente, die für VSS bereitgestellt werden. Es sind keine Statusinformationen verfügbar, und der Aufruf wäre redundant.
Bei Wiederherstellungsvorgängen, bei denen der Anfordernde keine Writer-Metadatendokumente von ausführenden Writern untersuchen muss, können IVssBackupComponents::GatherWriterStatus und IVssBackupComponents::GetWriterStatus effizienter bestimmt werden, welche Writer ausgeführt werden.