Détermination du statut de l’enregistreur
Un demandeur doit avoir une bonne compréhension du statut de l’enregistreur qui participe lors de la création de clichés instantanés, et pendant les opérations de sauvegarde et de restauration. Pour ce faire, les recommandations sont les suivantes :
Les demandeurs utilisent IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatusCount et IVssBackupComponents::GetWriterStatus.
Comme décrit dans Vue d’ensemble du traitement d’une sauvegarde sous VSS et Vue d’ensemble du traitement d’une restauration sous VSS, ces méthodes sont plus utiles lorsqu’elles sont appelées dans une séquence de sauvegarde ou de restauration bien définie. En règle générale, cela signifie que les enregistreurs doivent être interrogés une fois qu’un demandeur a terminé l’une de ses tâches et généré un événement VSS.
Lors du traitement d’une sauvegarde, un demandeur doit interroger un enregistreur après l’achèvement des méthodes suivantes. Les demandeurs doivent appeler GatherWriterStatus après avoir appelé BackupComplete pour que la session de l’enregistreur soit définie sur un état terminé.
Remarque
Cela n’est nécessaire que sur Windows Server 2008 avec Service Pack 2 (SP2) et les versions antérieures.
IVssBackupComponents::PrepareForBackup
Pendant les opérations de restauration, un demandeur doit interroger un enregistreur après l’achèvement de ces méthodes :
- Les appels à IVssBackupComponents::CollectWriterStatus qui ne font pas partie d’une séquence de sauvegarde ou de restauration bien définie ne fournissent pas une image fiable du statut de l’enregistreur, car ils peuvent refléter des conditions qui n’indiquent pas d’échec dans l’opération en cours, telles que :
- L’échec d’une précédente création de cliché instantané
- Une erreur lors d’une opération anticipée de sauvegarde ou de restauration
- Un enregistreur en cours de traitement d’un événement qui ne répond pas
Par conséquent, les développeurs ne doivent pas se fier au statut de l’enregistreur renvoyé par des processus autres que le demandeur ou tenter de surveiller la progression d’une instance de l’interface IVssBackupComponents avec un autre (éventuellement dans un thread distinct).
Notez que pour les opérations de sauvegarde, lorsqu’il est nécessaire d’examiner les Documents de métadonnées de l’enregistreur des enregistreurs, il n’est pas nécessaire d’appeler un demandeur pour IVssBackupComponents::GatherWriterStatus et IVssBackupComponents::GetWriterStatus après la génération et la gestion de l’événement Identifier provoqué par IVssBackupComponents::GatherWriterMetdata.
IVssBackupComponents::GetWriterStatus signale uniquement le statut de ces enregistreurs dont les métadonnées ont été fournies à VSS par les gestionnaires d’événements Identifier, CVssWriter::OnIdentify (et retournées au demandeur par IVssBackupComponents::GetWriterMetadataCount et IVssBackupComponents::GetWriterMetadata).
Si l’implémentation de CVssWriter::OnIdentify par un enregistreur échoue, les métadonnées de cet enregistreur ne feront pas partie de la liste des Documents de métadonnées de l'enregistreur fournis à VSS, aucune information de statut ne sera disponible et l’appel sera redondant.
Pour les opérations de restauration, où le demandeur n’a pas besoin d’examiner les Documents de métadonnées de l’enregistreur des enregistreurs d’exécution, il peut être plus efficace d’appeler IVssBackupComponents::GatherWriterStatus et IVssBackupComponents::GetWriterStatus pour déterminer quels enregistreurs sont exécutés.