如果上载中包含修改 SAP Sybase IQ 库中定义的任何同步表的上载数据,并且如果 MobiLink 服务器正在运行多个并发数据库工作线程,那么必须将所有上载序列化,因为在任何给定时间 SAP Sybase IQ 15 服务器仅允许单个连接修改
SAP Sybase IQ 库中的给定表。
如果编写的 begin_upload 连接脚本中包括或使用以下 SQL 语句,那么满足此要求:
LOCK TABLE table_name IN WRITE MODE WAIT time_string
其中 table_name 为在 SAP Sybase IQ 库中定义的表名称,time_string 用于指定锁定表的最长时间段。表可以简单定义如下:
create table coordinate_upload ( c1 int )
该表不需要包含任何数据。
所有修改 SAP Sybase IQ 表的事务都必须进行序列化,无论是在 MobiLink 服务器连接上发生的事务还是与 SAP Sybase IQ 数据库的其它连接上发生的事务。对于 MobiLink 服务器事务,可以使用上面介绍的相同逻辑。与让
MobiLink 服务器自动重试每个事务相比,此方法更为有效并且具有更好的性能。
为 SAP Sybase IQ 统一数据库创建同步模型时,表映射对于 SAP Sybase IQ 表的缺省情况为仅下载。如果将任何映射更改为双向或仅上载,则必须确保将这些 SAP Sybase IQ 表的更改序列化。例如,按照上面的描述添加 begin_upload
事件。