Many customers ask how they can best configure applications so that the applications can take full advantage of the fault tolerance built into Active Directory (AD). While there is no one right answer to this question, there are several common strategies that are frequently used. However, these strategies are not without their own shortcomings and thus deserve some discussion around the shortcomings of each of these strategies.
To set the context, in all strategies that must be employed the application developer (yes we are talking about the other guy/gal, and not the AD guy) must handle the following scenarios in some fashion or another within their code:
Pointing all LDAP enabled applications to a DNS Alias - i.e. "activedirectory.contoso.com"
Using the FQDN of the domain (i.e. contoso.com):
Using the FQDN of the domain to locate Global Catalogs (i.e. gc._msdcs.contoso.com):
All the same concerns relating to the FQDN of the domain are relevant except that this record distinguishes a list of GCs.
Using site specific SRV records:
_ldap._tcp.SITENAME._sites.dc._msdcs.contoso.com
_ldap._tcp.SITENAME._sites.gc._msdcs.contoso.com
Using non-site specific SRV records:
_ldap._tcp.dc._msdcs.contoso.com
_ldap._tcp.gc._msdcs.contoso.com
Using DsGetDomainControllerInfo:
Hard coding to a specific DC: