イベントのスケジュール時刻の計算は、データベースサーバの起動時と、スケジュールされた各イベントハンドラの完了時に行われます。
次回のスケジュール時刻の計算は、スケジュール定義に指定された増分に基づいて、増分を前回の起動時刻に追加することで行われます。指定した増分よりイベントハンドラの実行時間が長くなり、現在の処理が終わらないうちに次回のスケジュール時刻が来てしまう場合、データベースサーバは、現在の処理の後に次のスケジュール時刻がくるように増分します。
たとえば、実行に 65 分かかるイベントハンドラが 9 時 ~ 5 時の間の 1 時間ごとに起動するように要求された場合、実際には 9 時、11 時、1 時と 2 時間ごとに実行されます。
次回の実行まで待機時間を設ける処理を 9 時 ~ 5 時の間で実行するには、各実行の合間に WAITFOR 文を使って、指定した完了時間が経過するまでループするようにハンドラを定義できます。
データベースサーバを断続的に実行していて、スケジュール時刻にデータベースサーバが実行中でない場合、イベントハンドラが起動時に実行されることはありません。その代わりに、次のスケジュール時刻は起動時に計算されます。たとえば、毎晩 1 時にバックアップを実行するようにスケジュールしていても、終業時にはいつもデータベースサーバを停止している場合、バックアップが実行されることはありません。
次にスケジュールされているイベント実行が 1 時間以上後の場合、データベースサーバは時間単位で次のスケジュール時間を計算します。これにより、夏時間の開始または終了のためにシステムクロックが調整されたときに、イベントが予定どおりに起動されます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |