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 服务器设置 » 通告程序事件 » 轮询事件

 

error_handler 事件

配置此事件在传输失败或未确认时进行指示。例如,传输失败时,可以使用此事件在审计表中插入行或发送推式通知。

下表详细说明可以使用 error_handler 事件捕获的参数:

脚本参数 类型 说明
request_option (out) Integer

控制错误处理程序返回后通告程序对推式请求执行的操作。输出可以是以下值之一:

  • 0:执行基于错误代码的缺省操作并记录错误。
  • 1:不执行任何操作。
  • 2:执行 request_delete 事件。
  • 3:尝试传送到辅助网关。
error_code (in) Integer

针对错误代码使用以下值之一:

  • -1:请求超时及成功确认。
  • -8:传送尝试过程中出错。
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 选项运行文件。有关如何配置通告程序配置文件的详细信息,请参见使用通告程序配置文件配置服务器端设置