Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » QAnywhere » QAnywhere リファレンス » QAnywhere 転送ルールと削除ルール » ルールの構文

 

スケジュール構文

スケジュール構文
schedules : { AUTOMATIC | schedule-spec ,... }
schedule-spec :
   { START TIME start-time | BETWEEN start-time AND end-time }
   [ EVERY period { HOURS | MINUTES | SECONDS } ]
   [ ON { ( day-of-week, ... ) | ( day-of-month, ... ) } ]
   [ START DATE start-date ]
パラメータ
  • AUTOMATIC   転送ルールでは、メッセージのステータスが変更されたり、ネットワーク・ステータスに変更があった場合に、ルールが評価されます。削除ルールでは、メッセージ転送が開始されたときに、削除ルール条件を満たすメッセージが削除されます。

  • schedule-spec   AUTOMATIC 以外のスケジュール仕様には、条件が評価される時刻を指定します。指定された時刻になると、対応する条件が評価されます。

  • START TIME   イベントがスケジュールされた各日の最初のスケジュール時刻。START DATE を指定した場合、START TIME はその日付を参照します。START DATE を指定しない場合、START TIME の対象となる日付は、現在の日付 (指定された時刻を過ぎていない場合) とそれ以降の各日 (スケジュールに EVERY または ON が含まれる場合) となります。

  • BETWEEN ...AND ...   1 日のうち、スケジュールされた時刻が発生する範囲。START DATE を指定した場合、スケジュールされた時刻はその日が来るまで発生しません。

  • EVERY   連続してスケジュールするときのイベント発生の間隔。スケジュールされたイベントは、その日の START TIME より後、または BETWEEN ... AND で指定された範囲内でのみ発生します。

  • ON   スケジュールされたイベントが発生する日のリスト。EVERY を指定した場合、デフォルトは毎日です。これらは曜日または日付として指定できます。

    曜日は、Mon、Tues のようになります。Monday のような完全形も使用できます。使用言語が英語でない場合、クライアントによって接続文字列で要求された言語でない場合、サーバ・ウィンドウに表示される言語でない場合は、完全形を使用します。

    日付は、0 ~ 31 の整数で指定します。0 は月の末日を表します。

  • START DATE   スケジュールされたイベントが開始される日付。デフォルトは現在の日付です。

使用方法

指定した条件に対し、複数のスケジュールを作成できます。これにより、複雑なスケジュールを実装できます。

スケジュール仕様の定義に EVERY または ON が含まれる場合、そのスケジュール仕様は反復されます。EVERY と ON のどちらも使用されていない場合、そのスケジュールは最大でも 1 回しか実行されません。反復されないスケジュールを作成する場合に、そのスケジュールの開始時刻が過ぎているときは、エラーになります。

スケジュール済みの時刻になるたびに、対応する条件が評価され、次のスケジュール日時が計算されます。

次のスケジュール時刻を計算するときには、スケジュールが調べられ、現在以降の次のスケジュール時刻が決定されます。スケジュールに毎分と指定されている場合で、条件の評価に 65 秒かかるときは、2 分ごとに実行されます。実行を重複させたい場合は、複数のルールを作成する必要があります。

  1. EVERY 句を使用した場合は、次のスケジュールされた時刻が現在の日付にあり、BETWEEN ... AND で指定された範囲の終わりより前であるかどうかを調べます。そうであれば、それが次のスケジュールされた時刻となります。

  2. 次のスケジュールされた時刻が現在の日付にない場合は、イベントが実行される次の日付を調べます。

  3. その日付の START TIME、または BETWEEN ... AND で指定された範囲の始まりを確認します。

QAnywhere スケジュール構文は、SQL Anywhere CREATE EVENT スケジュール構文に由来します。

キーワードは、大文字と小文字を区別しません。

参照

次の例に示すサーバ側の転送ルール・ファイルは、sample_store_id というクライアント・メッセージ・ストア ID で識別されるクライアントに適用されます。この転送ルール・ファイルでは、二重のスケジュールを作成します。まず、優先度の高いメッセージが 1 時間に 1 回送信されます。スケジュールは every 1 hours (1 時間ごと) に設定されており、条件は ias_priority=9 です。さらに、午前 8 時から 9 時までの間は、優先度の高いメッセージが 1 分ごとに送信されます。

[sample_store_id]
; This rule governs when messages are transmitted to the client
; store with id sample_store_id.
;
   START TIME '06:00:00' EVERY 1 hours = ias_Priority = 9
   BETWEEN '08:00:00' AND '09:00:00' EVERY 1 minutes = ias_Priority = 9