mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

gbellato
20.04.2007 972103091b00d019b98516adf64a2db12c20c749
refs
author gbellato <gbellato@localhost>
Monday, August 20, 2007 10:04 +0200
committer gbellato <gbellato@localhost>
Monday, August 20, 2007 10:04 +0200
commit972103091b00d019b98516adf64a2db12c20c749
tree 4e30160cb91384b732ed3f66bca19f37870b7f17 tree | zip | gz
parent 77b96dfc1c84b2e7bf51b99a7cab49465104f4c5 view | diff
These changes rovides the ability to repair
the consistency in the replication topology in the (hopefully) rare case
when hardware failure or software bugs could break it (issue 788 and 791)

There are several parts in this commit :
- a new log file called replication was added.
It's purpose is to store all the consistency errors detected by the replication
with enough information to allow the administrator to repair the problem.
This file is configured by default and contain only the replication errors,
To achieve the a new log severity keyword "None" has been created so that
the associated error log publisher does not print any error not related to
replication. (I will update the reference guide after this commit)

- a new control (the replication repair control) has been added.
When this control is used in a MODIFY, DELETE, ADD or MODDN operation
the operation is marked as a non-replicated replication operation.
This cause the following :
- The operation is allowed to modify attributes that are normally not
allowed to be modified or added (NO-USER-MODIFCATION) such as
entryuuid and ds-sync-hist
To achieve this I add to move those checks from the
AddOperationBasis.getObjectClasses() or AddOperationBasis.getUserAttributes()
to the LocalBackendWorkflowElement.processAdd() but this has already
been reviewed.
- no change number is associated to the operation.
- the operation is not published to the replication server and is therefore
a local only operation.
- the replication don't try to solve conflict or generate historical information
for this operation.

The intended usage of this control is that the administrator will check
for errors in the replication log, determine the entries that have inconsistent
values and use the control to repair them.
I will write some documentation explaining in more details how to do this.

- even though this is not related to replication repair I also took advantage of
this change to add the multimaster replication synchronization provider
in the default configuration.
This will make configuration of replication using dsconfig easier because
the user will now only need to configure the replication servers and
replication domains.
2 files added
14 files modified
557 ■■■■ changed files
opendj-sdk/opends/resource/config/config.ldif 29 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/resource/config/replication.ldif 14 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/admin/defn/org/opends/server/admin/std/ErrorLogPublisherConfiguration.xml 9 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/messages/messages/replication.properties 30 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java 8 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/FakeOperation.java 4 ●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/Historical.java 19 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java 53 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/PersistentServerState.java 5 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java 5 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java 43 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationRepairRequestControl.java 130 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/util/ServerConstants.java 7 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java 41 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java 27 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationRepairControlTest.java 133 ●●●●● diff | view | raw | blame | history