Share via


サーバーのポーリング

適用対象:SQL Server

重要

現在、Azure SQL Managed Instance によって、すべてではありませんが、ほとんどの SQL Server エージェントの機能がサポートされています。 詳細については、Azure SQL Managed Instance と SQL Server の T-SQL の相違点に関するページを参照してください。

マルチサーバー管理を実装している場合、ターゲット サーバーからマスター サーバーに定期的にアクセスし、既に実行したジョブの情報をアップロードして新しいジョブをダウンロードします。 マスター サーバーにアクセスする処理は サーバー ポーリング と呼ばれ、定期的な ポーリング間隔で行われます。

ポーリング間隔

ターゲット サーバーからマスター サーバーに接続し、命令をダウンロードしてジョブの実行結果をアップロードする頻度をポーリング間隔 (既定値は 1 分) で制御します。

ターゲット サーバーからマスター サーバーにポーリングするとき、ターゲット サーバーに割り当てられる操作を dbo.sysdownloadlist データベースの msdb テーブルから読み取ります。 読み取った操作により、マルチサーバー ジョブやターゲット サーバーのさまざまな動作を制御します。 操作の例には、ジョブの削除、ジョブの挿入、ジョブの開始、ターゲット サーバーのポーリング間隔の更新などがあります。

操作は次のいずれかの方法で dbo.sysdownloadlist テーブルに書き込まれます。

  • dbo.sp_post_msx_operation ストアド プロシージャを使用して明示的に行います。

  • 他のジョブ ストアド プロシージャを使用して暗黙的に行います。

ジョブ ストアド プロシージャを使用してマルチサーバー ジョブ スケジュールやジョブ ステップを変更する場合、または SQL-DMO (SQL 分散管理オブジェクト) を使用してマルチサーバー ジョブを制御する場合、マルチサーバー ジョブのステップやスケジュールを変更してから次のコマンドを実行します。

EXECUTE msdb.dbo.sp_post_msx_operation 'INSERT', 'JOB', '<job id>'  

このコマンドを実行すると、現在のジョブ定義がターゲット サーバーと同期されます。

次のアイテムを使用する場合、操作を明示的に書き込む必要はありません。

  • マルチサーバー ジョブを制御する Microsoft SQL Server Management Studio。

  • ジョブ スケジュールまたはジョブ ステップを変更しないジョブ ストアド プロシージャの場合。

ターゲット サーバーによるマスター サーバーのポーリングの強制

関連項目