Article ID: 201414 - Last Review: October 27, 2006 - Revision: 3.2 XADM: Restored Directory Not Replicating Out to Other ServersThis article was previously published under Q201414 On This PageSYMPTOMS
A restored Exchange Server directory database receives changes from other servers but does not send out its own changes.
You may also notice replication error 1224 in the Application Log from the source MSExchangeDS. CAUSE
It may occasionally be necessary to restore a copy of the Exchange Server directory that is days or weeks old. In a multi-server organization, the older copy of the directory will be automatically "backsynced" with newer information by other servers. The restored server sends special requests for synchronization information to other servers, and waits for up to 16 hours for all responses to be received.
After 16 hours, even if all responses needed to bring the directory into complete synchronization have not been received, backsync expires. This timeout is necessary because changes to organizational topology may cause some requests to never be answered, and because while backsync is in progress, the restored directory is not writable. This means that if an administrator tries to create a new mailbox or make any other directory change while attached to the restored server, a DS_E_BUSY error will be generated, and the change will not be saved. Often, administrators will deliberately force backsync to expire almost immediately to avoid DS_E_BUSY errors. This can be done by following the steps in the following Microsoft Knowledge Base article: 160850
(http://support.microsoft.com/kb/160850/EN-US/
)
DS_E_BUSY After Directory Service Restore
In cases where backsync does not complete or is deliberately aborted,
the update sequence numbers (USN) numbers on the restored server are lower than expected by other servers in the site. USN numbers are the means by which Exchange directories make decisions about which objects to replicate with each other.
The error 1224 indicates that the restored server received a replication request from another server that referenced a USN value higher than the most current USN value on the restored server. If the discrepancy between the USN values is relatively small, this problem will correct itself over a relatively short period of time. Each change replicated to the restored server will increase the server's highest USN by 1, eventually causing the restored server to "catch up" with the rest of the site. The workarounds in this article may help resolve 1224 errors due to any cause, not just the cause described in this article. WORKAROUND
The highest USN number on the restored server must be increased by some means until it is at or above the USN number recorded for the restored server on other servers in the site before replication from the restored server will begin functioning again.
The easiest way to do this is with the Authrest utility appropriate to your version of Exchange Server. For Exchange Server 4.0, Authrest.exe is included on the installation CD. For Exchange Server 5.0, obtain a version of Authrest.exe with a file version of 5.0.1458.60. For Exchange Server 5.5, obtain a version of Authrest.exe with a file version of 5.5.1960.8. Note that the version of Authrest.exe included on the Exchange Server 4.0, 5.0, and 5.5 CDs actually works only for version 4.0. The Filever utility included on the Exchange Server 5.5 CD may be used to verify Authrest.exe file versions. Contact Microsoft Product Support Services for more information about Authrest versions. The "More Information" section of this article explains how to discover the size of the discrepancy between USNs, along with the Authrest parameters that should be used to correct the problem. To use Authrest, you must stop Exchange services on the affected server during the procedure. If that is not feasible, you may use the bulk export/import feature to correct a USN problem without interrupting service. Using bulk import is more complicated and may take longer to finish, but has the advantage of requiring no server downtime. The "More Information" section of this article explains both methods for increasing the USN. During the time that the USN values are out of sync, avoid making administrative changes while connected to the restored server. Bind to a different Exchange Server computer to make changes even to objects homed on the restored server. Such changes will replicate to the restored server, even though the restored server still cannot replicate such changes to other servers. MORE INFORMATION
The rest of this article will discuss:
To Determine the Size of the USN Discrepancy
To Correct a USN Discrepancy with AuthrestStop the Exchange Directory Service and, from the server console, type the following command:AUTHREST 0 amount to increase the USN
For example, suppose that the discrepancy number you arrived at in step 10 above was 1,000. Suppose you had also added 100 mailboxes to Server A before noticing that they weren't replicating to the rest of the site. You might then choose to set an Authrest value of 1,000 (the discrepancy amount) + 100 (the number of changes you've made on Server A since restoring) + 500 (as a safety margin), thus making your Authrest command line:
AUTHREST 0 1600
NOTE: If you are using Authrest for Exchange Server 4.0 or 5.0, it may be necessary to run the utility from the Exchsrvr\Bin directory so that it can find its supporting .dll files.
Notice that the first Authrest parameter was set to 0 in the above example. The first Authrest parameter increments Object-Version values, while the second parameter increments USN-Changed values. In the case discussed in this article, you don't want to increase the Object-Version, just the USN. The reason why is discussed at the end of this article. Also be aware that the higher you set the USN increment amount, the more objects will be replicated to other servers. If you were to use a number such as 100,000, you would likely transmit every single object in the directory to every other server in the entire organization, thus creating a "replication storm." If you set both Authrest parameters to high values, you will accomplish a truly AUTHoritative RESTore, in which this server's version of each object replaces every other server's version. To Correct a USN Discrepancy using Export/Import
Notes on this ProcedureThe reasons for creating a new mailbox rather than simply re-importing existing mailboxes are twofold: first, to prevent Object-Versions from being changed on existing mailboxes, and second, to minimize the amount of replication traffic generated between servers by the process.Try to schedule this process during off hours, as it will put the local directory service under heavy load, which may affect server performance. If your forced USN increment is much larger than necessary, it may cause all existing objects on the server to be replicated to other servers. This can create a "replication storm" that may last for several hours in a large organization. The rest of this article briefly discusses how replication uses USNs and Object-Version values, and is provided as background for understanding why the above procedures are effective. How USN Values and Object-Version Values Interact in Directory ReplicationThe USN and the Object-Version play different roles in replication. The USN levels determine whether or not one server will send any changes when requested to do so by another server. The Object-Version determines whether those changes will be applied or discarded once they are received by the requesting server. In other words, the USN determines whether any change information at all will pass between servers; the Object-Version determines what will be done with the change list once it is received.The Object-Version increments by one each time an object is changed and saved in the Exchange Administrator program. When you create a new mailbox, its Object-Version is 1. If you later add a fax number to the mailbox, the Object-Version becomes 2. When an Exchange Server site's directory is fully synchronized, the Object-Version for a particular object has the same value on all servers. The USN is also incremented each time an object is changed, but in a more complicated way. While the Object-Version attribute is specific to each object, the USN is specific to each server, although it is an attribute carried by each object. The USN values for a given object will have different values on each server in the site. How this works is best explained by an example: Suppose you create Mailbox A. As the most recently changed object on the current server, Mailbox A will carry the highest USN-Changed value of any object in the server's directory (in this example, we will say the value is 1,000). Then you create Mailbox B. Mailbox A's USN-Changed value remains 1,000, and Mailbox B now carries a USN-Changed value of 1,001. Then you go back to Mailbox A and add a fax number. Now Mailbox A once again carries the highest USN-Changed value (1,002), while B is still showing 1,001. In essence, the highest USN is a "hot potato" passed between objects in a directory as they are changed, and the highest USN is carried by the last object changed. To discover what the highest USN is on a given server, you must therefore change or create an object, and examine its value. With this basic understanding of Object-Versions and USNs, the following example of directory replication from Server A to Server B should make sense:
Only if you suspect a large number of objects were mistakenly skipped in previous replication should you select the second option. If a single object did not replicate, it is much faster and generates far less network traffic to make a minor change to the object, and update only new and modified objects. Now, look back at the previous example of a directory replication cycle, and consider what would have happened if Server B's Reps-From value for A had initially been 1,500. It would have asked Server A for all objects from 1,501 on, and, would have gotten nothing back from Server A, whose latest object is only at a USN of 1,002. This is the situation created by restoring an older copy of the directory to Server A when backsync isn't allowed to correct the situation. Until 500 more changes in the site replicate in to Server A, none of A's changes will replicate out. While you need to increase the USN value in such situations, usually you do not want to increase the Object-Version value. Why? Recall that the USN controls whether replication changes are transmitted or not, while the Object-Version controls whether replication changes are applied or not. If you increase the Object-Version values on the restored server, then copies of objects from that server--which are actually older--will overwrite copies of the same objects on other servers--copies which are actually newer. Remember: whoever has the highest Object-Version always wins. Setting the first parameter of Authrest to 0 prevents Authrest from making unwanted changes to Object-Version values. Running export/import only against a test mailbox also prevents Object-Version values for your actual users from being affected. APPLIES TO
| Article Translations
|

Back to the top
