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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの保守 » スケジュールとイベントの使用によるタスクの自動化 » スケジュールとイベントの内部

 

データベース・サーバによるスケジュールされたイベントのチェック

イベントのスケジュール時刻の計算は、データベース・サーバの起動時と、スケジュールされた各イベント・ハンドラの完了時に行われます。

次回のスケジュール時刻の計算は、スケジュール定義に指定された増分に基づいて、増分を前回の起動時刻に追加することで行われます。指定した増分よりイベント・ハンドラの実行時間が長くなり、現在の処理が終わらないうちに次回のスケジュール時刻が来てしまう場合、データベース・サーバは、現在の処理の後に次のスケジュール時刻がくるように増分します。

たとえば、実行に 65 分かかるイベント・ハンドラが 9 時 ~ 5 時の間の 1 時間ごとに起動するように要求された場合、実際には 9 時、11 時、1 時と 2 時間ごとに実行されます。

次回の実行まで待機時間を設ける処理を 9 時 ~ 5 時の間で実行するには、各実行の合間に WAITFOR 文を使って、指定した完了時間が経過するまでループするようにハンドラを定義できます。

データベース・サーバを断続的に実行していて、スケジュール時刻にデータベース・サーバが実行中でない場合、イベント・ハンドラが起動時に実行されることはありません。その代わりに、次のスケジュール時刻は起動時に計算されます。たとえば、毎晩 1 時にバックアップを実行するようにスケジュールしていても、終業時にはいつもデータベース・サーバを停止している場合、バックアップが実行されることはありません。

次にスケジュールされているイベント実行が 1 時間以上後の場合、データベース・サーバは時間単位で次のスケジュール時間を計算します。これにより、夏時間の開始または終了のためにシステム・クロックが調整されたときに、イベントが予定どおりに起動されます。