Tuesday, March 22, 2011

What Is the Categorizer?

What Is the Categorizer?
The Categorizer is a component of the Exchange 2000 transport process. When a message is submitted to the transport process, the Categorizer uses the header information on the message to query Active Directory for information about how and where the message must be delivered. For example, from a Simple Mail Transfer Protocol (SMTP) address such as someone@example.com, the Categorizer identifies the Exchange 2000 server that contains the users mailbox and determines how to route the message to the server. The Categorizer also expands distribution lists and applies per-user limits to messages.

The Categorizer relies on DSAccess for the list of Active Directory servers that it should use for lookups; however, like DSProxy, it uses its own mechanism to read information from Active Directory after it has the server list.

What Is DSProxy?

What Is DSProxy?
DSProxy is the Exchange 2000 component that provides an address book service to Microsoft Outlook® clients. DSProxy is implemented as a DLL file named DSPROXY.DLL. DSProxy has two functions:
• To emulate a Messaging Application Programming Interface (MAPI) address book service, and proxy requests to an Active Directory server
• To provide a referral mechanism so that Outlook clients can directly contact Active Directory servers
Although its name implies that it provides proxy services only, DSProxy provides both proxy and referral services. MAPI clients running Outlook 2000 Service Release 1 (SR-1) and earlier versions (including Outlook 2000, Outlook 98, Outlook 97, and the Exchange 5.0 client) use the proxy functionality. These earlier clients were designed with the assumption that each Exchange server contains a directory service. This is no longer true in Exchange 2000. Therefore, DSProxy emulates a directory service so that these earlier clients can continue to function. In actuality, however, the Exchange 2000 server forwards the requests to Active Directory.
Later versions of Outlook, such as Outlook 2000 (SR-2 and later) and Outlook 2002, are designed with the assumption that Exchange 2000 does not have its own directory service. After DSProxy refers one of these later clients to a global catalog server, the client communicates directly with Active Directory.
DSProxy obtains its list of working global catalog servers from DSAccess, but it does not route its queries through DSAccess. This is because DSProxy uses the Name Service Provider Interface (NSPI) to submit MAPI address book lookups. DSAccess handles only LDAP queries.

Understanding and Troubleshooting Directory Access

Understanding How Directory Access Works
This section describes each of the Exchange 2000 directory access components and explains how the core technology works in a stable Active Directory environment.
What Is DSAccess?
DSAccess is a core component of Exchange 2000 that is implemented as a DLL file named DSACCESS.DLL. The purpose of DSAccess is to control how other Exchange components access Active Directory. DSAccess discovers the Active Directory topology, detects domain controllers and global catalog servers, and maintains a list of valid directory servers that are suitable for use by Exchange components. If the status of a domain controller or global catalog server changes, DSAccess updates its list. In addition, DSAccess contains a memory cache, which reduces the load on Active Directory by reducing the number of Lightweight Directory Access Protocol (LDAP) requests that individual components must send to Active Directory servers.

The core components of Exchange 2000 require access to the directory. Therefore, they rely on DSAccess to provide a current list of Active Directory servers. For example, the message transfer agent (MTA) routes LDAP queries through the DSAccess layer to Active Directory. The store process uses DSAccess to obtain configuration information from Active Directory in order to connect to databases. The transport process uses DSAccess to obtain information about the connector arrangement in order to route messages. If each of these Exchange 2000 components had a separate mechanism for performing Active Directory lookups, Exchange 2000 would become disjointed and less scalable. In Exchange 2000, DSAccess is the centralized mechanism that determines the Active Directory topology, opens the appropriate LDAP connections, and works around server failures.