可以选择将服务器管理请求设置为根据调度运行。使用以下 <schedule> 子标记定义请求据以运行的调度。
<schedule> 子标记 |
说明 |
||
---|---|---|---|
<starttime> |
定义一天中服务器开始生成报告的时间。例如:
|
||
<between> |
包含两个子标记,starttime 和 endtime,它们定义服务器生成报告的时间间隔。不能与 starttime 用在同一调度中。例如:
|
||
<everyhour> |
定义后续报告之间的时间间隔(以小时为单位)。不能与 everyminute 或 everysecond 用在同一调度中。例如,以下请求从 9 AM 开始每两小时生成一个报告:
|
||
<everyminute> |
定义后续报告之间的时间间隔(以分钟为单位)。不能与 everyhour 或 everysecond 用在同一调度中。
|
||
<everysecond> |
定义后续报告之间的时间间隔(以秒为单位)。不能与 everyhour 或 everyminute 用在同一调度中。
|
||
<ondayofweek> |
每个标记包含一周中调度处于活动状态的一天。例如,以下调度在星期一和星期二运行:
|
||
<ondayofmonth> |
每个标记包含一月中调度处于活动状态的一天。例如,以下调度在月的 15 号运行:
|
||
<startdate> |
调度转为活动状态的日期。例如:
|
要修改一个调度,请使用同一个 requestId 注册新服务器管理请求。要删除一个调度,使用同一个 requestId 注册服务器管理请求,但要包括调度标记 <schedule>
none</schedule>
。
除了 <ondayofweek> 和 <ondayofmonth> 标记外,每个标记在一个调度中只能使用一次。
<between> 标记和单个 <starttime> 标记不能在同一个调度中同时使用。
在同一个调度中仅可以使用 <everysecond>、<everyminute> 和 <everyhour> 中的一个。
以下示例创建一个持久调度,该调度报告服务器上的所有消息,包括每条消息的 ID 和状态。它还覆盖以前指派给请求 ID dailyMessageStatus 的任何持久请求。
<?xml version="1.0" encoding="UTF-8"?> <actions> <MessageDetailsRequest> <request> <replyAddr>myclient\messageStatusQueue</replyAddr> <requestId>dailyMessageStatus</requestId> <schedule> <everyhour>24</everyhour> </schedule> <persistent/> <messageId/> <status/> </request> </MessageDetailsRequest> </actions> |
以下是一个可能得到的报告样例。它被发送到地址 myclient\messageStatusQueue。它表示服务器上有两条消息,一条状态为 60(已接收),另一条状态为 1(待执行)。
<?xml version="1.0" encoding="UTF-8"?> <MessageDetailsReport> <requestId>dailyMessageStatus</requestId> <UTCDatetime>Mon Jan 16 15:03:04 EST 2007</UTCDatetime> <statusDescription>Scheduled report</statusDescription> <messageCount>2</messageCount> <message> <messageId>ID:26080b8927f83f9722357eab0a0628eb</messageId> <status>60</status> </message> <message> <messageId>ID:fe857fa8-a7d7-4266-985b-a1818a85d1a2</messageId> <status>1</status> </message> </MessageDetailsReport> |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |