5.173 repsTo, RepsTo

The nonreplicated, multivalued attribute repsTo is an optional attribute on the root object of every NC replica. It is stored as the structure REPS_TO.

The abstract type RepsTo simplifies the specification of methods that read and write the attribute repsTo. Reading the attribute repsTo produces one or more RepsTo values using the conversions from REPS_TO specified below. Writing a RepsTo value to the attribute repsTo stores a REPS_TO using the reverse conversion.

The type RepsTo is a tuple with the following fields:

naDsa: A NetworkAddress that corresponds to cbOtherDraOffset and cbOtherDra in REPS_TO. This is the NetworkAddress of a DC.

uuidDsa: A GUID that corresponds to uuidDsaObj in REPS_TO. This is the DSA GUID of the target DC.

options: Bit flags chosen from DRS_OPTIONS that correspond to ulReplicaFlags in REPS_TO. This set contains the DRS_WRIT_REP value if this replica is writable.

The following additional values are preserved if they are present when reading ulReplicaFlags, but are otherwise ignored by the protocol:

  • DRS_INIT_SYNC: The replica must be replicated from the DC identified by uuidDsa when the DC hosting this replica is started.

  • DRS_PER_SYNC: Periodically replicate the NC replica from the DC identified by uuidDsa, as defined by the periodic replication schedule.

  • DRS_MAIL_REP: Replicate the NC replica from the DC identified by uuidDsa via SMTP (see [MS-SRPL]).

  • DRS_DISABLE_AUTO_SYNC: Disable notification-based replication of the NC replica from the DC identified by uuidDsa.

  • DRS_DISABLE_PERIODIC_SYNC: Disable periodic replication of the NC replica from the DC identified by uuidDsa.

  • DRS_USE_COMPRESSION: Replication response messages sent along this communication path must be compressed.

  • DRS_TWOWAY_SYNC: At the end of a replication cycle, replication must be triggered in the opposite direction.

  • DRS_NONGC_RO_REP: Replicate a read-only full replica. Not a writable or partial replica.

  • DRS_FULL_SYNC_IN_PROGRESS: When the flag DRS_FULL_SYNC_NOW is received in a call to IDL_DRSReplicaSync, the flag DRS_FULL_SYNC_IN_PROGRESS is sent in the associated calls to IDL_DRSGetNCChanges until the replication cycle completes. This flag is ignored by the server.

  • DRS_FULL_SYNC_PACKET: Replicate all updates in the replication request, even those that would normally be filtered.

  • DRS_REF_GCSPN: Requests that the server add an entry to repsTo for the client on the root object of the NC replica that is being replicated. When repsTo is set using this flag, the notifying client DC contacts the server DC using the service principal name that begins with "GC" (section 2.2.3.2).

  • DRS_NEVER_SYNCED: There is no successfully completed replication from this source server.

  • DRS_SPECIAL_SECRET_PROCESSING: Do not replicate attribute values of attributes that contain secret data.

  • DRS_PREEMPTED: The replication attempt is preempted by a higher priority replication request.

  • DRS_NEVER_NOTIFY: Do not send update notifications.

  • DRS_SYNC_PAS: Expand the partial attribute set of the partial replica.

resultLastAttempt: A DWORD that corresponds to ulResultLastAttempt in REPS_TO. Contains the result of the last attempt to send a replication notification to the DC identified by uuidDsa. It has a value of 0 if the last notification was sent successfully and a Windows error code otherwise.

consecutiveFailures: A DWORD that corresponds to cConsecutiveFailures in REPS_TO. Contains the number of unsuccessful consecutive attempts to send a replication notification to the DC identified by uuidDsa.

timeLastAttempt: A DSTIME that corresponds to timeLastAttempt in REPS_TO. Contains the last time when an attempt was made to send a replication notification to the DC identified by uuidDsa, or 0 if no attempt has been made.

timeLastSuccess: A DSTIME that corresponds to timeLastSuccess in REPS_TO. Contains the time when the last successful replication notification to the DC identified by uuidDsa was sent, or 0 if no replication notification has been successfully sent.

When converting a RepsTo to a REPS_TO, assign zeros to all unused fields of REPS_TO. If naDsa is an empty string, set cbOtherDra to 0 and cbOtherDraOffset to 0.