可以使用此存储过程在 dbmlsync 已验证 MobiLink 服务器收到上载后添加自定义操作。
名称 |
值 |
说明 |
---|---|---|
failure cause (in) |
请参见下面的注释部分中的值范围。 |
导致上载失败的原因。有关详细信息,请参见说明。 |
upload status (in) |
retry | committed | failed | unknown |
指定在 dbmlsync 试图验证是否接收到上载时 MobiLink 服务器所返回的状态。 retry - MobiLink 服务器与 dbmlsync 中的上载开始位置的日志偏移值不同。MobiLink 服务器未提交上载。dbmlsync 实用程序会尝试发送从新的日志偏移处开始的另一个上载。 committed - MobiLink 服务器已接收到上载并已提交。 failed - MobiLink 服务器未提交上载。 unknown - 启动 dbmlsync 时使用了 -tu 选项,从而引发了事务级上载。对于每个上载的事务,都调用了 sp_hook_dbmlsync_upload_begin 和 sp_hook_dbmlsync_upload_end 挂接,且 upload status 的值为 unknown - 除最后一次外,每次都如此。 |
publication_n (in) |
发布 |
正被同步的发布,其中 n 是一个整数。每个正在上载的发布都有一个 publication_n 条目。n 的编号从零开始。 |
MobiLink user (in) |
MobiLink 用户名 |
您正在为其进行同步的 MobiLink 用户。 |
script version (in) |
脚本版本名称 |
将用于同步的 MobiLink 脚本版本。 |
authentication value (in) | 值 |
此值由服务器上的 authenticate_user、authenticate_user_hashed 或 authenticate_parameters 脚本生成。当 upload status 为 unknown,或者由于远程数据库和统一数据库中存储的日志偏移之间存在冲突而重发上载之后调用 upload_end 挂接时,此值为空字符串。 |
如果以该名称命名的过程存在,那么它将在 dbmlsync 已发送上载并收到来自 MobiLink 服务器的确认后立即被调用。
该过程的操作将在执行后立即被提交。
#hook_dict 表中 failure cause 行参数的可选值为:
假定您使用下面的表记录远程数据库上的同步事件。
CREATE TABLE SyncLog( "event_id" INTEGER NOT NULL DEFAULT AUTOINCREMENT , "event_name" VARCHAR(128) NOT NULL , "ml_user" VARCHAR(128) NULL , "event_time" TIMESTAMP NULL, "table_name" VARCHAR(128) NULL , "upsert_count" VARCHAR(128) NULL , "delete_count" VARCHAR(128) NULL , "exit_code" INTEGER NULL , "status_retval" VARCHAR(128) NULL , "pubs" VARCHAR(128) NULL , "sync_descr " VARCHAR(128) NULL , PRIMARY KEY ("event_id"), ); |
以下示例在 dbmlsync 验证 MobiLink 服务器已收到上载之后记录 MobiLink 用户和当前时间戳。
CREATE PROCEDURE sp_hook_dbmlsync_upload_end () BEGIN DECLARE status_return_value VARCHAR(255); -- store status_return_value SELECT #hook_dict.value INTO status_return_value FROM #hook_dict WHERE #hook_dict.name = 'upload status'; INSERT INTO SyncLog (event_name, ml_user, status_retval, event_time) SELECT 'upload_end', #hook_dict.value, status_return_value, CURRENT TIMESTAMP FROM #hook_dict WHERE name = 'MobiLink user'; END; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |