Errori e veto di writer

Un writer può avere esito negativo per numerosi motivi a livello di codice. In questo caso, deve veto il backup, il ripristino o l'operazione di copia shadow in corso chiamando il metodo CVssWriter::SetWriterFailure in uno dei metodi del gestore, ad esempio CVssWriter::OnFreeze o CVssWriter::OnPreRestore e restituendo TRUE. Può anche impostare una stringa di messaggio di errore in risposta a una condizione di errore in determinati metodi del gestore con i metodi IVssComponentEx::SetPrepareForBackupFailureMsg, IVssComponentEx::SetPostSnapshotFailureMsg, IVssComponent:: SetPreRestoreFailureMsg e IVssComponent::SetPostRestoreFailureMsg . Il richiedente può accettare il veto o continuare con il backup, ignorando il veto.

Un richiedente deve controllare lo stato del writer (usando IVssBackupComponents::GatherWriterStatus e IVssBackupComponents::GetWriterStatus) seguendo ogni evento generato.

In alcuni casi, i messaggi di errore possono essere recuperati da questi errori (usando IVssComponentEx::GetPrepareForBackupFailureMsg, IVssComponent::GetPreRestoreFailureMsg, IVssComponentEx::GetPostSnapshotFailureMsg e IVssComponent::GetPostRestoreFailureMsg, oppure un writer può scegliere di impostare metadati (usando IVssComponent::SetRestoreMetadata e IVssComponent::SetBackupMetadata con informazioni sullo stato degli errori). Ad esempio, codice che mostra come visualizzare tali messaggi di errore, vedere IVssComponentEx::GetPrepareForBackupFailureMsg.

A seconda dello stato di errore, un richiedente o il relativo operatore potrebbero riavviare il backup e la copia shadow con qualsiasi modifica necessaria allo stato del processo di backup o del sistema.

Si supponga, ad esempio, che GetWriterStatus abbia restituito quanto segue:

  • VSS_E_WRITERERROR_INCONSISTENTSNAPSHOT suggerisce che un richiedente potrebbe aggiungere volumi aggiuntivi alla copia shadow

  • VSS_E_WRITERERROR_RETRYABLE indica che il tentativo senza riconfigurazione potrebbe funzionare. Se il writer continua a restituire l'errore dopo diversi tentativi, provare a riavviare il servizio che ospita il writer. I writer seguenti sono ospitati nel servizio VSS: writer del Registro di sistema, writer di registrazione della classe COM+, writer di ottimizzazione della copia shadow e writer di ripristino automatico del sistema. Se il writer appartiene a un'applicazione che ospita il writer nel proprio processo, provare a riavviare l'applicazione.

    Windows Server 2003 e Windows XP: I writer seguenti sono ospitati nel servizio VSS: writer del Registro di sistema, writer di registrazione classi COM+, writer del registro eventi dell'applicazione e Microsoft SQL Server 2000 Writer del motore desktop (MSDE).

  • VSS_E_WRITER_STATUS_NOT_AVAILABLE indica che un writer potrebbe aver raggiunto il numero massimo di sessioni di backup e ripristino disponibili e potrebbe funzionare quando il sistema è meno occupato.

  • VSS_E_WRITERERROR_OUTOFRESOURCES o VSS_E_WRITERERROR_TIMEOUT potrebbe suggerire che il carico di sistema sia ridotto prima di riprovare

  • VSS_E_WRITERERROR_NONRETRYABLE o VSS_E_WRITER_NOT_RESPONDING probabilmente indicare un errore writer così grave da impedire di eseguire il backup dei dati con VSS.

A seconda del writer e dei componenti generati, non è sempre necessario che un'applicazione di backup venga interrotta dopo un veto o un errore.

Ad esempio, un richiedente può decidere che la finalità della copia shadow consiste nel eseguire il backup dell'applicazione A e il veto è stato ricevuto dal writer per l'applicazione di backup B. In questo caso, è perfettamente accettabile continuare a eseguire il backup dell'applicazione A ignorando il veto.

Di seguito sono riportati esempi di veto scrittore:

  • Il writer ha veto il processo di creazione della copia shadow quando non è stato possibile sospendere le sue attività durante il momento in cui è stata creata la copia shadow. Ciò indica che la copia shadow non è valida perché si è verificata un'operazione di scrittura durante lo stato Di blocco.
  • Un'applicazione di backup ha richiesto una copia shadow solo del volume C: e un writer determina che una copia shadow di C: e D: è eseguire il backup dei dati. In questo caso, lo scrittore avrà il veto. L'applicazione di backup può esaminare i metadati e determinare se il writer verrà ignorato o il processo di creazione della copia shadow verrà interrotto e riavviato in seguito.