Utilisation des composants par le demandeur
En plus d’effectuer une sauvegarde ou une restauration et de superviser les clichés instantanés, un demandeur doit gérer les informations sur les composants des enregistreurs avec lesquels il interagit. La sélection des composants et le chemin logique sont utilisés pour inclure ou exclure des données d’une sauvegarde, et pour déterminer les informations de composant incluses dans le document Composants de sauvegarde.
Sélection du composant demandeur pendant la sauvegarde
Pendant les opérations de sauvegarde, un demandeur importe les données du composant de métadonnées writer à l’aide des méthodes IVssBackupComponents::GatherWriterMetadata et IVssBackupComponents::GetWriterMetadata (voir Vue d’ensemble de l’initialisation de la sauvegarde pour plus d’informations).
Après avoir examiné les informations de l’enregistreur avec l’interface IVssExamineWriterMetadata , un demandeur décide quels enregistreurs il sauvegardera et, dans une mesure limitée, quels composants d’un writer donné il sauvegardera.
Lors de la sauvegarde d’un writer, un demandeur :
- Doit inclure explicitement tous les éléments non sélectionnables d’un writer pour les composants de sauvegarde sans pouvoir être sélectionnés pour les ancêtres de sauvegarde à l’aide de IVssBackupComponents::AddComponent pour ajouter le composant au document Composants de sauvegarde
- Peut inclure explicitement l’un des éléments sélectionnables d’un writer pour les composants de sauvegarde à l’aide de IVssBackupComponents::AddComponent pour ajouter le composant au document Composants de sauvegarde
- Si un composant sélectionnable pour la sauvegarde définit un jeu de composants, son inclusion explicite inclut implicitement tous les membres du jeu de composants, qu’ils soient ou non sélectionnables pour la sauvegarde. Ces composants ne sont pas ajoutés au document Composants de sauvegarde.
Lors de l’ajout d’un composant sélectionnable pour le composant de sauvegarde ou d’un composant non sélectionnable pour les composants de sauvegarde sans pouvoir être sélectionné pour les ancêtres de sauvegarde à son document composants de sauvegarde, un demandeur spécifie les éléments suivants :
- Instance de l’enregistreur qui gère le composant
- Identificateur de classe de l’enregistreur
- Chemin logique du composant (qui peut être NULL)
- Nom du composant
Si un composant ne correspond pas à la spécification, une erreur est retournée.
S’il existe un tel composant, VSS crée une interface IVssComponent pour le composant dans le document Composants de sauvegarde. Ces informations seront accessibles et modifiables par l’auteur et le demandeur. Pour un composant sélectionnable qui définit un jeu de composants, il décrit non seulement les propriétés du composant, mais également tous les sous-composants qu’il contient.
Les informations sur les composants ajoutés implicitement ne sont pas disponibles dans le document Composants de sauvegarde. En outre, aucune information de fichier n’est disponible dans le document Composants de sauvegarde. Pour obtenir ces informations, le demandeur doit examiner les documents de métadonnées writer (qui auront déjà été lus) dans le contexte des composants stockés sélectionnés dans le document composants de sauvegarde.
Sélection du composant demandeur lors de la restauration
Pendant les opérations de restauration, un demandeur ne doit pas importer les informations de composant des enregistreurs actuellement actifs sur le système via IVssBackupComponents::GatherWriterMetadata, car l’état des processus en cours d’exécution ne reflète pas nécessairement l’état des processus lors d’une sauvegarde.
Il doit toujours générer un événement Identifier via IVssBackupComponents::GatherWriterMetadata, à la fois pour créer un événement Identifier et pour déterminer les rédacteurs qui se trouvent actuellement sur le système et leurs status.
Le demandeur récupère le document de composants de sauvegarde stocké lors de son initialisation, ainsi que les documents de métadonnées writer stockés (voir Vue d’ensemble de l’initialisation de la restauration pour plus d’informations).
L’inclusion de composants pendant la sauvegarde est en grande partie la même que celle de la restauration, sauf que vous devez considérer que vous pouvez sélectionner pour la restauration avec le chemin logique, ce qui n’est pas sélectionnable pour la sauvegarde.
Toutefois, il existe quelques différences :
- Si un composant a déjà été explicitement inclus dans le document Composants de sauvegarde pendant la sauvegarde, s’il est inclus pour la restauration (explicitement ou implicitement), IVssBackupComponents::SetSelectedForRestore est utilisé pour l’ajouter explicitement au document composants de sauvegarde pour restauration.
- Si un composant a été implicitement inclus dans la sauvegarde et n’est pas sélectionnable pour la restauration, sans possibilité de sélection pour les ancêtres de restauration ( ce qui dans le cas de la sauvegarde impliquerait la nécessité d’une inclusion explicite), le composant n’est pas explicitement inclus (autrement dit, il n’est pas ajouté au document Composants de sauvegarde à l’aide de IVssBackupComponents::SetSelectedForRestore). Un tel composant doit être considéré comme implicitement sélectionné pour la restauration.
- Parmi les composants implicitement sélectionnés pour la sauvegarde (que ce composant soit ou non sélectionnable pour la sauvegarde), seuls ceux qui sont sélectionnables pour la restauration peuvent être ajoutés au document Composants de sauvegarde à l’aide de IVssBackupComponents::AddRestoreSubcomponent.
- Sélectionnable pour les composants de restauration peut définir un ensemble de composants pour la restauration, tout comme l’option sélectionnable pour les composants de sauvegarde. Ce composant sélectionnable pour la restauration définit ensuite ce jeu de composants pour l’opération de restauration.
Un enregistreur sans composant explicitement sélectionné pour la restauration avant la génération d’un événement PreRestore ne recevra aucun événement VSS.
Les demandeurs et les rédacteurs peuvent accéder aux informations de composant stockées à l’aide de l’interface IVssComponent . Grâce à l’interface IVssComponent , les rédacteurs peuvent modifier certains paramètres de ceux de ses composants explicitement inclus dans le document Composants de sauvegarde pour prendre en charge une restauration (par exemple, la cible de restauration). S’il définit un jeu de composants, les modifications de writer d’un composant explicitement inclus se propagent à ses sous-composants. En outre, l’interface fournit un mécanisme permettant de transmettre des informations sur la réussite et l’échec de la restauration entre l’enregistreur et le demandeur.
Comme pendant la sauvegarde, les informations contenues dans le document composants de sauvegarde ne sont pas suffisantes pour implémenter la restauration. Là encore, les documents de métadonnées writer devront fournir des informations sur les chemins d’accès réels des fichiers à restaurer et pour découvrir quels composants non sélectionnables font partie de l’ensemble de composants sélectionnables et doivent donc être restaurés.
Pour plus d’informations sur les types de sélection et leur utilisation, consultez Utilisation de la possibilité de sélection et des chemins logiques .
Utilisation des informations de document du composant Writer par le demandeur
Chaque composant est identifié de manière unique par l’ID de classe writer de son writer parent, son nom et son chemin logique.
Le demandeur peut utiliser l’interface IVssWriterComponentsExt retournée par la méthode IVssBackupComponents::GetWriterComponents pour obtenir des informations sur chaque composant stocké.
Le nom et le chemin logique du composant (entre autres éléments) sont accessibles via l’interface IVssComponent retournée par IVssWriterComponentsExt::GetComponent.
Notes
Pendant la phase de restauration, le demandeur doit appeler IVssWriterComponentsExt::GetComponent ou IVssWriterComponentsExt::GetComponentCount uniquement après le retour de l’appel à IVssBackupComponents::P reRestore , afin de laisser le temps au rédacteur de mettre à jour le document composants de sauvegarde. Un exemple de cette mise à jour serait de modifier la cible de restauration.
Vous trouverez des informations sur l’enregistreur parent de chaque composant sélectionnable stocké à l’aide de IVssWriterComponentsExt::GetWriterInfo.
Avec ces informations, les documents de métadonnées writer peuvent être interrogés et le document correspondant identifié. Ensuite, en utilisant le chemin logique, le demandeur peut identifier les composants non sélectionnables dépendants pour chaque composant sélectionnable, c’est-à-dire identifier tous les membres de l’ensemble de composants du composant sélectionnable.
À l’aide de l’interface IVssExamineWriterMetadata , le demandeur dispose désormais d’informations complètes sur les composants, y compris la spécification du chemin d’accès (à partir de l’interface IVssWMComponent ) pour les composants sélectionnables et non sélectionnables dont il a besoin pour sauvegarder ou restaurer.
C’est l’une des raisons pour lesquelles il est essentiel pour un demandeur d’enregistrer à la fois l’état de son propre document de composants de sauvegarde et les documents de métadonnées writer des rédacteurs qu’il sauvegarde.
Pour plus d’informations, consultez Utilisation de la possibilité de sélection et des chemins logiques .