您可以使用此存储过程来处理同步期间出现的数据库错误。例如,您可以实现 sp_hook_dbmlsync_sql_error 挂接,从而在发生 SQL 错误时执行特定操作。
名称 | 值 | 说明 |
---|---|---|
publication_n (in) |
发布 |
不建议使用。改用 subscription_n。正被同步的发布,其中 n 是一个整数。每个正在同步的发布都有一个 publication_n 条目。n 的编号从零开始。 |
MobiLink user (in) |
MobiLink 用户名 |
您正在为其进行同步的 MobiLink 用户。 |
script version (in) |
脚本版本名称 |
将用于同步的 MobiLink 脚本版本。 |
error message (in) | 错误消息文本 | 这与在 dbmlsync 日志中显示的文本相同。 |
error id (in) | 数字 | 唯一标识消息的 ID。 |
error hook user state (in|out) | 整数 |
此值可由挂接设置,以便将状态信息传递到对 sp_hook_dbmlsync_all_error、sp_hook_dbmlsync_communication_error、sp_hook_dbmlsync_misc_error、sp_hook_dbmlsync_sql_error 或 sp_hook_dbmlsync_end 挂接的未来调用。第一次调用这些挂接的其中之一时,该行的值为 0。如果挂接更改了行值,则将在下一个挂接调用中使用新值。 |
SQLCODE (in) | SQLCODE | 操作失败时由数据库返回的 SQLCODE。请参见按 SQLCODE 排序的 SQL Anywhere 错误消息。 |
SQLSTATE (in) | SQLSTATE 值 | 操作失败时由数据库返回的 SQLSTATE。 |
subscription_n (in) | 预订名称 | 正在进行同步的预订的名称,其中 n 是一个整数。每个正在同步的预订都有一个 subscription_n 条目。n 的编号从零开始。 |
如果在启动过程中还没有初始化同步的时候发生了错误,用于 Mobilink 用户和脚本版本的 #hook_dict 条目将被设置为一个空字符串,并且在 #hook_dict 表中不设置 publication_n 行或 subscription_n 行。
您可以使用 SQL Anywhere SQLCODE 或 ANSI SQL 标准 SQLSTATE 来标识 SQL 错误。有关 SQLCODE 或 SQLSTATE 值的列表,请参见SQL Anywhere 错误消息。
错误挂接用户状态行为您提供了一种有用的机制来将错误性质的相关信息传递到 sp_hook_dbmlsync_end 挂接,您可以在该挂接中使用这些信息确定是否重试同步。
此过程将在单独的连接上执行以确保它执行的操作不会在同步连接执行回退时丢失。如果 dbmlsync 无法建立单独的连接,则不调用该过程。
由于此挂接是在单独的连接上执行的,因此您在访问在挂接过程中正在同步的表时应谨慎使用,因为 dbmlsync 可能会锁定这些表。这些锁定可能会导致挂接中的操作失败或无限期等待。
该过程的操作将在执行后立即被提交。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |