4.6.1 Comparing the PidTagPredecessorChangeList Property to Detect Conficts, No Conflicts Found

In this example, data is being replicated from the client to the server. The PidTagPredecessorChangeList properties (section 2.2.1.2.8) of both the client and the server contain one PidTagChangeKey property (section 2.2.1.2.7). The value of the GLOBCNT structure, as described in section 2.2.2.5, of the client's PidTagPredecessorChangeList property entry is larger than the value of the GLOBCNT structure that is located on the server.

Before synchronization:

  • The client PidTagPredecessorChangeList property has the following data:

    Size

    GUID

    GLOBCNT

    22

    75DCB0E0-EDB1-481E-B5CE-EC3400896353

    00 8e 7a 74 08 0a

  • The server PidTagPredecessorChangeList property has the following data:

    Size

    GUID

    GLOBCNT

    22

    75DCB0E0-EDB1-481E-B5CE-EC3400896353

    00 8e 7a 74 08 08

Conflict analysis:

  • There are no common PidTagChangeKey property items in the client and server PidTagPredecessorChangeList property that are to be eliminated.

  • The client PidTagChangeKey property is larger than the server PidTagChangeKey property, so the imported item from the client overwrites the server item.

  • There is no change on the client PidTagPredecessorChangeList property.

After synchronization:

  • The client PidTagPredecessorChangeList property has no change. The value is the same as before synchronization.

  • The server PidTagPredecessorChangeList property has the following data:

    Size

    GUID

    GLOBCNT

    22

    75DCB0E0-EDB1-481E-B5CE-EC3400896353

    00 8e 7a 74 08 0a

In the next example, data is being replicated from the client to the server, where the client predecessor change list (PidTagPredecessorChangeList property) shows that the client has more recent changes than the server.

Before synchronization:

  • The client PidTagPredecessorChangeList property has the following data:

    Size

    GUID

    GLOBCNT

    22

    75DCB0E0-EDB1-481E-B5CE-EC3400896353

    00 8e 7a 74 08 0a

    22

    2A47B01B-29A5-45F1-9FDC-F6E14FB7ECCA

    00 8e 7a 7c 13 30

  • The server PidTagPredecessorChangeList property has the following data:

    Size

    GUID

    GLOBCNT

    22

    75DCB0E0-EDB1-481E-B5CE-EC3400896353

    00 8e 7a 74 08 0a

Conflict analysis:

  • As stated in the previous conflict-detection logic, removing the identical PidTagChangeKey property values from both the PidTagPredecessorChangeList properties leaves only the latest PidTagChangeKey property of the client (as shown in the following table).

    Size

    GUID

    GLOBCNT

    22

    2A47B01B-29A5-45F1-9FDC-F6E14FB7ECCA

    00 8e 7a 7c 13 30

  • This imported client item overwrites the server item.

After synchronization:

  • The client PidTagPredecessorChangeList property has no change. The value is the same as before synchronization.

  • The server PidTagPredecessorChangeList property has the following data:

    Size

    GUID

    GLOBCNT

    22

    75DCB0E0-EDB1-481E-B5CE-EC3400896353

    00 8e 7a 74 08 0a

    22

    2A47B01B-29A5-45F1-9FDC-F6E14FB7ECCA

    00 8e 7a 7c 13 30