ジョブの理解
ジョブは、更新のインストールやソフトウェア・ソースの添付など、1つ以上のインスタンスに対してOS管理ハブが実行するアクションです。ジョブが実行されると、ジョブの実行に必要なタスクを実行し、作業をインスタンスにディスパッチし、結果をサービスにレポートする作業リクエストが作成されます。
ジョブは即時に実行することも、将来の日時または繰返しイベントとして実行するように設定することもできます。これはスケジュール済ジョブです。障害が発生した場合に、スケジュール済ジョブを自動的に再試行するように選択できます。自動再試行が選択されている場合、スケジュールされたジョブが最初の実行で失敗すると、サービスはスケジュールされたジョブを5分間隔で最大3回再試行します。スケジュールされたジョブもタグ付けできます。
スケジュール済ジョブの状態
スケジュール済ジョブは、次のいずれかの状態になっています。
- 次回実行: ジョブが実行するようスケジュールされている日時。
- 頻度: ジョブが繰返しスケジュールで実行されるように設定されているか、1回のみ実行されているかを示します。
- ターゲット: ジョブのターゲット・インスタンスの数を識別します。
作業要求ステータス
作業リクエストとしてディスパッチされた後、ジョブは進行中または完了しています。
- 進行中の作業リクエストでは、次の可能なステータス値がレポートされます。
- Accepted: サービスはジョブを受け入れ、インスタンスに対する作業の準備ができました。ジョブがエージェントによって取得されず、受け入れられた状態が24時間続く場合、サービスはジョブを失敗としてマークします。
- 進行中: エージェントは、受け入れられた作業を受け取り、インスタンスで実行しています。
- 取消中: ジョブは取消中です。
- 完了作業リクエストでは、次の可能なステータス値がレポートされます。
- 成功: ジョブはエラーなしで完了しました。
- 失敗: ジョブは失敗しました。
- 取消済: ジョブは取消されました。
ジョブ・ログおよびエラー・メッセージを表示して、ジョブの詳細な結果を表示できます。ジョブに階層がある場合、子ジョブが失敗すると、サービスは親ジョブを失敗としてマークします。
失敗したジョブの再実行
ジョブが失敗した場合は、失敗したアクションを再試行するために新しいジョブを手動で作成するかわりに、失敗したジョブを再実行できます。失敗したジョブをすぐに再実行するか、将来の日時で実行するようにスケジュールできます。ジョブを再実行すると、同じアクションに対して新しい作業リクエストが作成されます(更新の適用やソフトウェア・ソースの添付など)。元のジョブとそのステータスは、監査および履歴の目的で変更されません。
階層内のジョブの場合、親ジョブを再実行して階層内のすべてのジョブを再実行したり、子ジョブを個別に再実行できます。失敗した親を再実行すると、サービスは失敗した子ジョブのみをターゲットとします。たとえば、10個のインスタンスのグループがあり、3つのインスタンスで更新ジョブが失敗するとします。ジョブ・ログおよびエラー・メッセージを確認し、報告された問題に対処した後、グループの失敗したジョブを再実行できます。再実行は、元の障害が発生した3つのインスタンスのみを対象とします。
繰返し管理ステーション同期ジョブ
管理ステーションを作成すると、OS管理ハブによって、ソフトウェア・ソースを同期する定期的なスケジュール済ジョブが作成されます。同期スケジュールを編集できますが、ジョブは削除できません。
ミラー同期の詳細は、Understanding Management Stationsを参照してください。
ジョブ階層
一部のジョブは、より小さなタスクに分割されます。サービスによってジョブ階層が作成され、初期ジョブは「親」で、小さいタスクは「子」です。大きいジョブの場合、または複数のインスタンスに影響するジョブの場合、ジョブ内のどのタスクが成功したか失敗したかを簡単に調べることができます。子ジョブは、親ジョブの詳細ページの「作業リクエスト」タブで表示できます。
たとえば、「すべて」更新ジョブでは、セキュリティ、バグ修正、拡張、その他などの更新タイプごとに子ジョブが作成されます。
--Update All (parent)
|--Update Security (child)
|--Update Bug fix (child)
|--Update Enhancement (child)
|--Update Other (child)ジョブは、関連付けられたリソースと同じコンパートメントに存在します。グループまたはライフサイクルに関連付けられたジョブの場合、これは親ジョブと子ジョブが異なるコンパートメントにあることを意味します。親ジョブはグループまたはライフサイクルに関連付けられたコンパートメントに存在し、子ジョブは各インスタンスに関連付けられたコンパートメントに存在します。ベスト・プラクティスは、コンパートメントに関する考慮事項を参照してください。
たとえば、3つのメンバーを持つグループにソフトウェア・ソースを追加すると、3つの子ジョブ(インスタンスごとに1つ)を持つ単一の親ジョブが生成されます。--Set software sources for dev group (parent in dev compartment)
|--Set software source Instance 1 (child in dev compartment)
|--Set software source Instance 2 (child in test compartment)
|--Set software source Instance 3 (child in preview compartment)