サーバーのポーリング
マルチサーバー管理を実装している場合、対象サーバーからマスタ サーバーに定期的にアクセスし、既に実行したジョブの情報をアップロードして新しいジョブをダウンロードします。マスタ サーバーにアクセスする処理はサーバー ポーリングと呼ばれ、定期的なポーリング間隔で行われます。
ポーリング間隔
対象サーバーからマスタ サーバーに接続し、命令をダウンロードしてジョブの実行結果をアップロードする頻度をポーリング間隔 (既定値は 1 分) で制御します。
対象サーバーからマスタ サーバーにポーリングするとき、対象サーバーに割り当てられる操作を msdb データベースの sysdownloadlist テーブルから読み取ります。読み取った操作により、マルチサーバー ジョブや対象サーバーのさまざまな動作を制御します。操作の例には、ジョブの削除、ジョブの挿入、ジョブの開始、対象サーバーのポーリング間隔の更新などがあります。
操作は次のいずれかの方法で sysdownloadlist テーブルに書き込まれます。
- sp_post_msx_operation ストアド プロシージャを使用して明示的に行います。
- 他のジョブ ストアド プロシージャを使用して暗黙的に行います。
ジョブ ストアド プロシージャを使用してマルチサーバー ジョブ スケジュールやジョブ ステップを変更する場合、または SQL-DMO (SQL 分散管理オブジェクト) を使用してマルチサーバー ジョブを制御する場合、マルチサーバー ジョブのステップやスケジュールを変更してから次のコマンドを実行します。
EXECUTE msdb.dbo.sp_post_msx_operation 'INSERT', 'JOB', '<job id>'
このコマンドを実行すると、現在のジョブ定義が対象サーバーと同期されます。
次の場合、操作を明示的に書き込む必要はありません。
- Microsoft SQL Server Management Studio を使用してマルチサーバー ジョブを制御する場合。
- ジョブ スケジュールまたはジョブ ステップを変更しないジョブ ストアド プロシージャの場合。