Sun Identity Manager 8.1 リソースリファレンス

Active Directory 同期フェイルオーバーの設定

手順 1: Active Directory Synchronization Recovery Collector タスクを設定する

手順 2: Active Directory エラー時プロセスの Active Sync 属性を定義する

各 Active Directory Active Sync リソースでは、Identity Manager によって、リソースの同期中に失敗が発生したときに呼び出される onError プロセスが定義されます。Active Directory リソースでエラー時プロセスが定義されていると、アクティブな同期中にリソースでポーリングメソッドが呼び出されたときにエラーが発生した場合に、このプロセスが呼び出されます。このプロセスでは、IAPI オブジェクトからの結果がチェックされ、エラーが発生した場合は、定義されたプロセスが呼び出されます。

このプロセスを、エラーが発生したときに電子メールで管理者に通知するように設定します。Identity Manager によって別のドメインコントローラに処理が継続されるように、エラーが保証されているかどうかを管理者が判断できるように、電子メールの本文にエラーテキストを含めます。

そのエラーテキストにより、管理者は、長期にわたる停止の可能性があるか、すぐに解決できる一時的な問題 (次回のポーリングで解決される一時的なルーティングの問題など) による障害であるかを知らされます。

手順 3: 失敗が発生したリソースの Active Directory 同期フェイルオーバータスクを実行する

別のドメインコントローラへのフェイルオーバーが保証されているエラーがドメインコントローラから返された場合は、「タスク」ページから Active Directory 同期フェイルオーバータスクを実行します。

手動フェイルオーバーモードの場合は、フェイルオーバータスクに次の情報が必要です。

新しいドメインコントローラへの切り替えが完了したあとに Active Sync を再起動するかどうかも選択してください。

タスクの動作

Active Directory 同期フェイルオーバータスクは、実行時に次のように動作します。

Procedureタスクのアクション

  1. 失敗が発生したリソースの Active Sync プロセスを停止する

  2. フェイルオーバー設定オブジェクトを読み取る

  3. 必要なリソース属性値を変更する

  4. オプションで、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>