サーバーのポーリング
適用対象: 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。
ジョブ スケジュールまたはジョブ ステップを変更しないジョブ ストアド プロシージャの場合。