远程任务是执行远程数据库集中管理时的工作单元。一个远程任务包含以下各项:
一个或多个触发器机制
可选的条件
有序的命令集合
其它属性
任务由管理员使用 Sybase Central 的 MobiLink 16 插件创建。设计时,它们本地存储在项目中的管理员计算机上。 有关可用于生成任务的命令列表,请参见命令。
通常,一个任务不会依赖于另一个任务的完成。不过,通过用一个任务在远程数据库中写入内容而用另一个任务的条件查询该值,可创建依赖于另一个任务的任务。
当管理员为代理接收任务做好准备后,该管理员就会部署任务。部署时,任务将复制到统一数据库中。现在,任务有以下两个副本:统一数据库中的已部署任务和项目中的设计时任务。不得修改已部署任务。不过,可以修改并再次部署用于创建已部署任务的设计时任务(以创建又一个已部署任务)。可以取消、启动 (SIRT)、重新激活已部署任务,还可将其指派给新的接收者。
部署后,可将任务指派给一个或多个代理执行。指派给代理时,任务将下载到代理。然后,代理会在合适的时候执行任务,并将结果上载回统一数据库(可选),管理员可使用 Sybase Central 的 MobiLink 16 插件在数据库中查看结果。
任务具有以下属性:
名称 一个远程任务具有两个名称:一个用来标识项目中所存储任务的设计时版本,另一个用来标识部署后的任务。两个名称通常相同。
任务的设计时名称在任务创建时指派,并且在项目任务中必须具有唯一性。已部署任务名称在任务部署时指派,并且在统一数据库的已部署任务中必须具有唯一性。
说明 可输入任务说明,其中可包含您希望与该任务相关联的任何文本。说明存储在项目中和统一数据库中(任务部署后),但不会发送到代理。
触发器机制 远程任务的触发器机制可确定代理在何时尝试执行任务。一个任务可以有多个触发器机制。支持的触发器机制有三种:
基于调度 可在特定时间或以特定时间间隔触发任务。必须显式设置任务的这个选项。
代理收到任务时 可在代理收到任务时触发任务,这将只运行一次。必须显式设置任务的这个选项。
要求时 在某种进程(称作服务器启动的远程任务 (SIRT))中,可随时通过服务器消息触发任务。所有未配置为只运行一次的任务均支持要求时触发。
条件 必须满足任务的所有条件后才能执行任务。如果已触发任务但未满足任务的所有条件,运行尝试会被视为失败,必须再次触发任务才能重新评估条件。
远程模式名称 任务可与远程模式名称相关联(可选)。需要访问远程数据库的任务必须与远程模式名称相关联。代理可使用远程模式名称确定在执行任务时代理需要访问哪个数据库。如果任务包含任何以下命令,则其必须与远程模式名称相关联:创建数据库、删除数据库、执行 SQL 或同步。如果要使用 SQL 条件确定是否可运行任务,该任务也必须与远程模式名称相关联。
命令 任务包含一组有序命令,它们可执行任务要求的工作。命令的指定顺序定义了命令在任务中的执行顺序。了解命令的顺序非常重要,因为命令之间可能存在依赖关系。 请参见命令。
最多重试次数 每条命令都有一个失败时操作,可在命令失败时重新尝试任务或命令。此选项可限制单次运行尝试期间允许的重试次数。
每次重试之间的延迟 此选项指定在命令失败后到重新尝试命令或任务前的等待时间。此延迟可用于在重新尝试命令或任务之前,传递导致失败的临时条件(例如,锁定的数据库表或锁定的文件)。重试延迟假设为 "短暂" 的时间段。两次重试之间不会重新评估任务条件。
最长运行时间 任务实际执行时的行为与管理员的预期可能存在不同。OS 调用可能挂起;同步尝试可能非常缓慢 - SQL 语句可能会在使用数据库的其它连接上阻塞。设置任务的最长运行时间可限制任务可运行的时长。如果达到最长运行时间,任务将会终止(任务终止的实际时间取决于中断操作的能力)。任务的状态设置为反映超时,在重新触发之前将不会重试任务。如果任务中的命令失败而需要重试任务或命令,则会在延迟后重置最长运行时间。因此,最长运行时间针对的是每次尝试的任务执行或重试。它不包括所有重试的累积时间,不包括提示命令。
模式更改 模式更改任务可更改远程数据库的模式。如果任务成功,则远程数据库的远程模式名称也会更新。模式更改任务始终为高优先级任务,并且会在完成时报告自身状态。
高优先级 高优先级任务在代理收到后始终处于触发状态,并且在完成当前执行的任务后立即执行。它们可以不根据调度执行,它们的执行可能不受任何条件的限制。执行高优先级任务时不得同时执行任何其它任务,以确保高优先级任务的执行不受其它任务干扰。
状态报告 任务的状态报告选项可以指定当任务成功完成和失败时,何时以及是否报告回统一数据库。可用的选项如下:
仅发送状态 不报告任务结果。不过,将保留并报告关于任务成功或失败数的信息。
在下次代理同步代理数据库时返回结果 保留任务结果和状态,并在下次代理同步代理数据库时进行报告。
在任务执行完成时立即返回结果 当任务完成时立即报告任务结果和状态。
随机延迟间隔 如果给定任务在执行后将结果发送到 MobiLink 服务器或导致远程数据库与服务器同步,并且跨大量远程数据库同时触发,则为任务均匀设置随机延迟将会在可配置的时间段内均匀地分配服务器的同步工作量。
远程任务可有随机延迟间隔,而该间隔是以秒为单位的时间间隔 N,每个代理可使用此间隔在 [0, N) 范围内随机生成每次执行任务时的延迟秒数。如果任务是计划任务,则在首次执行任务之前生成随机延迟,然后将该延迟用于每一次执行。任务执行时间是在调度时间加上随机延迟偏移。这可确保任务执行时间的增量与计划相一致。
不建议将随机延迟间隔设置为大于计划任务的最小增量时间。如果任务是要求时任务(这意味着任务是由服务器进行启动),则会在每次启动任务时生成随机延迟并将其用于延迟执行。如果任务是在接收时运行任务,则在第一次也是唯一一次执行任务时生成随机延迟并将其用于延迟执行。
远程任务逻辑
创建远程任务
编辑远程任务
部署远程任务
导出远程任务
已部署远程任务
服务器启动的远程任务 (SIRT)
命令
参数中的变量
状态
系统过程
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |