データを保持する最大時間数を設定します。デフォルト値は 7 日です。この値により、どれくらい以前の HighestCommittedUSN 値を保持するかを制御します。
設定する必要がある Active Sync リソースごとに 1 つのワークフローを設定します。
Identity Manager 管理者インタフェースの「タスク」ページで、このタスクをスケジュールします。HighestCommittedUSN 値について各ホストに問い合わせる頻度を規定するポーリング間隔は、タスクスケジュールによって設定されます。
このタスクが実行されると、Active Directory アダプタは、各ドメインコントローラの rootDSE から HighestCommittedUSN 番号を取得するように求められます。取得した値は、Identity Manager 設定オブジェクトに格納されます。定義された Active Sync リソースごとに 1 つの設定オブジェクトが生成され、代替ドメインコントローラの HighestCommittedUSN 値が格納されます。
各 Active Directory Active Sync リソースでは、Identity Manager によって、リソースの同期中に失敗が発生したときに呼び出される onError プロセスが定義されます。Active Directory リソースでエラー時プロセスが定義されていると、アクティブな同期中にリソースでポーリングメソッドが呼び出されたときにエラーが発生した場合に、このプロセスが呼び出されます。このプロセスでは、IAPI オブジェクトからの結果がチェックされ、エラーが発生した場合は、定義されたプロセスが呼び出されます。
このプロセスを、エラーが発生したときに電子メールで管理者に通知するように設定します。Identity Manager によって別のドメインコントローラに処理が継続されるように、エラーが保証されているかどうかを管理者が判断できるように、電子メールの本文にエラーテキストを含めます。
そのエラーテキストにより、管理者は、長期にわたる停止の可能性があるか、すぐに解決できる一時的な問題 (次回のポーリングで解決される一時的なルーティングの問題など) による障害であるかを知らされます。
別のドメインコントローラへのフェイルオーバーが保証されているエラーがドメインコントローラから返された場合は、「タスク」ページから Active Directory 同期フェイルオーバータスクを実行します。
手動フェイルオーバーモードの場合は、フェイルオーバータスクに次の情報が必要です。
ダウンしたドメインコントローラまたはリソースの名前
処理を継続する DC ホストの名前
使用する収集済み HighestCommittedUSN 値のタイムスタンプ
新しいドメインコントローラへの切り替えが完了したあとに Active Sync を再起動するかどうかも選択してください。
Active Directory 同期フェイルオーバータスクは、実行時に次のように動作します。
失敗が発生したリソースの Active Sync プロセスを停止する
フェイルオーバー設定オブジェクトを読み取る
必要なリソース属性値を変更する
オプションで、Active Sync プロセスを再起動する
Active Directory リソースの「On Synchronization Failure Process」リソース属性として、次のサンプルワークフローを設定できます。このワークフローでは、java.net.UnknownHostException エラーメッセージを探します。このメッセージが見つかった場合は、管理者に通知電子メールを送信します。
<TaskDefinition name=’Sample AD Sync On Error Workflow’ executor=’com.waveset.workflow.WorkflowExecutor’ syncControlAllowed=’true’ execMode=’sync’ taskType=’Workflow’> <Extension> <WFProcess title=’Example AD Sync OnError Workflow’> <Variable name=’resultErrors’ input=’true’> <Comments>Errors returned from the resource. </Comments> </Variable> <Variable name=’resourceName’ input=’true’> <Comments>Name of the AD resource that returned the errors. </Comments> </Variable> <Variable name=’failureTimestamp’ input=’true’> <Comments>Failure timestamp, when it occurred. </Comments> </Variable> <Activity name=’start’> <Transition to=’checkErrors’/> </Activity> <Activity name=’checkErrors’> <Variable name=’criticalError’> <Comments>Local variable to hold if we need to notify </Comments> </Variable> <Action name=’iterateMessage’> <dolist name=’msg’> <ref>resultErrors</ref> <cond> <match> <ref>msg</ref> <s>java.net.UnknownHostException</s> </match> <set name=’criticalError’> <s>true</s> </set> </cond> </dolist> </Action> <Transition to=’notify’> <notnull> <ref>criticalError</ref> </notnull> </Transition> <Transition to=’end’/> </Activity> <Activity name=’notify’> <Action application=’notify’> <Argument name=’template’ value=’#ID#EmailTemplate:ADSyncFailoverSample’/> <Argument name=’resultErrors’ value=’$(resultErrors)’/> </Action> <Transition to=’end’/> </Activity> <Activity name=’end’/> </WFProcess> </Extension> </TaskDefinition>