Understanding the USN tracking feature in the Priasoft Collaboration Suite For Microsoft Exchange

The Priasoft Collaboration Suite For Microsoft Exchange is a Solution for pre-staging and synchronizing address books between two or more Exchange environments. 

We have added a new feature to track objects by USN. With this feature enabled, after an initial synchronization, only objects with a new uSNChanged value will processed. This allows agreements to only process new and changed objects and skip objects that have not changed since the last synchronization to decrease overall agreement runtime.

Note: Because uSNChanged is a non-replicated attribute, the agreement must bind to the same domain controller every time it runs, however, changing the domain controller is allowed but all objects must be processed again to reestablish the correct USN’s against the new DC.

More info on uSN’s tracking with the Priasoft Collaboration Suite For Microsoft Exchange

When a domain controller modifies an object it sets that object’s uSNChanged attribute to a value that is larger than the previous value of the uSNChanged attribute for that object, and larger than the current value of the uSNChanged attribute for all other objects held on that domain controller. As a consequence, a connection agreement can find the most recently changed object on a domain controller by tracking the objects uSNChanged value. The second most recently changed object on a domain controller will have the second largest uSNChanged value, and so on.

The uSNChanged attribute is not replicated, therefore reading an object’s uSNChanged attribute at two different domain controllers will typically give different value

  • Because uSNChanged is a non-replicated attribute, the application must bind to the same domain controller every time it runs. If it cannot bind to that domain controller it must either wait until it can do so, or affiliate with some new domain controller and perform a full synchronization with that domain controller. When the application affiliates with a domain controller it records the DNS name of that domain controller in stable storage, which is the same storage it is keeping consistent with the domain controller content. Then it uses the stored DNS name to bind to the same domain controller for subsequent synchronizations.
  • The application will detect when the domain controller it is currently affiliated with has been restored from backup, because this can cause inconsistency. When the application affiliates with a domain controller it caches the “invocation id” of that domain controller in stable storage, that is, the same storage it is keeping consistent with the domain controller content. The “invocation id” of a domain controller is a GUID stored in the invocationID attribute of the domain controller’s service object.
  • Be aware that when the application’s stable storage is restored from backup there are no consistency problems because the domain controller name, invocation id, and lower bounds of the uSNChanged attribute value are stored with the data synchronized with the domain controller content.

To quickly enable or disable the feature for an agreement, right click the agreement and select Enable/Disable USN tracking from the context menu.

Priasoft simplifies complex Exchange migrations.
Try it for free today!

Ready to Talk Through Your Migration?

Priasoft has been handling Exchange and Microsoft 365 migrations since 1999. Whether you're scoping a new project or recovering from a stalled one, our engineers have seen it before. No sales pitch — just a working conversation with people who have done this work at scale.

Speak With an Engineer Download a Free Trial