次の方法で共有


アクティブディレクトリドメイン サービスにおけるレプリケーションのプログラマ モデル

次に、アクティブディレクトリドメイン サービスのレプリケーション モデルについて説明します。

アクティブディレクトリドメイン コントローラー (DC) に対するすべての更新は、要求ごとに 1 つのオブジェクトを作成、変更、または削除する LDAP 要求を使用して実行されます。 1 つの要求で、オブジェクトの複数の属性を設定または変更できます。

更新要求は、一部の DC でアトミック トランザクションとして処理されます。 更新全体が行われるか、まったく行われないかのどちらかです。 リクエスターが更新要求に対する正常な応答を受け取った場合、その要求全体が成功 (コミット) されます。 これは"発信元書き込み"と呼ばれます。複数の LDAP 要求を 1 つの大きなトランザクションにグループ化することはできません。

元の書き込みでは、DC は新しい属性値または変更された属性値ごとに "スタンプ" を計算し、このスタンプを値にアタッチして、値がレプリケートされるときにスタンプもレプリケートされるようにします。 新しいスタンプは一意であり、更新の場合、新しいスタンプはその DC の古い値のスタンプよりも大きくなります。

場合によっては、DC は、DC が最後にレプリケーションを実行してから変更されたオブジェクトのセットを選択します。 次に、オブジェクトごとに、オブジェクトが最後にレプリケートされてから変更された属性の現在の値をすべて含む他のすべての DC に 1 つのメッセージを送信します。 レプリケーション メッセージは信頼性が高く、順番に配信されますが、配信に時間がかかる場合があります。

ある DC が別の DC からレプリケーション メッセージを受信すると、次のように処理されます。変更された属性ごとに、レプリケーション メッセージ内の値のスタンプが現在の値のスタンプよりも大きい場合、DC は更新を適用します。それ以外の場合、DC は更新プログラムを破棄します。 各レプリケーション メッセージは、元の書き込みと同様に、アトミック トランザクションとして適用されます。

これがアクティブディレクトリドメイン サービス レプリケーション モデルです。 このモデルの主なプロパティは次のとおりです:

  • 1 つのオブジェクトへの元の書き込みはアトミックです。
  • 変更をレプリケートする場合、元の書き込みによって行われたすべての変更が送信されるか、まったく送信されないかのいずれかです。
  • 1 つのオブジェクトに対するレプリケートされた書き込みはアトミックですが、競合は属性ごとに解決されます。

このモデルでは、異なるオブジェクトに加えられた変更のレプリケーション順序は保証されません。 変更が元の書き込み順序で複製されることを前提とするアプリケーションを作成しないでください。 このモデルでは、オブジェクトの属性が 2 回変更された場合に、両方の値が複製されることは保証されません。レプリケーションでは、レプリケーション時の現在の値のみが送信されます。

このモデルは、パフォーマンスにのみ影響するいくつかの点で現実とは異なります。 たとえば、アクティブディレクトリサーバーは、複数のオブジェクトに対する変更を含むレプリケーション メッセージを送信しますが、このようなマルチオブジェクト メッセージの内容は、一連の単一オブジェクト メッセージであるかのように処理します。 アクティブディレクトリサーバーは、モデルで説明されているようなポイントツーポイント レプリケーションは実行しませんが、代わりに、モデルと機能的に同等の、より複雑で効率的な推移的なレプリケーションを実行します。