Determinazione dello stato del writer
Un richiedente deve avere una conoscenza ben definita dello stato del writer che lo partecipa durante la creazione della copia shadow e durante le operazioni di backup e ripristino. A tale scopo, è consigliabile:
I richiedenti usano IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatusCount e IVssBackupComponents::GetWriterStatus.
Come descritto in Panoramica dell'elaborazione di un backup in VSS e Panoramica dell'elaborazione di un ripristino in Vss, questi metodi sono più utili quando vengono chiamati in una sequenza di backup o ripristino ben definita. In genere, ciò significa che i writer devono essere sottoposti a query dopo che un richiedente ha completato una delle attività e generato un evento VSS.
Durante l'elaborazione di un backup, un richiedente deve eseguire una query su un writer dopo il completamento dei metodi seguenti. I richiedenti devono chiamare GatherWriterStatus dopo aver chiamato BackupComplete per impostare la sessione del writer su uno stato completato.
Nota
Questa operazione è necessaria solo in Windows Server 2008 con Service Pack 2 (SP2) e versioni precedenti.
IVssBackupComponents::P repareForBackup
Durante le operazioni di ripristino, un richiedente deve eseguire query su un writer dopo il completamento di questi metodi:
- Le chiamate a IVssBackupComponents::GatherWriterStatus che non fanno parte di una sequenza di backup o ripristino ben definite non forniscono un'immagine affidabile dello stato del writer, perché potrebbero riflettere condizioni che non indicano errori nell'operazione corrente, ad esempio:
- Errore di creazione di una copia shadow precedente
- Errore in un'operazione di backup o ripristino anticipata
- Writer non risponde attualmente che elabora un evento
Pertanto, gli sviluppatori non devono basarsi sullo stato del writer restituito da processi diversi dal richiedente o tentare di monitorare lo stato di avanzamento di un'istanza dell'interfaccia IVssBackupComponents con un altro (possibilmente in un thread separato).
Si noti che per le operazioni di backup, in cui è necessario esaminare i documenti di metadati writer dei writer, non è necessario una chiamata del richiedente a IVssBackupComponents::GatherWriterStatus e IVssBackupComponents::GetWriterStatus dopo la generazione e la gestione dell'evento Identify causato da IVssBackupComponents::GatherWriterMetdata.
IVssBackupComponents::GetWriterStatus segnala solo lo stato di tali writer i cui metadati sono stati forniti a VSS dai gestori eventi Identify, CVssWriter::OnIdentify (e restituiti al richiedente da IVssBackupComponents::GetWriterMetadataCount e IVssBackupComponents::GetWriterMetadata).
Se l'implementazione di un writer di CVssWriter::OnIdentify ha esito negativo, i metadati del writer non faranno parte dell'elenco dei documenti di metadati del writer forniti al Servizio Copia Shadow del database, non saranno disponibili informazioni sullo stato e la chiamata sarà ridondante.
Per le operazioni di ripristino, in cui il richiedente non deve esaminare i documenti dei metadati del writer di esecuzione, la chiamata di IVssBackupComponents::GatherWriterStatus e IVssBackupComponents::GetWriterStatus può essere un modo più efficiente per determinare quali writer sono in esecuzione.