参照の完全性はエントリ間の関係を維持するためのプラグインメカニズムです。グループのメンバーシップなど、一部のタイプの属性には別のエントリの DN が含まれています。参照の完全性を利用することで、エントリを削除したときに、そのエントリの DN を含むすべての属性も削除できます。
たとえば、参照の完全性が有効になっているときに、あるユーザーのエントリがディレクトリから削除されると、そのユーザーは、所属しているあらゆるグループからも削除されます。参照の完全性が無効な状態では、管理者はグループからユーザーを手動で削除する必要があります。これは、Directory Server を、ユーザーとグループの管理にディレクトリを使用するほかの Sun Java System 製品に統合する場合に重要な機能です。
参照の完全性プラグインが有効になっているときに削除操作や名前変更、または移動の操作を実行すると、指定された属性に対する完全性更新がただちに実行されます。ただし、デフォルトでは、参照の完全性プラグインは無効になっています。
ディレクトリ内のユーザーエントリまたはグループエントリの削除、名前の変更、移動を行なった場合、常に操作が参照の完全性のログファイルに記録されます。
instance-path/logs/referint
更新間隔と呼ばれる指定した時間が経過すると、参照の完全性が有効になっているすべての属性が検索され、検索結果のエントリと、ログファイル内に記録された削除または変更されたエントリの DN が照合されます。特定のエントリが削除されたことがログファイルに記録されている場合は、対応する属性が削除されます。特定のエントリが変更されたことがログファイルに記録されている場合は、対応する属性値が記録に従って変更されます。
参照の完全性プラグインのデフォルトの設定が有効になっている場合に、削除、名前変更、移動操作を行うと、ただちに member、uniquemember、 owner、seeAlso、および nsroledn 属性に対する完全性更新が実行されます。ただし、参照の完全性プラグインの動作は、次のような用途に合わせてユーザーが自由に設定できます。次の動作を設定できます。
参照の完全性の更新を別のファイルに記録する。
更新間隔を変更する。
参照の完全性の更新がシステムに与える影響を軽減するために、更新間隔を長くする。
参照の完全性を適用する属性を選択する。
DN 値を含む属性を使用または定義するために、参照の完全性プラグインを使用してそれを監視する。
参照の完全性プラグインで使用される全データベースのすべての属性に、インデックスを設定する必要があります。インデックスはすべてのデータベースの設定内で作成する必要があります。旧バージョン形式の更新履歴ログが有効になっている場合、cn=changelog サフィックスにインデックスを設定する必要があります。詳細については、第 12 章「Directory Server のインデックス」を参照してください。
レプリケートされた環境では、特定の制限が参照の完全性プラグインの使用に関連付けられています。これらの制限の一覧については、「レプリケーションと参照の完全性」を参照してください。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
すべてのレプリカが設定され、すべてのレプリケーションアグリーメントが定義されていることを確認します。
参照の完全性を維持する一連の属性を定義し、マスターサーバーで使用する更新間隔を決定します。
同じ属性セットと同じ更新間隔を使用して、すべてのマスターサーバーで参照の完全性プラグインを有効にします。
参照の完全性の属性を定義するには、次のコマンドを使用します。
$ dsconf set-server-prop -h host -p port ref-integrity-attr:attribute-name \ ref-integrity-attr:attribute-name |
既存の属性リストに参照の完全性属性を追加するには、次のコマンドを使用します。
$ dsconf set-server-prop -h host -p port ref-integrity-attr+:attribute-name |
参照の完全性の更新間隔を定義するには、次のコマンドを使用します。
$ dsconf set-server-prop -h host -p port ref-integrity-check-delay:duration |
参照の完全性を有効にするには、次のコマンドを使用します。
$ dsconf set-server-prop -h host -p port ref-integrity-enabled:on |
すべてのコンシューマサーバー上で参照の完全性プラグインが無効になっていることを確認します。