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

 

request_cursor 事件

此轮询事件接受 SQL 脚本,并会被触发以检测推式请求。必须配置此事件。

使用轻量级轮询器(建议)时读取推式请求

此事件的结果集中最多包含三列时,通告程序确认服务器和设备之间没有持久性连接,在推式通知被发送前,设备必须先轮询通告程序。在发送推式通知前,通告程序高速缓存结果集。MobiLink 服务器通过轮询键标识设备,设备每次轮询通告程序都发送轮询键。

此事件的结果集必须按指定顺序包含以下列:

  • 轮询键

  • 主题(可选)

  • 内容(可选)

使用网关时读取推式请求

此事件的结果集中包含三列以上时,通告程序确认服务器和设备之间存在持久性连接,那么在检测到推式请求时使用网关发送推式通知。

此事件的结果集必须按指定顺序包含以下列:

  • 请求 ID(可选)

  • 网关

  • 主题

  • 内容

  • 地址

  • 重发间隔(可选)

  • 生存期(可选)

另请参见
示例

以下示例使用 ml_add_property 系统过程为名为 Simple 的自定义通告程序创建 request_cursor 事件脚本。SELECT 语句告诉通告程序从名为 PushRequest 的表检测推式请求。

CALL ml_add_property('SIS', 'Notifier(Simple)', 'request_cursor',
    'SELECT poll_key,
        subject,
        content
    FROM PushRequest'
);

建议您在脚本中包括 WHERE 子句,以过滤掉已发送的请求。例如,可以添加推式请求列来跟踪插入请求的时间,然后在此事件中使用 WHERE 子句过滤掉在上次用户同步之前插入的请求。