同步是 MobiLink 客户端和同步服务器之间的双向数据交换过程。在此过程中,客户端必须建立并维护与同步服务器的连接。如果成功,此会话将使远程数据库和统一数据库保持相互一致的状态。
一般由客户端开始进行同步过程。它开始于与 MobiLink 同步服务器建立的连接。
对于数据行的上载,MobiLink 客户端准备并发送一个上载流,它包含从上次同步后在 MobiLink 客户端经过更新、插入或删除的所有行的列表。类似地,对于数据行的下载,MobiLink 同步服务器准备并发送一个下载流,它包含插入、更新和删除的列表。
上载流 MobiLink 客户端自动跟踪记录在上一次成功同步之后远程数据库中插入、更新和删除了哪些行。连接一旦建立,MobiLink 客户端将一个列出所有这些更改的列表上载到同步服务器。
上载流由远程数据库中被修改的各行的新行值和旧行值组成。如果某行被更新或删除,旧行值是指上次成功同步后时的那些值。如果某一行被插入或更新,新行值是指当前的行值。即使在到达当前状态之前,行已经更改过数次,也不会发送任何中间值。
MobiLink 同步服务器接收上载流并将更改应用于统一数据库中。所有的更改一般都在一次事务中完成应用。此后,MobiLink 同步服务器将提交该事务。
注意MobiLink 运行时使用 ODBC 隔离级别 SQL_TXN_READ_COMMITTED 作为统一数据库的缺省隔离级别。其原因是冲突检测中需要可重复的读取。如果您没有冲突检测脚本或希望选择更适合您的需求的隔离级别,您可以在 begin_connection 脚本中设置该级别。 |
下载流 MobiLink 同步服务器将使用您创建的同步逻辑编译在 MobiLink 客户端插入、更新或删除的一组行。它将这些行下载到MobiLink 客户端。为了对该列表进行编译,MobiLink 同步服务器将在统一数据库中打开一个新事务。
MobiLink 客户端接收下载流。当下载流到达时,MobiLink 客户端认为统一数据库已成功应用所有上载的更改,并将确保这些更改不会再发送到统一数据库中。
接下来,MobiLink 客户端将自动对下载流进行处理,删除旧行、插入新行以及更新已更改的行。所有的更改将在远程数据库中的一个事务中完成应用。此后,MobiLink 同步服务器将提交该事务。
可选的下载确认 MobiLink 客户端可以将一个简短确认消息发送给 MobiLink 同步服务器。
MobiLink 同步服务器接收到确认消息。该消息让同步服务器知道客户端已经接收并处理了所有下载的更改。作为响应,同步服务器将提交始于第 2 步的下载事务。
有关 SendDownloadAck 扩展选项的详细信息,请参见 SendDownloadACK (sa) 扩展选项和Send Download Acknowledgement 同步参数。
在 MobiLink 同步中,只有很少的明显交换信息。客户端建立并上载整个上载流。作为响应,同步服务器建立并下载整个下载流。在通信较慢而等待时间较长的时候,例如在使用电话线或公共无线网时,对协议中的无用信息进行限制非常重要。
MobiLink 事件
存储过程
同步过程中的事务
如何处理同步失败
如何处理上载流
参照完整性与同步
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。