MSMQ comes in two parts:
For this blog post, I'm concentrating on the second.
If you have Active Directory-integrated clients then you will have a lot of information stored on the domain controllers to make them work.
For example, you may want to route messages from one side of your enterprise (or forest) to the other. This requires an understanding of the site topology and availability of routing servers between sender and destination. The MSMQ service will, at regular intervals, check the shape of the forest and update it's local information when required - basically lists of all the sites and the MSMQ servers within them.
There are four registry values to control this process.
These two contain the times of the next refresh of the Enterprise (or Forest) and Site lists (expressed as the number of 100 nanoseconds units since January 1, 1601):
and these two determine how frequently the lists are refreshed:
Restarting the MSMQ service will NOT force a refresh - the DSNextSiteListRefreshTime and DSNextEnterpriseListRefreshTime registry values are used to maintain the "next refresh" times across a restart. Only if they are deleted will MSMQ perform a refresh the next time the service is restarted. The registry values will be recreated based on the DSSiteListRefresh and DSEnterpriseListRefresh values.
Before Windows 2000 sp2, these settings used to be governed by the single DSListRefresh registry value; this setting is now redundant.
In a large enterprise, there may be a lot of sites and servers to be returned to a requesting machine so any changes to DSSiteListRefresh and DSEnterpriseListRefresh should be made with caution. Increasing frequency puts more load on the domain controllers and generates increased network traffic.
If the list query fails, the MSMQ service will persist at regular intervals, as dictated by:
There are a couple of related registry values which may (or may not) be of interest:
[[Edited October 20th, 2009]]
Note - DSNextEnterpriseListRefreshTime does not appear in the registry of MSMQ Routing Servers and is not used.