离线同步

本主题仅适用于 ArcGIS for Desktop Standard 和 ArcGIS for Desktop Advanced。

要在离线环境中同步复本,必须手动交换消息。通过将消息从一个复本导出到某个文件,然后将消息从该文件导入关系复本即可实现这一目的。在离线系统中,可将文件传输到介质(如 CD 或 DVD)上,然后通过分发代理(如私营快递、USPS 等)发送。

无论何时,一个复本不是数据发送方就是数据接收方。数据发送方会将数据变更消息导出到增量文件中,增量文件包含要应用于关系复本的变更。数据接收方将确认消息导出到确认文件来确认它所收到的内容。您可以通过在 ArcMap 的复本管理器中检查复本状态以确定复本是数据发送方还是数据接收方。有关复本管理器的详细信息,请参阅复本管理快速浏览

数据接收方尽量经常导出确认消息很重要。如果未收到任何确认消息,数据发送方默认情况下会重新发送变更并保留重新发送变更所需的信息,直到这些变更得到确认为止。因此,数据发送方的地理数据库会变得很大,并且后续的数据变更消息也会变得很大。

数据接收方在收到每条数据变更消息后都发送一条确认消息是一种非常理想的方式,但不是必须这样做。还要特别注意的是一条确认消息可以对所有数据变更消息进行确认。例如,如果某个复本收到三条数据变更消息并对每条都进行导入,它可以发送一条确认消息来确认所有这三条消息。

下图显示父复本将变更发送到子复本,并从子复本接收确认消息。这里,父复本是数据发送方,子复本是数据接收方。

父复本是数据变更发送方;子复本是数据接收方并将变更确认发送回到父复本

在双向复本中,数据发送方和数据接收方也可以切换角色。当数据发送方发送最后一条包含切换角色指令的数据变更消息时就会启动角色切换。数据接收方导入消息后,就会切换角色,系统即会准备好以相反方向发送数据。

下图显示了发送数据变更消息的父复本以及角色切换指令。当父复本导出消息后,它就会变成数据接收方。当子复本收到消息后,它就会变成数据发送方。随后,子复本会向父复本发送数据变更消息。

从父复本发送的数据变更消息包含使子复本变为发送方的角色切换指令。

如上所述,双向复本使用数据变更和确认消息,并可以切换角色。但是,使用单向复本则无法切换角色。对于单向“父-子”复本,父复本始终为数据发送方。对于单向“子-父”复本,子复本始终为数据发送方。无论是何种情况,数据接收方发送确认消息仍然非常重要。对于检出复本,子复本始终是数据发送方,并且不需要任何确认消息。有关复本类型的详细信息,请参阅复制类型

到目前为止,本主题介绍了消息在父复本和子复本之间来回发送的基本消息交换模式。如果继续使用此模式,系统将正常运行,甚至可以在丢失消息时执行更正。但是,您也可能要考虑以下特定的消息交换情况。

重新发送未确认的消息

系统允许复本重新发送未确认的数据变更。作为数据发送方,当知道或怀疑之前的数据变更消息已丢失且需要重新发送时,可能需要进行此操作。不过,也可以一直等到下次发送数据变更,因为默认情况下,这会包含新变更以及任何未确认的变更。

下图显示了需要重新发送未确认数据变更的情况。这里,父复本发送了数据变更消息,从发送方切换为接收方。但消息丢失了,这使父复本和子复本均成为数据接收方。要解决此问题,刚刚切换了角色的数据接收方可以使用“重新导出未确认的消息”选项。这样,它会允许父复本向子复本重新发送切换角色的消息。

如果尚未确认变更,则数据发送方可以重新发送数据变更消息

切换角色之后确认变更

在双向复本中切换角色后,数据发送方可以使用导出确认消息选项,以确认切换角色的消息。或者,也可以发送一条数据变更消息,因为它会隐式地确认此消息。但是,如果不打算在近期发送数据变更消息,则应发送确认消息。

在下图中,父复本发送了一条切换角色的数据变更消息。当子复本收到此消息时,它将变成数据发送方,但由于是刚刚切换,系统仍允许它发送确认消息。

切换角色之后确认变更

切换角色而不发送数据变更

可以发送不包含任何数据变更而只包含角色切换指令的数据变更消息。作为数据发送方,如果需要从数据接收方获取变更,但不准备发送数据变更时,可能需要进行此操作。有关发送消息以切换角色但不发送任何数据的详细信息,请参阅导出数据变更消息

绕过确认消息文件

默认情况下,发送数据变更时会发送所有新数据变更以及未确认的数据变更。新变更是指上一次导出数据变更消息之后对复本版本执行的任何插入、更新和删除。未确认的数据变更包括先前导出的尚未收到确认的变更。如果发送了多条数据变更消息,但都未收到确认,则数据变更文件会变得很大。

解决此问题的最好办法是数据接收方发送确认消息文件。然而,由于其依赖通信系统,这个办法也未必始终可行。例如,如果复本已离线且需要配送交换文件的介质以发送确认文件,您可能会选择向管理数据发送方复本的人员发送电子邮件来说明已收到并导入数据变更。

但请注意,绕过确认消息文件将会增加同步管理的复杂性。

相关主题

5/10/2014