Arrêt des services pour la restauration par les demandeurs
Il peut être nécessaire qu’un service soit arrêté avant et redémarré après une opération de restauration.
En règle générale, l’arrêt et le démarrage d’un service pour prendre en charge une restauration sont effectués par un enregistreur lors de la gestion de l’événement PreRestore (avec CVssWriter::OnPreRestore) et de l’événement PostRestore (avec CVssWriter::OnPostRestore).
Toutefois, il peut arriver qu’il soit nécessaire qu’un demandeur arrête explicitement un service en cours d’exécution. Les enregistreurs indiquent si c’est le cas en définissant la valeur VSS_RME_STOP_RESTORE_START ou VSS_RME_RESTORE_STOP_START de l’énumération VSS_RESTOREMETHOD_ENUM comme argument de méthode de restauration d’un appel à la méthode IVssCreateWriterMetadata::SetRestoreMethod et en spécifiant le nom du service à arrêter.
Un demandeur obtient des informations sur la méthode de restauration et le nom du service à arrêter lors de l’utilisation des métadonnées de writer à l’aide de la méthode IVssExamineWriterMetadata::GetRestoreMethod .
Il est important que l’enregistreur, lors de la spécification du nom d’un service à arrêter, utilise le nom connu public correct de ce service. Un nom ambigu ou inexact peut entraîner l’arrêt du service incorrect ou l’impossibilité de déterminer le service à arrêter.
Une fois l’opération de restauration terminée, les demandeurs doivent redémarrer le service.
Vous devez être prudent lors de la conception et de l’implémentation des rédacteurs qui prennent en charge les services que les demandeurs doivent arrêter et redémarrer. Plus précisément, ces enregistreurs ne doivent pas faire partie du service, c’est-à-dire que l’enregistreur lui-même ne doit pas avoir besoin d’être arrêté, puis redémarré au cours de l’opération de restauration.
Un writer dont le processus est arrêté aura un autre writer instance au redémarrage. La nouvelle instance de l’enregistreur ne recevra pas d’événements VSS destinés à l’instance d’origine de l’enregistreur. Plus précisément, si le processus d’un writer instance est arrêté après la gestion d’un événement PreRestore, la nouvelle instance ne recevra pas l’événement PostRestore. En outre, VSS génère une erreur indiquant la perte d’un enregistreur participant à l’opération de restauration, et IVssBackupComponents::P ostRestore peut retourner un échec.