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 的 SQL Anywhere 客户端 » SQL Anywhere 客户端的事件挂接

 

sp_hook_dbmlsync_process_exit_code

您可以使用此存储过程管理退出代码。

#hook_dict 表中各行

名称

说明

publication_n (in)

发布

正被同步的发布,其中 n 是一个整数。每个正在上载的发布都有一个 publication_n 条目。n 的编号从零开始。

MobiLink user (in)

MobiLink 用户名

您正在为其进行同步的 MobiLink 用户。

fatal error (in)

true | false

因为将导致 dbmlsync 终止的错误而调用此挂接时为 True。

aborted synchronization (in)

true | false

因为 sp_hook_dbmlsync_abort 挂接的中止请求而调用此挂接时为 True。

exit code (in)

数字

最近同步尝试的退出代码。0 指示成功的同步。任何其它值都表示同步失败。该值可在 sp_hook_dbmlsync_abort 用于中止同步时由该挂接设置。

last exit code (in)

数字

上次调用此挂接时存储在 #hook_dict 表 new exit code 行中的值,或为 0(如果这是第一次调用此挂接)。

new exit code (in|out)

数字

您为进程选择的退出代码。当 dbmlsync 退出时,其 exit code 为上次调用该挂接时存储在该行中的值。该值必须在 -32768 至 32767 之间。

script version (in)

脚本版本名称

将用于同步的 MobiLink 脚本版本。

注释

当命令行中指定多次 -n 选项,或使用调度,或使用 sp_hook_dbmlsync_end 中的 restart 参数时,一个 dbmlsync 会话可以运行多个同步。在这些情况下,如果一个或多个同步失败,缺省的退出代码不能表示哪个同步失败了。您可以使用此挂接根据同步的退出代码来定义 dbmlsync 过程的退出代码。此挂接还可用于记录退出代码。

如果在启动过程中还没有初始化同步的时候发生了错误,用于 Mobilink 用户和脚本版本的 #hook_dict 条目将被设置为一个空字符串,并且在 #hook_dict 表中不设置 publication_n 行。

示例

假定您运行 dbmlsync 来执行五个同步,并且希望退出代码指示失败的同步的个数,其中退出代码 0 指示无失败,退出代码 1 指示有一个同步失败,依次类推。您可以通过定义 sp_hook_dbmlsync_process_exit_code 挂接来实现此目的,如下所示。在此情况下,如果三个同步失败了,则新退出代码为 3。

CREATE PROCEDURE sp_hook_dbmlsync_process_exit_code()
BEGIN
   DECLARE  rc INTEGER;

   SELECT value INTO rc FROM #hook_dict WHERE name = 'exit code';
   IF rc <> 0 THEN
      SELECT value INTO rc FROM #hook_dict WHERE name = 'last exit code';
      UPDATE #hook_dict SET value = rc + 1 WHERE name = 'new exit code';   
   END IF;
END;
另请参见