离线同步

此主题仅适用于 ArcEditor 和 ArcInfo。

离线环境中执行离线同步。

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

无论何时,一个复本不是数据发送方就是数据接收方。要了解有关如何确定复本是数据发送方还是数据接收方的信息,请参阅复本管理快速浏览。数据发送方会将数据变更消息导出到增量文件中,增量文件包含要应用于关系复本的变更。数据接收方将确认消息导出到确认文件来确认它所收到的内容。

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

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

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

离线同步1

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

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

离线同步2

复本类型决定了消息交换的方式。双向复本使用数据变更和确认消息,并且可以切换角色。对于单向复本,父复本始终是数据发送方,并且不能切换角色,但对于子复本来说发送确认消息仍然很重要。对于检出复本,子复本始终是数据发送方,并且不需要任何确认消息。

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

重新发送未确认的消息

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

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

离线同步4

切换角色之后确认变更

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

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

离线同步3

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

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

口头确认

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

最好的解决办法是数据接收方发送确认消息。然而,根据通信系统而定,这可能会比较困难。

另一种方法是使用口头确认。在这种情况下,发送方可以从管理数据接收方的人员那里获得口头确认,来获知先前发送的变更已经收到。可使用复本管理器来确定复本发送了哪些变更以及收到了哪些变更。然后,数据发送方会只发送新变更。只要正确地报告先前发送的变更已接收,数据接收方就可以导入这些新变更。如果系统检测到先前发送的变更尚未导入,则会导致错误。如果一次发送多条数据变更消息,则必须以正确的顺序将它们导入。如果试图以不正确的顺序导入,系统将产生错误。

出现错误时,系统会提供错误消息。但如果使用的是自动化系统,则不会向您显示这些错误。在这种情况下,可使用复本活动日志来检查在同步期间是否发生了错误。日志中还会在适当的时候向您提供有关如何恢复的说明。

要特别注意的是,尽管口头确认这种方法可以将消息变得较小,但它与使用确认消息这种方式并不是等效的。只有使用导入确认消息这种方法,系统才能删除重新发送复本变更所需的系统版本。随着时间的推移,这些系统版本会妨碍压缩,而使发送方的地理数据库变得很大。因此,即使在使用口头确认方法时,也要定期使用确认消息这种方法,这一点很重要。

相关主题


7/10/2012