タスクスケジュール繰り返し規則を使用して、調整スケジュールを設定できます。たとえば、土曜日にスケジュールされている調整を次の月曜日に適用するには、タスクスケジュール繰り返し規則を使用します。
タスクスケジュール繰り返し規則は、完全調整と差分調整の両方のスケジュール設定に使用できます。
タスクスケジュール繰り返し規則を選択する方法については、「調整ポリシーの編集」を参照してください。
調停サーバーコンポーネントは、調整ジョブが完了すると、次の実行スケジュールをチェックします。
調停サーバーは、最初にデフォルトスケジュールをチェックして次の実行時間を取得します。次に調停サーバーは、適用可能なすべてのタスクスケジュール繰り返し規則を実行し、スケジュールの調整が必要かどうか確認します。調整が必要な場合、その調整のデフォルトスケジュールより規則のスケジュールが優先されます。
タスクスケジュール繰り返し規則でデフォルトスケジュールを上書きすることはできません。ジョブごとの開始時間をスケジュールする際に「優先される」だけです。
この節では、組み込みの「Accept All Dates」サンプル規則について説明します。
テキストエディタで、Identity Manager の sample ディレクトリにある ReconRules.xml を開きます。
SCHEDULING_RULE_ACCEPT_ALL_DATES という名前の規則を検索します。
規則を「調整ポリシーの編集」ページの「タスクスケジュール繰り返し規則」ドロップダウンメニューに表示するには、subtype 属性を SUBTYPE_TASKSCHEDULE_REPETITION_RULE: に設定する必要があります。
<Rule subtype=’SUBTYPE_TASKSCHEDULE_REPETITION_RULE’ name=’SCHEDULING_RULE_ACCEPT_ALL_DATES’> |
前の説明にもあるとおり、タスクスケジュール繰り返し規則でデフォルトの調整スケジュールを変更できます。
変数 calculatedNextDate には、デフォルトの方法で計算された次の日付を設定することも、別の日付を返すこともできます。サンプル規則に記述されているように、calculatedNextDate は無条件にデフォルトの日付を受け付けます。次の箇所を参照してください。
<RuleArgument name=’calculatedNextDate’/> <block> <ref>calculatedNextDate</ref> </block> |
カスタムスケジュールを作成するには、<block> 要素の間にある規則のロジックを書き換えます。たとえば、調整開始時間を土曜日の午前 10:00 に変更するには、次のような JavaScript を <block> 要素の間に記述します。
<block> <script> var calculatedNextDate = env.get(’calculatedNextDate’); // Test to see if this task is scheduled for a Saturday // (Note that 6 is used to denote Saturday in JavaScript) if(calculatedNextDate.getDay() == 6) { // If so, set the time to 10:00:00 calculatedNextDate.setHours(10); calculatedNextDate.setMinutes(0); calculatedNextDate.setSeconds(0); } // Return the modified date calculatedNextDate; </script> </block> |
「サンプルの「Accept All Dates」規則を表示する」 では、calculatedNextDate は最初にデフォルトのスケジュール時刻に設定されています。次回のスケジュールされた実行日が土曜の場合、規則は調整を 10:00 に開始するようにスケジュールします。次回のスケジュールされた実行日が土曜以外の場合、「サンプルの「Accept All Dates」規則を表示する」は時間の調整を行わずに calculatedNextDate を返し、デフォルトのスケジュールが使用されます。
Identity Manager で使用するカスタム規則の作成については、『Sun Identity Manager Deployment Reference』の第 4 章「Working with Rules」を参照してください。