4.1.12.3 Client Behavior When Sending the IDL_DRSGetObjectExistence Request
Informative summary of behavior: The client uses IDL_DRSGetObjectExistence to check the consistency of object existence between its replica of an NC and another replica of the same NC. Checking the consistency of object existence means identifying objects that have replicated to both replicas, and that exist in one replica but not in the other. For the purposes of this method, an object exists within an NC replica if it is either an object or a tombstone.
IDL_DRSGetObjectExistence allows the client to perform this checking in clusters, as defined in the informative summary of the GuidSequence procedure (section 4.1.12.2.1).
The inputs to this checking process on the client are as follows:
-
nc: DSName utdClient, utdServer: UPTODATE_VECTOR_V1_EXT guidStart: GUID count: ULONG
nc: The NC containing the cluster that the client will check.
utdClient, utdServer: The up-to-date vectors of the client and server for the NC nc, respectively. The client can obtain utdServer using IDL_DRSGetReplInfo.
guidStart: The lower bound on the smallest objectGUID in the cluster that the client will check.
count: The upper bound on the number of objects in the cluster that the client will check.
Given these inputs, the client creates the request message to IDL_DRSGetObjectExistence as follows:<32>
-
msgIn: DRS_MSG_EXISTREQ_V1 s: sequence digest: sequence [0..15] of byte msgIn.pNC := nc msgIn.pUpToDateVecCommonV1 := MergeUTD(utdClient, utdServer) GuidSequence( guidStart, count, nc, msgIn.pUpToDateVecCommonV1^, s, digest) msgIn.guidStart := s[0] msgIn.length := s.length msgIn.Md5Digest := digest pmsgIn^.V1 := msgIn