Автономная синхронизация
Эта тема относится только к ArcGIS for Desktop Standard и ArcGIS for Desktop Advanced.
Автономная синхронизация выполняется в автономной среде.
При работе с репликой автономной среды процесс синхронизации требует, чтобы пользователь произвел обмен сообщениями вручную. Это можно произвести путем экспорта сообщения из одной реплики в определенный файл, а затем с помощью импорта этого сообщения из данного файла в связанную реплику. В автономных системах файлы могут быть перенесены на таких носителях, как CD или DVD, и отправлены посредством службы доставки, например, при помощи частных курьеров, почтовой службы и т.д.
В любое время реплика может быть отправителем данных, либо получателем данных. Чтобы узнать, как определить, является реплика средством отправки или получения данных, см. Обзор управления репликами. Система отправки данных экспортирует сообщения с изменениями данных в дельта-файлы, содержащие изменения данных, которые должны быть внесены в связанную реплику. Система приема данных экспортирует сообщения, подтверждающие получение данных, в файлы подтверждения приема данных для подтверждения того, какие данные были получены.
Для реплики, производящей получение данных, очень важно экспортировать сообщения подтверждения приема данных как можно чаще. Если подтверждающих сообщений не будет получено, то отправитель данных отошлет изменения повторно и будет хранить информацию, необходимую для повторной отправки изменений, пока не получит подтверждения приема этих изменений. В результате база геоданных отправителя данных может стать очень большой, и новые сообщения изменений данных также могут стать очень большими.
В идеале, хотя это и не требуется, для отправителя данных лучше всего отправлять сообщение подтверждения приема после получения каждого сообщения изменений данных. Важно также заметить, что одно сообщение подтверждения приема может подтвердить прием всех сообщений изменений данных. Например, если реплика получит три сообщения изменений данных и произведет импорт каждой из них, то она сможет отослать одно сообщение подтверждения, чтобы подтвердить прием всех трех сообщений.
Ниже изображено то, как родительская реплика отсылает изменения дочерней реплике, а затем получает сообщение подтверждения приема от дочерней реплики. В данном случае родительская реплика является отправителем данных, а дочерняя - получателем данных.
Отправитель и получатель данных могут меняться ролями. Смена ролей осуществляется отправителем данных, когда он отсылает последнее сообщение изменений данных, которое включает в себя инструкции по смене ролей. Как только сообщение будет импортировано получателем данных, роли будут сменены, и система будет готова для отправки данных в противоположном направлении.
На расположенной ниже схеме показана родительская реплика, которая отсылает сообщение изменений данных с инструкциями по смене ролей. Когда родительская реплика произведет экспорт этого сообщения, она станет получателем данных. Когда дочерняя реплика получит это сообщение, она станет отправителем данных. После этого дочерняя реплика начнет отправление сообщений изменения данных родительской реплике.
Тип реплики определяет обмен сообщениями. Двухсторонние реплики используют обмен данными и сообщения подтверждения и могут производить между собой обмен ролями. При работе с односторонними репликами родительская реплика всегда является отправителем данных, и они не могут произвести между собой обмен ролями, но для дочерней реплики по-прежнему важно отправлять сообщения подтверждения. При работе с открепленными репликами дочерняя реплика всегда является отправителем данных, и производить отправку сообщений подтверждений не нужно.
Выше были описаны примеры обычных процессов обмена сообщениями, где сообщения пересылаются в две стороны между родительской и дочерней репликами. Если вы продолжите работу по такой же схеме, то система будет функционировать нормально и даже будет сама устранять ошибки, если сообщения будут потеряны. Однако вам может потребоваться рассмотреть следующие специфические схемы обмена сообщениями.
Повторная отправка подтверждающего сообщения
Система также позволяет репликам отправлять неподтвержденные изменения данных повторно. Вам может понадобиться сделать это, когда вы будучи отправителем данных, будете знать или предполагать, что отосланное ранее сообщение изменений данных было утеряно и нуждается в повторном отправлении. Как альтернатива, вы можете ожидать момента следующей отправки изменений данных, поскольку по умолчанию это последующее сообщение будет включать в себя новые изменения данных и изменения данных всех неподтвержденных сообщений.
На расположенном ниже рисунке изображен случай, в котором вам необходимо отослать изменения данных неподтвержденного сообщения повторно. Родительская реплика отсылает сообщение изменений данных и переходит в режим получения данных. Сообщение, однако, было потеряно, и родительская и дочерняя реплики остались в состоянии получателей данных. Для разрешения этой проблемы для отправителя данных, который только что сменил роль, доступна опция повторного экспорта неподтвержденных сообщений. В этом случае родительская реплика может повторно отправить дочерней реплике сообщение для смены роли.
Изменения после переключения ролей
После смены ролей для отправителя данных будет доступна опция экспорта сообщения о подтверждении приема. Эту опцию можно использовать для подтверждения приема сообщения, которое производит смену ролей. Другой опцией является отправка сообщения изменения данных, поскольку она в скрытой форме произведет подтверждение приема этого сообщения. Даже если вы не планируете отправку сообщения изменений данных в ближайшем будущем, вам может потребоваться отправить сообщение о подтверждении приема.
На изображенном ниже рисунке родительская реплика отсылает сообщение изменений данных, которое производит смену ролей. Когда дочерняя реплика получит это сообщение, она станет отправителем данным, но поскольку она только что переключилась, система все еще позволит ей отправить сообщение о подтверждении приема.
Переключение ролей без отправки изменений данных
Вы можете отправить сообщение изменений данных с инструкциями по смене ролей, которое не будет содержать изменений данных. Вам может понадобиться сделать так, что будучи получателем данных вам будет необходимо получить изменения от отправителя данных, но отправить свои изменения данных вы еще не готовы. Более подробную информацию об отправке сообщений для переключения ролей без отправки данных см. в разделе Экспорт сообщения об изменении данных.
Вербальные подтверждения
При отправке изменений данных по умолчанию отсылаются все новые изменения в данных и все неподтвержденные изменения данных. Новыми изменениями считаются вставки, обновления и удаления, произведенные для версии реплики с момента последнего экспорта сообщения изменений данных. Неподтвержденные изменения данных включают в себя экспортированные ранее изменения, для которых вы не получили сообщение о подтверждении приема. Если вы отправите несколько сообщений изменений данных, для которых вы не получили сообщения подтверждения о приеме, то эти сообщения могут стать очень большими.
Лучше всего будет, если получатель данных отправит сообщение подтверждения. Однако в зависимости от системы связи сделать это может быть трудно.
В качестве альтернативы вы можете использовать подтверждение на словах. В данной ситуации отправитель получает словесное подтверждение от человека, который управляет репликой, получающей данные, о том что отосланные ранее изменения были получены. Также можете использовать менеджер реплики для определения того, какие изменения были отправлены и получены репликой. Отправитель данных после этого будет отсылать только новые изменения. Такие сообщения могут импортироваться получателем данных, пока сообщения о получении ранее отосланных изменений будут отсылаться корректно. Если система обнаружит, что отосланные ранее изменения не были импортированы, то возникнет ошибка. Если несколько сообщений изменений данных будут отосланы одновременно, то они должны быть импортированы в правильном порядке. Система выдаст ошибку, если вы попытаетесь импортировать сообщения в неправильном порядке.
При возникновении ошибок выводятся сообщения об ошибках. Однако при использовании автоматизированной системы вы можете не увидеть этих ошибок. В этом случае вы можете воспользоваться журналом реплик, чтобы выявить наличие ошибок, возникших в ходе синхронизации. В журнале также имеются инструкции по восстановлению данных, когда это возможно.
Важно заметить, что хотя сообщения будут меньшего размера, техника словесного подтверждения не является эквивалентом использованию сообщений подтверждений. Импорт сообщений подтверждений является для системы единственным способом удалить системные версии, которые необходимы для повторной отправки изменений для реплики. Эти системные версии могут со временем начать препятствовать выполнению полного сжатия и могут сделать базу геоданных отправителя данных очень большой. По этой причине все равно очень важно периодически использовать сообщения подтверждения, даже когда вы используете технику словесного подтверждения.