配置此事件在传输失败或未确认时进行指示。例如,传输失败时,可以使用此事件在审计表中插入行或发送推式通知。
下表详细说明可以使用 error_handler 事件捕获的参数:
脚本参数 | 类型 | 说明 |
---|---|---|
request_option (out) | Integer |
控制错误处理程序返回后通告程序对推式请求执行的操作。输出可以是以下值之一:
|
error_code (in) | Integer |
针对错误代码使用以下值之一:
|
request_id (in) | Integer | 标识请求。 |
gateway (in) | Varchar | 指定与推式请求关联的网关。 |
address (in) | Varchar | 指定与推式请求关联的地址。 |
subject (in) | Varchar | 指定与推式请求关联的主题。 |
content (in) | Varchar | 指定与推式请求关联的内容。 |
此事件要求使用系统过程。不能使用 Sybase Central 直接配置此事件。请参见用于服务器启动的同步的 MobiLink 服务器设置。
在以下示例中,您将创建一个名为 CustomError 的表,然后使用名为 CustomErrorHandler 的存储过程在表中记录错误。输出参数 Notifier_opcode 始终为 0,表示使用缺省通告程序处理。
CREATE TABLE CustomError( error_code integer, request_id integer, gateway varchar(255), address varchar(255), subject varchar(255), content varchar(255), occurAt timestamp not null default timestamp ); CREATE PROCEDURE CustomErrorHandler( out @Notifier_opcode integer, in @error_code integer, in @request_id integer, in @gateway varchar(255), in @address varchar(255), in @subject varchar(255), in @content varchar(255) ) BEGIN INSERT INTO CustomError( error_code, request_id, gateway, address, subject, content) VALUES( @error_code, @request_id, @gateway, @address, @subject, @content ); SET @Notifier_opcode = 0; END |
要将 ml_add_property 系统过程与 SQL Anywhere 统一数据库一起使用,请运行以下命令:
call ml_add_property( 'SIS', 'Notifier(myNotifier)', 'error_handler', 'call CustomErrorHandler(?, ?, ?, ?, ?, ?, ?)'); |
还可以通过将以下行添加到通告程序配置文件触发此事件:
Notifier(myNotifier).error_handler = call CustomErrorHandler(?, ?, ?, ?, ?, ?, ?) |
使用 mlsrv11 -notifier 选项运行文件。有关如何配置通告程序配置文件的详细信息,请参见使用通告程序配置文件配置服务器端设置。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |