删除了基于游标的上载 以下脚本在 9.0.0 版中不建议使用,现在已将这些脚本删除:upload_cursor、new_row_cursor 和 old_row_cursor。您应该改用基于语句的脚本。
请参见编写用于上载行的脚本。
无法识别的脚本会导致同步失败 如果 MobiLink 服务器遇到任何无法识别的表级或连接级脚本,它将中止同步。在以前的版本中,无法识别的脚本只产生警告消息。这意味着基于游标的上载脚本的存在会导致同步中止。
上载或下载脚本中的错误会导致同步失败 现在,MobiLink 服务器遇到上载或下载脚本中的错误时会始终中止同步。以前,MobiLink 服务器不会始终中止同步。
handle_error 和 handle_odbc_error 事件在更受限制的方式下工作 现在,只有当 MobiLink 在上载事务期间处理插入、更新或删除脚本或者当其读取下载行时发生 ODBC 错误,才调用 handle_error 和 handle_odbc_error 脚本。如果 ODBC 错误在其它时间发生,则 MobiLink 服务器调用 report_error 或 report_odbc_error 脚本并中止同步。
提交验证脚本 如果没有错误,MobiLink 服务器将始终在调用 authenticate_user、authenticate_user_hashed 或 authenticate_parameters 脚本后提交事务,即使验证失败。以前,涉及失败验证的事务被回退,因此可能没有失败的验证尝试的记录。请参见:
对 authenticate_user_hashed 脚本的更改 现在可以在用户验证序列过程中多次调用 authenticate_user_hashed 脚本。
调用开始脚本后,无论同步是否成功,都将调用其结束脚本 有一些 MobiLink 脚本具有开始和结束格式,如 begin_connection 和 end_connection。过去,如果同步失败,则通常不执行结束脚本。现在,如果调用了开始脚本,则始终调用结束脚本(如果已定义),即使同步有错误。
请参见同步事件。
没有要上载的数据时不调用表的上载脚本 在以前的版本中,可以使用 -us 选项防止 MobiLink 服务器在没有要上载的数据时调用上载脚本。现在删除了 -us 选项,并且缺省情况下,MobiLink 服务器仅在上载流包含要上载的数据时才调用上载脚本。可以使用 -zus 选项恢复为原来的行为。
请参见-zus 选项。
SQL Anywhere 10 和 Microsoft SQL Server 2005 统一数据库不应更改 begin_connection 脚本中的隔离级别 对于 SQL Anywhere 版本 10 和 Microsoft SQL Server 2005 及更高版本的统一数据库,下载的缺省隔离级别现在是快照。这意味着可以在开始下载事务时更改隔离级别,此种情况下将覆盖 begin_connection 脚本中的任何设置。因此,您应该在 begin_download 脚本中更改下载的隔离级别,或使用新的 mlsrv10 -dsd 选项来禁用快照隔离。以前的文档建议在 begin_connection 脚本中更改隔离级别,对于不使用快照隔离的统一数据库而言,这仍是一个好的做法。
请参见MobiLink 隔离级别。
删除了 example_upload_cursor、example_upload_delete、example_upload_insert 和 example_upload_update 表事件 由于删除了 -za 和 -ze MobiLink 服务器选项,将不再生成 example_upload_cursor、example_upload_delete、example_upload_insert 和 example_upload_update 表事件。现在可以使用 [创建同步模型向导] 生成脚本。
请参见创建模型。
-w 和 -wu 选项发生了变化 -w 选项和 -wu 选项分别用于设置数据库工作线程数和上载数据库工作线程的最大数。在以前的版本中,这些工作线程执行同步的每个方面,包括读取和写入网络、压缩和解压缩协议字节和行数据、运行脚本以及更新和读取统一数据库中的行。
现在 -w 和 -wu 选项仅影响数据库工作线程。这些数据库工作线程仅负责所有的数据库活动,不负责其它活动。其它线程负责网络活动、压缩和解压缩以及所有其它 MobiLink 服务器活动。
-w 选项和 -wu 选项的新行为与网络活动无关。在以前的版本中,具有长等待时间的网络可能会导致工作线程阻塞,从而需要某些部署来指定大的工作线程数。新的 MobiLink 体系结构取消了此需求。
要限制 MobiLink 服务器对统一数据库施加的负载,最简单的方法仍然是使用 -w 和 -wu 选项。测试 -w 和 -wu 值可以帮助您找到同步系统的最佳吞吐量。请参见:
删除了用于设置高速缓存大小的选项 删除了以下 mlsrv10 选项:
这些选项已被 mlsrv10 -cm 选项所替代,该选项为所有同步设置高速缓存。
请参见-cm 选项。
删除了用于设置超时的选项 以下 mlsrv10 选项不再需要并已被删除:
请参见timeout。
更改了协议名称和网络选项 security 删除了以下网络协议关键字:https_fips、rsa_tls、rsa_tls_fips、ecc_tls;以及网络协议选项 security。网络协议未被删除,但现在可以不同的方式指定这些协议。mlsrv10 -x 语法发生了如下变化:
旧语法 | 10.0.0 版中的新语法 | 说明 |
---|---|---|
-x https_fips | -x https(fips=y;...) | 具有 FIPS 的 HTTPS |
-x rsa_tls | -x tls(tls_type=rsa;...) | 具有使用 RSA 加密的 TLS 的 TCP/IP |
-x rsa_tls_fips | -x tls(tls_type=rsa;...) | 具有使用 RSA 加密的 TLS 和 FIPS 的 TCP/IP |
-x ecc_tls | -x tls(tls_type=ecc;...) | 具有使用 ECC 加密的 TLS 的 TCP/IP |
-x tcpip(security=...) | -x tcpip | TCP/IP |
-x http(security=...) | -x http | HTTP |
请参见-x 选项。
更改了 -bn 选项 mlsrv10 -bn 选项在冲突检测过程中对 BLOB 字节进行比较。以前,会对 LONGVARCHARP 类型的数据进行字符比较。现在,进行比较的单位始终是二进制和 LONGVARCHAR BLOB 的字节。
请参见-bn 选项。
更改了详细程度输出 mlsrv10 选项 -vr、-vt 和 -vu 输出的信息都稍有不同:
-vr 现在,-vr 只返回上载和下载行值。以前,还返回上载和下载脚本的名称和内容。
-vt 现在,-vt 只返回转换的脚本的内容。以前,还返回原始脚本内容。
-vu 现在,-vu 在需要调用脚本时返回所有未定义的表脚本。其中包括统计脚本。
请参见-v 选项。
删除了 MobiLink 服务器选项 -za 和 -ze 删除了由 MobiLink 服务器 -za 选项和 -ze 选项提供的自动脚本生成功能。现在可以使用 [创建同步模型向导] 生成脚本。
请参见创建模型。
删除了 -zac 和 -zec 不建议使用用于生成基于游标的脚本的 MobiLink 服务器选项 -zac 和 -zec,现在已将它们删除。
删除了 MobiLink 服务器选项 -oy mlsrv10 -oy 选项(用于显示时间戳中的年)已被删除。现在始终在信息性消息、警告消息和错误消息的时间戳中显示年。
上载和下载的字节计数的含义发生了变化。现在,字节计数反映了 MobiLink 服务器中用于存储上载和下载的内存量。以前,是指上载和下载在发送到或接收自 MobiLink 服务器时的大小(以字节为单位)。新的计数方法可以更好地指示同步对服务器内存的影响,所以更有用。此外,使用 HTTP、加密或压缩时,以前的计数方法可能不可靠。
在本文档的以前版本中,属性说明不解释在不同模式下(正常上载模式或强制冲突模式)使用属性时,属性会返回不同值。对此进行了更正(请参见以下内容)。
以下统计属性已更改:
统计属性 | 说明 |
---|---|
conflicted_deletes |
在正常上载模式下,其值始终为零。 在强制冲突模式下,它返回使用 upload_old_row_insert 脚本成功插入到统一数据库中的上载删除行的总数。 以前,它返回检测到有冲突的上载删除行数。 |
conflicted_inserts |
在正常上载模式下,其值始终为零。 在强制冲突模式下,它返回使用 upload_new_row_insert 脚本成功插入到统一数据库中的上载插入行的总数。 以前,它返回检测到有冲突的上载插入行数。 |
conflicted_updates |
在正常上载模式下,它返回导致冲突的更新行的总数。 在强制冲突模式下,它返回使用 upload_new_row_insert 或 upload_old_row_insert 脚本成功应用的上载更新行的总数。 以前,它返回检测到有冲突的上载更新行数。 |
download_bytes |
它返回 MobiLink 服务器内用来存储下载的内存量。 以前,它返回下载的字节数。 |
ignored_deletes |
在正常上载模式下,如果定义了 handle_error 或 handle_odbc_error 并返回 1000,或者对给定表没有定义 upload_delete 脚本,此属性会返回调用 upload_delete 脚本时导致出错的上载删除行的总数。 在强制冲突模式下,如果定义了 handle_error 或 handle_odbc_error 并返回 1000,或者对给定表没有定义 upload_old_row_insert 脚本,此属性将返回调用 upload_old_row_insert 脚本时导致出错的上载删除行的总数。 以前,它返回忽略的上载删除行数。 |
ignored_inserts |
在正常上载模式下,如果定义了 handle_error 或 handle_odbc_error 并返回 1000,或者对给定表没有定义 upload_insert 脚本,此属性将返回调用 upload_insert 脚本时导致出错的上载插入行的总数。 在强制冲突模式下,如果定义了 handle_error 或 handle_odbc_error 并返回 1000,或者对给定表没有定义 upload_insert 脚本,此属性将返回调用 upload_new_row_insert 脚本时导致出错的上载插入行的总数。 以前,它返回忽略的上载插入行数。 |
ignored_updates |
在正常上载模式下,如果定义了 handle_error 或 handle_odbc_error 并返回 1000,或者对给定表没有定义 upload_update 脚本,此属性将返回调用 upload_update 脚本时导致出错的上载更新行的总数。 在强制冲突模式下,如果定义了 handle_error 或 handle_odbc_error 并返回 1000,此属性将返回调用 upload_new_row_insert 或 upload_old_row_insert 脚本时导致出错的上载更新行的总数。 以前,它返回忽略的上载更新行数。 |
upload_bytes |
它返回 MobiLink 服务器内用来存储上载的内存量。 以前,它返回上载的字节数。 |
upload_deleted_rows |
在正常上载模式下,它返回从统一数据库中成功删除的行的总数。 在强制冲突模式下,其值始终为零。 以前,它返回从同步客户端上载的行删除的数目。 |
upload_inserted_rows |
在正常上载模式下,它返回成功插入到统一数据库中的行的总数。 在强制冲突模式下,其值始终为零。 以前,它返回从同步客户端上载的行插入的数目。 |
upload_updated_rows |
在正常上载模式下,它返回统一数据库中成功更新的行的总数。 在强制冲突模式下,其值始终为零。 以前,它返回从同步客户端上载的行更新的数目。 |
请参见MobiLink 统计信息属性。
空值字符现在可与远程数据库中 CHAR 或 NCHAR 数据类型的列进行同步 以前在 MobiLink 中,包含空值字符的 VARCHAR 和 CHAR 列值可能导致同步失败。现在,您可以对远程数据库中数据类型为 CHAR、VARCHAR、LONG VARCHAR、NCHAR、NVARCHAR 和 LONG NVARCHAR 的列中的空值字符进行同步。
用于记录信息性、警告和错误消息的新格式 以前,MobiLink 服务器以以下格式记录消息:
T.mm/dd hh:mm:ss. thread_id User_name: message |
现在,MobiLink 服务器采用以下格式记录消息:
T. yyyy-mm-dd hh:mm:ss. synchronization_id: message |
对于每个同步,日志中的第一条消息都显示远程 ID、用户名、脚本版本和客户端名称(UltraLite 或 SQL Anywhere)。
新格式在没有减少提供的信息的情况下减少了输出日志的大小。
系统过程中用于 Oracle 的新数据类型 在用于注册脚本的 MobiLink 系统过程中,脚本内容参数现在将 CLOB 数据类型用于 Oracle 统一数据库。在 ml_add_property 系统过程中,prop_value 参数现在为用于 Oracle 的 CLOB。以前,这些参数的类型为 VARCHAR。
请参见MobiLink 服务器系统过程。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |