Synchronisation déconnectée
Cette rubrique s'applique uniquement à ArcGIS for Desktop Standard et ArcGIS for Desktop Advanced.
Pour synchroniser des réplicas dans un environnement déconnecté, vous devez échanger manuellement les messages. Cette opération consiste à exporter un message d'un réplica vers un fichier, puis à importer le message depuis ce fichier vers le réplica associé. Dans les systèmes déconnectés, les fichiers peuvent être transférés sur des supports, tels que des CD ou des DVD, et envoyés par la poste, via un transporteur privé, etc.
Un réplica peut être à tout moment expéditeur ou destinataire des données. Un expéditeur de données exporte des messages de mouvements de données vers des fichiers de deltas contenant des mouvements à appliquer au réplica associé. Un destinataire de données exporte des messages d'accusé de réception vers les fichiers d'accusé de réception pour confirmer les informations qu'il a reçues. Vous pouvez savoir si un réplica est expéditeur ou destinataire des données en consultant son état dans le gestionnaire de réplicas d'ArcMap. Pour en savoir plus sur le gestionnaire de réplicas, consultez la rubrique Présentation rapide de la gestion des réplicas.
Il est important que le destinataire des données exporte des messages d'accusé de réception aussi souvent que possible. Si aucun message d'accusé de réception n'est reçu, l'expéditeur des données renvoie les mouvements par défaut et conserve les informations requises pour les renvoyer jusqu'à ce que la réception de ces mouvements soit confirmée. De ce fait, la taille de la géodatabase de l'expéditeur des données peut augmenter et les messages de mouvements de données suivants peuvent également devenir volumineux.
Bien que déconseillée, la meilleure méthode consiste à ce que le destinataire des données envoie un message d'accusé de réception après avoir reçu chaque message de mouvement de données. Il est également important de noter qu'un message d'accusé de réception peut confirmer la réception de tous les messages de mouvement de données. Par exemple, si un réplica reçoit trois messages de mouvements de données et importe chacun d'entre eux, il peut envoyer un seul message d'accusé de réception pour confirmer la réception des trois messages.
Dans l'exemple suivant, le réplica parent envoie des mouvements au réplica enfant, puis reçoit un message d'accusé de réception de l'enfant. Ici, le parent est l'expéditeur des données et l'enfant le destinataire de ces données.
Dans les réplicas bidirectionnels, l'expéditeur et le destinataire des données peuvent également changer de rôle. Le changement est effectué par l'expéditeur des données lorsqu'il envoie un dernier message de mouvement de données contenant les instructions requises. Lorsque le message a été importé par le destinataire des données, les rôles sont inversés et le système est prêt à envoyer des données dans l'autre direction.
Dans le diagramme suivant, le réplica parent envoie un message de mouvement de données contenant les instructions permettant d'inverser les rôles. Lorsque le réplica parent exporte le message, il devient le destinataire des données. Quand l'enfant reçoit le message, il devient l'expéditeur des données. Le réplica enfant envoie alors un message de mouvement de données au parent.
Comme indiqué précédemment, les réplicas bidirectionnels utilisent des messages de mouvements de données et d'accusé de réception et permettent d'inverser les rôles. Avec les réplicas monodirectionnels toutefois, vous ne pouvez pas inverser les rôles. Pour les réplicas monodirectionnels parent vers enfant, le parent est toujours l'expéditeur des données. Pour les réplicas monodirectionnels enfant vers parent, l'enfant est toujours l'expéditeur des données. Dans les deux cas, il est toujours important que le destinataire des données envoie des messages d'accusé de réception. Pour les réplicas d'extraction, l'enfant est toujours l'expéditeur des données et aucun message d'accusé de réception n'est nécessaire. Pour en savoir plus sur les types de réplicas, reportez-vous à la rubrique Types de réplication.
Jusqu'ici, cette rubrique a décrit un modèle élémentaire d'échange de messages dans lequel les messages sont échangés entre le réplica parent et le réplica enfant. Si vous conservez ce modèle, le système fonctionnera correctement et se corrigera lui-même si des messages sont perdus. Cependant, vous pouvez également être amené à utiliser les scénarios d'échange de messages spécifiques suivants.
Renvoi de messages sans accusé de réception
Le système permet aux réplicas de renvoyer des mouvements de données sans accusé de réception. Vous pouvez effectuer cette opération si, en tant qu'expéditeur des données, vous savez ou pensez qu'un message de mouvement de données précédent a été perdu et doit être renvoyé. Vous pouvez également attendre le prochain envoi de mouvements de données, car ceux-ci comprennent par défaut les nouveaux mouvements et les mouvements sans accusé de réception, le cas échéant.
Dans le diagramme suivant, vous devez renvoyer des mouvements de données sans accusé de réception. Ici, le parent envoie un message de mouvement de données et passe du rôle d'expéditeur à celui de destinataire. Cependant, le message se perd et le parent et l'enfant demeurent destinataires des données. Pour résoudre ce problème, le destinataire des données qui vient de changer de rôle dispose d'une option de réexportation des messages sans accusé de réception. Dans ce cas, elle permet au parent de renvoyer le message afin de passer du rôle de parent à celui d'enfant.
Accusé de réception des mouvements après inversion des rôles
Lorsque les rôles ont été inversés dans un réplica bidirectionnel, l'option d'exportation d'un message d'accusé de réception est disponible pour que l'expéditeur des données puisse confirmer la réception du message de changement de rôle. Il est également possible d'envoyer un message de mouvement de données car la réception du message de changement de rôle est alors implicitement confirmée. Toutefois, si vous n'envisagez pas d'envoyer un message de mouvement de données dans un futur proche, vous devez envoyer un message d'accusé de réception.
Dans le diagramme suivant, le parent envoie un message de mouvement de données permettant d'inverser les rôles. Lorsque l'enfant reçoit le message, il devient un expéditeur de données mais son rôle venant juste d'être inversé, le système lui permet encore d'envoyer un message d'accusé de réception.
Inversement des rôles sans envoi de mouvements de données
Il est possible d'envoyer un message de mouvement de données contenant les instructions permettant d'inverser les rôles sans mouvement de données. Vous pouvez effectuer cette opération si, en tant qu'expéditeur des données, vous devez recevoir des changements de la part du destinataire, mais que vous n'êtes pas prêt à envoyer des mouvements de données. Reportez-vous à la rubrique Exportation d'un message de mouvement de données pour plus d'informations sur l'envoi d'un message pour inverser les rôles sans envoyer de données.
Eviter le fichier de message d'accusé de réception
Lors de l'envoi de mouvements de données, tous les nouveaux mouvements de données et mouvements de données sans accusé de réception sont envoyés par défaut. Les nouveaux mouvements de données comprennent toutes les insertions, mises à jour et suppressions effectuées dans la version du réplica depuis que le dernier message de mouvement de données a été export. Les mouvements de données sans accusé de réception incluent les mouvements exportés précédemment pour lesquels vous n'avez pas reçu d'accusé de réception. Si vous avez envoyé plusieurs messages de mouvements de données pour lesquels vous n'avez pas reçu d'accusé de réception, la taille des fichiers des mouvements de données peut devenir importante.
La meilleure solution nécessite que le destinataire des données envoie un fichier de message d'accusé de réception. Cependant, cette méthode n'est pas toujours possible en fonction du système de communication. Par exemple, si les réplicas sont déconnectés et que l'envoi d'un fichier d'accusé de réception nécessite l'expédition d'un support pour échanger des fichiers, vous pouvez préférer l'envoi d'un message électronique à la personne chargé de la gestion du réplica de l'expéditeur de données, indiquant que vous avez reçu et importé les mouvements de données.
N'oubliez cependant pas que le fait d'éviter le fichier de message d'accusé de réception complique la gestion de la synchronisation.
- L'importation de messages d'accusé de réception est la seule façon pour le système de sélectionner les versions nécessaires au renvoi des mouvements d'un réplica. Les versions système non sélectionnées peuvent perturber la compression dans le temps et augmenter considérablement la taille de la géodatabase de l'expéditeur, ce qui peut ralentir les performances de la géodatabase. Pour cette raison, il est important d'envoyer au moins régulièrement des messages d'accusé de réception.
- Le fait d'éviter le fichier de message d'accusé de réception nécessite une intervention manuelle accrue à la fois de la part de la personne chargée de la gestion du réplica de l'expéditeur des données et de la personne qui gère le destinataire des données.
Vous pouvez utiliser le gestionnaire de réplicas pour déterminer les mouvements envoyés et reçus par un réplica. Pour éviter d'envoyer un message de mouvement de données inutilement volumineux, l'expéditeur des données doit désactiver l'option Inclure les mouvements de données sans accusé de réception lors du prochain envoi de mouvements de données.
- Lorsque vous évitez le fichier de message d'accusé de réception, votre workflow de synchronisation est plus enclin aux erreurs.
Les nouveaux mouvements ne peuvent être importés par le destinataire des données que si les mouvements précédents ont réellement été importés. Si le système détecte que les mouvements envoyés précédemment n'ont pas été importés, une erreur est renvoyée et l'ensemble actuel de mouvements ne peut pas être importé. Si plusieurs messages de mouvements de données sont envoyés simultanément, ils doivent être importés dans l'ordre approprié. Le système renvoie une erreur si vous essayez de les importer dans un ordre incorrect.
Lorsque des erreurs se produisent, des messages d'erreur s'affichent. Cependant, si vous utilisez un système automatisé, vous risquez de ne pas visualiser les erreurs. Dans ce cas, vous pouvez utiliser le journal de l'activité du réplica pour détecter si des erreurs se sont produites pendant la synchronisation. Le journal fournit également des instructions permettant de corriger les erreurs le cas échéant.