How can we get inside the Exchange 2010 transport server’s head and find out how it routes messages? ;)
The routing table is used by the Exchange 2010 transport servers to find out the best route to deliver emails. The table has information about all servers, databases, connectors, address spaces, AD sites, AD site links, costs etc – the whole info required to make the best decision in routing mails.
The routing table is cached in memory to deliver the emails in a timely manner and to have a better performance. The routing table is re-calculated in scenarios like the following.
- Changes to connectors, say editing a send connector.
- Creation of new connectors
- Installation of new transport servers
- When transport service / server gets restarted etc.
In short, whenever the Exchange config data related to transport system in AD is changed, the routing table is re-calculated.
Whenever a change is made or every 12 hours (even if no change is made), Exchange dumps a snapshot of the routing table in an xml format into C:\Program Files\Microsoft\Exchange Server\V14\Transport Roles\Logs\Routing.
The xml file can be opened in a browser and the raw data is displayed. It won’t be that easier to get the information from the xml format.
You can easily get all the info from the xml file by using the Routing Log Viewer in the Toolbox in EMC.
Open an existing xml file in the Routing Log Viewer and you will get information in four tabs – AD sites & routing groups, servers, connectors and address spaces.
I haven’t expanded each sections in the screenshot, but you will get a lot of info once you drill down.
You can compare two xml files by using the same log viewer. Open one xml file as normal and then use the Compare Log File option in the file menu. This is very useful to figure out what has been changed in the system, in troubleshooting scenarios.
By default, Exchange keeps the last seven days of routing tables or up to 50 MB of files. If the storage limit is reached, the oldest files are deleted to create more space (like circular logging). You can find more about these settings by running Get-TransportServer cmdlet.
Though routing log viewer is not used daily by exchange admins, it is good to know the power of the tool ;)