将自定义同步支持添加到 UltraLite 最多涉及三个任务:
在包含多个远程客户端的同步模型中维护主键唯一性 必需。在同步系统中,主键是标识不同数据库(远程数据库和统一数据库)中相同行的唯一方式,也是检测冲突的唯一方式。因此,多个客户端必须遵守以下规则:
确保设置了日期列,使小数数据不会丢失 对于 SQL Anywhere 统一数据库,这通常不是问题。但对于诸如 Oracle 的数据库,可能就需要考虑兼容性问题。例如,UltraLite 和 Oracle 数据库必须共享相同的时间戳精度。另外,还应该向 Oracle 数据库添加 TIMESTAMP,以避免 UltraLite 远程数据库向统一数据库上载数据时丢失小数秒数据。请参见Oracle 统一数据库和UltraLite 精度创建参数。
说明要上载到统一数据库的数据子集 可选。只有在不想按缺省设置同步所有数据的情况下,才需要执行此任务。要定向要同步的数据,可使用一个或多个子集技术。请参见设计 UltraLite 中的同步。
例如,您可能想要为高优先级数据创建一个发布。用户可通过高速无线网络同步此类数据。由于无线网络可产生较高的使用开销,因此,您可能想将这些使用费投资于业务关键数据。可在以后再同步底座中不太紧急的数据。
从 UltraLite 应用程序初始化同步和提供描述会话的参数 必需。编程同步包括两部分:描述会话,然后初始化同步操作。
描述会话主要涉及选择同步通信流(也称为网络协议)及其参数、设置同步脚本的版本和指派 MobiLink 用户。但也可以配置其它参数:例如,使用 upload_only 和 download_only 参数将缺省的双向同步更改为仅单向同步。请参见向 UltraLite 应用程序添加同步。
所有其它重要的同步行为是通过 MobiLink 同步脚本控制的。您需要多个脚本,因为每个 MobiLink 远程数据库都可以包含统一数据库中的另一个数据子集。
其中包括:
哪些数据作为更新下载到 UltraLite 远程数据库中的表。
对从远程数据库上载的更改需要进行哪些处理。
这意味着您可以编写自己的同步脚本,以便以适合的方式在各远程数据库间进行数据分区。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |