The Cliff Notes on System Attendant (MAD.EXE)


The Exchange System Attendant is a multi-faceted and sometimes mysterious service.  To remove some of the mystery & hopefully provide a bit of clarity to MAD here are the cliff notes version of what it actually does.


Initialization and Tasks


1. Binds to Domain Controller upon startup



a. Uses ADSI to do a server-less binding to find a DC
b. Temporarily binds to GC for tasks like proxy generation


2. Loads various Exchange components upon startup



a. DSAccess, DS Proxy, DS2MB, etc...


3. Has various background tasks



a. Example:  verifies machine account is present in the Exchange Domain Servers


Inventory of Functions in MAD


1. DSAccess (Directory Service Access) - dsaccess.dll



a.      Builds a list of available Domain Controllers (DCs) that will be used by Exchange
b.      proxies LDAP queries from multiple components to the AD and maintains results in cache for a better overall system performance
c.      Other components besides MAD can load & initialize DSAccess


2. DS2MB (Directory Service to Metabase Update Service) - ds2mb.dll



a.      Mainly replicates protocol settings from the active directory to metabase
b.      Also creates exchange application pool & adds Exchange virtual roots to application pool in upgrade scenarios to Windows 2003 to support IIS6 Dedicated App Mode


3. RUS (Recipient Update Service) - abv_dg.dll



a.      Proxy generation - Bases proxyAddresses attribute for users on recipient policies, calls MAD to evaluate recipient policies & generate proxies
b.      Address List  - stamps showInAddressBook attribute on users/distribution lists


4. DSProxy (also known as DS referral) - dsproxy.dll



a.      Relays all "MAPI to DS" communication for older MAPI clients


5. Offline Address List - Oabgen.dll



a.      Set of address lists in files that are created and stored on an offline address list server


6. Free/Busy - madfb.dll



a.      Mad Free/Busy (MADFB) is used by OWA to publish free/busy
b.      Store extracts free/busy from client’s calendar and sends messages to System Attendant mailbox
c.      MADFB picks up messages and publishes to free/busy public folder


7. Mailbox Manager - logic in MAD



a.      Used to enforce corporate message retention policies & manage information store size
b.      Mailbox Manager Task  runs every 15 minutes to see if the schedule information indicates it needs to call the mailbox clean task


8. Monitoring - logic in MAD



a.      System Attendant monitors server resources based on an interval
b.      Updates the routing table via WMI based on current status


9. RPC-HTTP Polling - logic in MAD



a.      RPC-HTTP polling thread to configure FE & BE (added in exchange 2003 SP1)


- Amanda Langowski

Comments (4)
  1. Sri says:

    Thanks for the info, I hope to see these kind of posts for all the core exchange services in future..

    I have a question related to SA and WMI,

    Apart from updating routing table thru WMI does SA uses WMI for anyother functions ?

    Thanks

  2. Anonymous says:

    Very informative posting over at Exchange Team Blog on the System Attendant service, aka MAD.EXE.

    "The Exchange System Attendant is a multi-faceted and sometimes mysterious service. To remove some of the mystery & hopefully provide a bit of clarity

  3. amanda says:

    Per the question on WMI & SA…

    MAD only uses WMI for monitoring.

    Essentially, MAD makes WMI calls to get the state of the CPU, Memory, etc… and then makes a WMI call to update the routing table.

  4. Eric says:

    I have a question about dsaccess:

    does the process really make a discovery of the availaible DC or he retreive the list from Active directory ?

Comments are closed.

Skip to main content