Topic Last Modified: 2009-02-25

The Microsoft Exchange Server Best Practices Analyzer examines the Active Directory directory service to compare the values of the following attributes for all Exchange Server 2003-based servers in the organization:

If the Best Practices Analyzer detects duplicate legacyExchangeDN attribute values among any Exchange 2003-based servers and if an Exchange Server 2007 Hub Transport server is present in the organization, the following warning message is generated:

The msExchangeServer object '<ExchangeServerDN>' has the same 'legacyExchangeDN' value (<value>) with another msExchangeServer object in the topology. This may cause Microsoft Exchange Transport service not to work.

If the Best Practices Analyzer detects duplicate fully qualified domain name (FQDN) entries among any Exchange 2003-based servers, the following error message is generated:

The msExchangeServer object '<ExchangeServerDN>' has the same 'FQDN' value (<FQDN>) with another msExchangeServer object in the topology. This will cause many network problems.

These messages indicate that duplicate values exist for one or more Exchange 2003-based servers in Active Directory. In this scenario, you may experience network-related errors with respect to the affected Exchange servers. Additionally, the Microsoft Exchange Transport service may stop responding (crash) on Exchange 2007 Hub Transport servers, and you may be unable to restart the service. When this problem occurs, the following events are logged in the Application log on the Hub Transport server:

Event ID 10003

Event Type: Error

Event Source: MSExchangeTransport

Event Category: PoisonMessage

Event ID: 10003

Description: The transport process failed during message processing with the following call stack: System.ArgumentException: An item with the same key has already been added.

at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)

at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)

at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)

at Microsoft.Exchange.Transport.Categorizer.RoutingTables.CalculateTiServerRoutes()

at Microsoft.Exchange.Transport.Categorizer.RoutingTables.PopulateTables(RawRoutingConfigData rawConfigData)

at Microsoft.Exchange.Transport.Categorizer.RoutingTables..ctor(ExEventLog eventLogger)

at Microsoft.Exchange.Transport.Categorizer.BridgeheadRouting.LoadRoutingTables()

at Microsoft.Exchange.Transport.Categorizer.BridgeheadRouting.TryLoadRoutingTables(Exception& exception)

at Microsoft.Exchange.Transport.Categorizer.BridgeheadRouting.ReloadRoutingTables(Object state)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading._TimerCallback.PerformTimerCallback(Object state)

Event ID 4999

Event Type: Error

Event Source: MSExchange Common

Event Category: General

Event ID: 4999

Description: Watson report about to be sent to dw20.exe for process id: 436, with parameters: E12, c-RTL-AMD64, 08.00.0693.000, edgetransport, mscorlib, M.E.T.C.RoutingTables.CalculateTiServerRoutes, System.ArgumentException, e870, 08.00.0700.000

Event ID 5000

Event Type: Error

Event Source: Microsoft Exchange Server

Event Category: None

Event ID: 5000

Description: EventType e12, P1 c-rtl-amd64, P2 08.00.0693.000, P3 edgetransport, P4 mscorlib, P5 m.e.t.c.routingtables.calculatetiserverroutes, P6 system.argumentexception, P7 e870, P8 08.00.0700.000, P9 NIL, P10 NIL.

Event ID 1016

Event Type: Error

Event Source: MSExchange TransportService

Event Category: ProcessManager

Event ID: 1016

Description: The worker process crashes continuously on startup: C:\Program Files\Microsoft\Exchange Server\Bin\edgetransport.exe. The service will be stopped.

If Exchange 2003 servers have the same legacyExchangeDN attribute value, the same distinguished name, or the same FQDN, the Microsoft Exchange Transport service may crash.

The service uses the Microsoft.Exchange.Transport.Categorizer.RoutingTables.CalculateTiServerRoutes() function to calculate routes to all available Exchange 2003 servers. These routes are stored in three dictionaries: one for the distinguished name, one for the FQDN, and one for legacyExchangeDN.

A situation could occur in which two Exchange 2003-based servers that have different distinguished names have duplicate legacyExchangeDN values. A possible reason for this issue could be a scenario in which two servers are installed at the same time, but using different domain controllers. In this scenario, Active Directory duplicate detection could rename the distinguished name but leave the legacyExchangeDN attribute. Therefore, a duplicate entry could become stored in one of the routing dictionaries. When the Microsoft Exchange Transport service parses the dictionaries, a routing failure occurs. The routing failure causes the service to crash.

To address this issue, use the Active Directory Services Interface editor (ADSI Edit) to obtain the legacyExchangeDN and the networkAddress values for all msExchExchangeServer objects in Active Directory. Then, remove the duplicate entry or entries.

To change duplicate attribute values in Active Directory
  1. Start the ADSI Edit tool. To do this, click Start, click Run, type adsiedit.msc, and then click OK.

    In Windows Server 2008, ADSI Edit is installed by default. In Windows Server 2003, ADSI Edit is included with the Windows Support Tools. To install the Windows Support Tools, double-click Suptools.msi in the Support\Tools folder on the Windows Server 2003 CD.
  2. Connect to a domain controller if ADSI Edit is not already connected.

  3. Expand the following path:

    • Configuration [<domainController>]

    • CN=Configuration,DC=contoso,DC=com

    • CN=Services

    • CN=Microsoft Exchange

    • CN=<OrganizationName>

    • CN=Administrative Groups

    • CN=<AdministrativeGroupName>

    • CN=Servers

    • CN=<Exchange2003ServerName>

  4. Right-click CN=<Exchange2003ServerName>, and then click Properties.

  5. On the Attribute Editor tab, click distinguishedName, and then click Edit. Note the server name that appears in the Value box, and then click Cancel. This value represents the correct name for the particular server.

  6. On the Attribute Editor tab, click legacyExchangeDN, and then click Edit. Note the server name that appears in the Value box, and then click Cancel.

  7. On the Attribute Editor tab, click networkAddress, and then click Edit. Note the server names that appear in the Values box, and then click Cancel.

  8. Follow steps 4 through 7 for each Exchange 2003 server in the organization.

  9. After you note the server name values for the Exchange 2003 servers, determine whether any values are duplicates. For example, you may have the following distinguishedName values for two servers in the organization:

    • /O=<organization>/OU=<ou>/cn=Configuration/cn=Servers/cn=Server1

    • /O=<organization>/OU=<ou>/cn=Configuration/cn=Servers/cn=Server1/0ACNF:<GUID>

    In this list, Server1 and Server1/0ACNF:<GUID> are duplicate values.

  10. Delete the incorrect entry from Active Directory. To do this, click the appropriate attribute, such as legacyExchangeDN, click Edit, and then click Clear. In the sample values that are listed in step 9, Server1/0ACNF:<GUID> is the incorrect value.

  11. Click OK.

  12. After you have removed duplicate entries, exit the ADSI Edit tool.