Bestimmen des Writer-Status
Eine anfordernde Person muss ein gut definiertes Verständnis über den Status des Writers haben, der während der Erstellung von Schattenkopien teilnimmt, und während Sicherungs- und Wiederherstellungsvorgängen. Dazu wird Folgendes empfohlen:
Anfordernde Personen verwenden IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatusCount und IVssBackupComponents::GetWriterStatus.
Wie in der Ü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. Dies bedeutet in der Regel, dass die Writer abgefragt werden sollten, nachdem eine anfordernde Person eine ihrer Aufgaben abgeschlossen und ein VSS-Ereignis generiert hat.
Bei der Verarbeitung einer Sicherung sollte eine anfordernde Person nach Abschluss der folgenden Methoden einen Writer abfragen. Anfordernde Personen müssen GatherWriterStatus aufrufen, nachdem BackupComplete aufgerufen wurde, damit die Writer-Sitzung auf einen abgeschlossenen Zustand festgelegt wird.
Hinweis
Dies ist nur unter Windows Server 2008 mit Service Pack 2 (SP2) und früheren Versionen erforderlich.
IVssBackupComponents::PrepareForBackup
Bei Wiederherstellungsvorgängen sollte eine anfordernde Person einen Writer nach Abschluss dieser Methoden abfragen:
- Aufrufe an IVssBackupComponents::GatherWriterStatus, die nicht Teil einer klar definierten Sicherungs- oder Wiederherstellungssequenz sind, stellen kein zuverlässiges Bild des Writer-Status bereit, da sie Bedingungen widerspiegeln, die keinen Fehler im aktuellen Vorgang angeben, z. B.:
- Fehler einer vorherigen Schattenkopieerstellung
- Fehler bei einem frühen Sicherungs- oder Wiederherstellungsvorgang
- Ein nicht reagierender Writer, der zurzeit ein Ereignis verarbeitet
Daher sollten Entwickler sich nicht auf den Writer-Status verlassen, der von anderen Prozessen als der anfordernden Person 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 für Sicherungsvorgänge, bei denen es erforderlich ist, Writer-Metadatendokumente von Writern zu untersuchen, keinen Aufruf von anfordernden Personen an IVssBackupComponents::GatherWriterStatus und IVssBackupComponents::GetWriterStatus nach der Generierung und Behandlung des Durch IVssBackupComponents::GatherWriterMetdata verursachten Ereignisses erforderlich ist.
IVssBackupComponents::GetWriterStatus meldet nur den Status der Writers, deren Metadaten von Autoren vom „Identify“-Ereignishandler für Writers bereitgestellt wurden, CVssWriter::OnIdentify (und zurückgegeben an die anfordernde Person von IVssBackupComponents::GetWriterMetadataCount und IVssBackupComponents::GetWriterMetadata).
Wenn die Implementierung von CVssWriter::OnIdentify fehlschlägt, sind die Metadaten dieses Writers nicht Teil der Liste der Writer-Metadatendokumente, die VSS bereitgestellt werden, sind keine Statusinformationen verfügbar, und der Aufruf wäre redundant.
Bei Wiederherstellungsvorgängen, bei denen der Anforderer keine Writer-Metadatendokumente des Ausführens von Writern untersuchen muss, kann das Aufrufen von IVssBackupComponents::GatherWriterStatus und IVssBackupComponents::GetWriterStatus eine effizientere Methode sein, um zu bestimmen, welche Writer ausgeführt werden.