Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » MobiLink - 服务器管理 » 使用 MobiLink 服务器技术 » 同步技术 » 基于时间戳的下载 » 在脚本中使用上次下载时间

 

如何生成和使用下载时间戳

MobiLink 按以下方式生成时间戳并将其用于基于时间戳的下载:

  • 在提交上载后、调用 prepare_for_download 事件前,MobiLink 服务器从统一数据库读取当前时间并保存该值。此时间戳值表示当前下载的开始时间;下一次同步只需下载此时刻后更改的数据。

  • MobiLink 服务器将发送此时间戳值作为下载的一部分,并且客户端会将其存储下来。

  • 客户端下次同步时,将使用与上载一同发送的 last_download_timestamp 的时间戳值。

  • MobiLink 服务器将把客户端刚刚上载的 last_download_timestamp 传递到 download_cursor 和 download_delete_cursor。然后游标可以选择包含晚于或等于上次 last_download_timestamp 时间戳的更改以确保仅下载新更改。

上次下载时间的存储位置

上次下载时间存储在远程数据库中。这个位置很合适,因为只有远程数据库知道是否已成功应用下载。

如果是 SQL Anywhere 远程数据库,会在每次预订时存储上次下载时间。请参见SYSSYNC 系统视图

如果是 UltraLite 远程数据库,会在每次发布时存储上次下载时间。请参见syspublication 系统表

更改上次下载时间

在极少数情况下,您可能想要修改 last_download_timestamp。例如,如果意外删除了远程数据库上的所有数据,可通过定义 modify_last_download_timestamp 连接脚本来重置上次下载时间戳值,从而重新同步远程数据库。还有另一个事件(名为 modify_next_last_download_timestamp)可用来重置下次同步时间戳,而不是当前同步时间戳。请参见:

UltraLite 还提供更改远程数据库中的上次下载时间的功能。请参见:

另请参见