15.10.2. 一部レプリケーションによる「空」のアップデートの防止
一部レプリケーションでは、レプリケーション更新 (
nsDS5ReplicatedAttributeList
) から削除される属性の一覧が許可されます。しかし、除外された属性への変更があっても、修正イベントが発生し、空のレプリケーション更新が生成されます。
nsds5ReplicaStripAttrs
属性は、空のレプリケーションイベントでは送信できず、更新シーケンスから削除される属性の一覧を追加します。これには、modifiersName
のような運用上の利便性が含まれます。
たとえば、
accountUnlockTime
属性が除外されたとします。John Smith のユーザーアカウントがロックされ、期間が期限切れになり、自動的にロック解除されます。accountUnlockTime
属性のみが変更し、その属性はレプリケーションから除外されます。ただし、運用する属性 internalmodifytimestamp
も 変更しています。John Smith のユーザーアカウントが変更しているため、レプリケーションイベントがトリガーされます。ただし、送信する唯一のデータは新しい変更タイムスタンプであり、更新は空になります。(たとえば) ログイン時間やパスワードの有効期限などに関連する多くの属性がある場合は、空のレプリケーション更新が作成され、サーバーのパフォーマンスに悪影響を与えるか、関連するアプリケーションを妨げる可能性があります。
これを防ぐには、一部レプリケーションの動作を調整するのに役立つように、
nsds5ReplicaStripAttrs
属性をレプリカ合意に追加します。
# ldapmodify -D "cn=Directory Manager" -W -x -D "cn=directory manager" -W -p 389 -h server.example.com -x dn: cn=ExampleAgreement,cn=replica,cn=dc\=example\,dc\=com,cn=mapping tree,cn=config changetype: modify add: nsds5ReplicaStripAttrs nsds5ReplicaStripAttrs: modifiersname modifytimestamp internalmodifiersname internalmodifytimestamp
レプリケーションイベントが 空でない 場合は、削除済みの属性 は 他の変更で複製されます。これらの属性は、イベントが空である場合にのみ更新から削除されます。